Skip to main content
Glama

Remote MCP Server with GitHub OAuth

by danrthompson

Model Context Protocol (MCP)-Server + Github OAuth

Dies ist ein Model Context Protocol (MCP) -Server, der Remote-MCP-Verbindungen mit integriertem Github OAuth unterstützt.

Sie können es in Ihrem eigenen Cloudflare-Konto bereitstellen. Nachdem Sie Ihre eigene Github OAuth-Client-App erstellt haben, verfügen Sie über einen voll funktionsfähigen Remote-MCP-Server, auf dem Sie aufbauen können. Benutzer können sich mit ihrem GitHub-Konto mit Ihrem MCP-Server verbinden.

Sie können dies als Referenzbeispiel für die Integration anderer OAuth-Anbieter in einen in Cloudflare bereitgestellten MCP-Server mithilfe der Bibliothek workers-oauth-provider verwenden.

Der MCP-Server (betrieben von Cloudflare Workers ):

  • Fungiert als OAuth -Server für Ihre MCP-Clients
  • Fungiert als OAuth- Client für Ihren echten OAuth-Server (in diesem Fall GitHub)

Erste Schritte

Klonen Sie das Repo direkt und installieren Sie Abhängigkeiten: npm install .

Alternativ können Sie die folgende Befehlszeile verwenden, um den Remote-MCP-Server auf Ihrem lokalen Computer zu erstellen:

npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-github-oauth

Für die Produktion

Erstellen Sie eine neue GitHub OAuth-App :

  • Geben Sie als Homepage-URL https://mcp-github-oauth.<your-subdomain>.workers.dev
  • Geben Sie für die Autorisierungs-Callback-URL https://mcp-github-oauth.<your-subdomain>.workers.dev/callback
  • Notieren Sie Ihre Client-ID und generieren Sie ein Client-Geheimnis.
  • Geheimnisse über Wrangler festlegen
wrangler secret put GITHUB_CLIENT_ID wrangler secret put GITHUB_CLIENT_SECRET wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32
Einrichten eines KV-Namespace
  • Erstellen Sie den KV-Namespace: wrangler kv:namespace create "OAUTH_KV"
  • Aktualisieren Sie die Wrangler-Datei mit der KV-ID
Bereitstellen und Testen

Stellen Sie den MCP-Server bereit, um ihn in Ihrer Workers.dev-Domäne verfügbar zu machen. wrangler deploy

Testen Sie den Remote-Server mit Inspector :

npx @modelcontextprotocol/inspector@latest

Geben Sie https://mcp-github-oauth.<your-subdomain>.workers.dev/sse ein und klicken Sie auf „Verbinden“. Sobald Sie den Authentifizierungsprozess durchlaufen haben, sehen Sie, wie die Tools funktionieren:

Sie haben jetzt einen Remote-MCP-Server bereitgestellt!

Zugriffskontrolle

Dieser MCP-Server verwendet GitHub OAuth zur Authentifizierung. Alle authentifizierten GitHub-Benutzer können auf grundlegende Tools wie „add“ und „userInfoOctokit“ zugreifen.

Das Tool „generateImage“ ist auf bestimmte GitHub-Benutzer beschränkt, die in der Konfiguration ALLOWED_USERNAMES aufgeführt sind:

// Add GitHub usernames for image generation access const ALLOWED_USERNAMES = new Set([ 'yourusername', 'teammate1' ]);

Greifen Sie von Claude Desktop aus auf den Remote-MCP-Server zu

Öffnen Sie Claude Desktop und navigieren Sie zu Einstellungen -> Entwickler -> Konfiguration bearbeiten. Dadurch wird die Konfigurationsdatei geöffnet, die steuert, auf welche MCP-Server Claude zugreifen kann.

Ersetzen Sie den Inhalt durch die folgende Konfiguration. Nach dem Neustart von Claude Desktop öffnet sich ein Browserfenster mit Ihrer OAuth-Anmeldeseite. Schließen Sie den Authentifizierungsvorgang ab, um Claude Zugriff auf Ihren MCP-Server zu gewähren. Anschließend stehen Ihnen die Tools zur Verfügung.

{ "mcpServers": { "math": { "command": "npx", "args": [ "mcp-remote", "https://mcp-github-oauth.<your-subdomain>.workers.dev/sse" ] } } }

Sobald die Tools (unter 🔨) in der Benutzeroberfläche angezeigt werden, können Sie Claude bitten, sie zu verwenden. Beispiel: „Könnten Sie das Mathe-Tool verwenden, um 23 und 19 zu addieren?“ Claude sollte das Tool aufrufen und das vom MCP-Server generierte Ergebnis anzeigen.

Für die lokale Entwicklung

Wenn Sie Ihren MCP-Server iterieren und testen möchten, können Sie dies in der lokalen Entwicklung tun. Dazu müssen Sie eine weitere OAuth-App auf GitHub erstellen:

  • Geben Sie für die Homepage-URL http://localhost:8788
  • Geben Sie für die Autorisierungs-Callback-URL http://localhost:8788/callback
  • Notieren Sie Ihre Client-ID und generieren Sie ein Client-Geheimnis.
  • Erstellen Sie eine .dev.vars Datei in Ihrem Projektstamm mit:
GITHUB_CLIENT_ID=your_development_github_client_id GITHUB_CLIENT_SECRET=your_development_github_client_secret
Entwickeln und Testen

Führen Sie den Server lokal aus, um ihn unter http://localhost:8788 wrangler dev verfügbar zu machen

Um den lokalen Server zu testen, geben Sie http://localhost:8788/sse in den Inspector ein und klicken Sie auf „Verbinden“. Sobald Sie den Anweisungen folgen, können Sie die Tools auflisten.

Verwenden von Claude und anderen MCP-Clients

Wenn Sie Claude verwenden, um eine Verbindung zu Ihrem Remote-MCP-Server herzustellen, werden möglicherweise Fehlermeldungen angezeigt. Dies liegt daran, dass Claude Desktop Remote-MCP-Server noch nicht unterstützt und daher manchmal Verwirrung entsteht. Um zu überprüfen, ob der MCP-Server verbunden ist, bewegen Sie den Mauszeiger über das 🔨-Symbol in der unteren rechten Ecke von Claudes Benutzeroberfläche. Ihre Tools sollten dort verfügbar sein.

Verwenden von Cursor und anderen MCP-Clients

Um Cursor mit Ihrem MCP-Server zu verbinden, wählen Sie Type : „Befehl“ und kombinieren Sie im Feld Command “ die Felder „Befehl“ und „Argumente“ zu einem (z. B. npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/sse ).

Beachten Sie, dass Cursor zwar HTTP+SSE-Server unterstützt, jedoch keine Authentifizierung. Sie müssen daher weiterhin mcp-remote verwenden (und einen STDIO-Server verwenden, keinen HTTP-Server).

Sie können Ihren MCP-Server mit anderen MCP-Clients wie Windsurf verbinden, indem Sie die Konfigurationsdatei des Clients öffnen, dasselbe JSON hinzufügen, das für das Claude-Setup verwendet wurde, und den MCP-Client neu starten.

Wie funktioniert es?

OAuth-Anbieter

Die OAuth-Provider-Bibliothek dient als vollständige OAuth 2.1-Serverimplementierung für Cloudflare Workers. Sie verarbeitet die Komplexität des OAuth-Flows, einschließlich Token-Ausgabe, -Validierung und -Verwaltung. In diesem Projekt übernimmt sie die doppelte Rolle:

  • Authentifizieren von MCP-Clients, die eine Verbindung zu Ihrem Server herstellen
  • Verwalten der Verbindung zu den OAuth-Diensten von GitHub
  • Sicheres Speichern von Token und Authentifizierungsstatus im KV-Speicher
Langlebiges MCP

Durable MCP erweitert die grundlegende MCP-Funktionalität mit den Durable Objects von Cloudflare und bietet:

  • Permanente Statusverwaltung für Ihren MCP-Server
  • Sichere Speicherung des Authentifizierungskontexts zwischen Anfragen
  • Zugriff auf authentifizierte Benutzerinformationen über this.props
  • Unterstützung für bedingte Toolverfügbarkeit basierend auf der Benutzeridentität
MCP-Fernbedienung

Die MCP Remote-Bibliothek ermöglicht Ihrem Server die Bereitstellung von Tools, die von MCP-Clients wie dem Inspector aufgerufen werden können. Sie:

  • Definiert das Protokoll für die Kommunikation zwischen Clients und Ihrem Server
  • Bietet eine strukturierte Möglichkeit, Werkzeuge zu definieren
  • Verarbeitet die Serialisierung und Deserialisierung von Anfragen und Antworten
  • Hält die Server-Sent Events (SSE)-Verbindung zwischen Clients und Ihrem Server aufrecht
-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein Model Context Protocol-Server, der Remoteverbindungen unterstützt und Benutzer über GitHub OAuth authentifiziert, sodass sie basierend auf ihrer GitHub-Identität auf Tools zugreifen können.

  1. Erste Schritte
    1. Für die Produktion
    2. Zugriffskontrolle
    3. Greifen Sie von Claude Desktop aus auf den Remote-MCP-Server zu
    4. Für die lokale Entwicklung
  2. Wie funktioniert es?
    1. OAuth-Anbieter
    2. Langlebiges MCP
    3. MCP-Fernbedienung

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.
    Last updated -
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables AI agents to securely access and interact with GitHub Enterprise data, providing access to enterprise users, organizations, emails, and license information.
    Last updated -
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    Model Context Protocol server that enables interaction with GitHub repositories, issues, pull requests, and search functionality through natural language.
    Last updated -
    1
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server with GitHub API integration that enables interaction with repositories, issues, pull requests, and file management through a standardized interface.
    Last updated -
    1

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danrthompson/remote-mcps'

If you have feedback or need assistance with the MCP directory API, please join our Discord server