Skip to main content
Glama
byjit

MCP Server with GitHub OAuth

by byjit

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 ihn 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 bei Ihrem MCP-Server anmelden.

Sie können dies als Referenzbeispiel dafür verwenden, wie andere OAuth-Anbieter in einen auf Cloudflare bereitgestellten MCP-Server integriert werden können, unter Verwendung der workers-oauth-provider-Bibliothek.

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 & installieren Sie die Abhängigkeiten: npm install.

Alternativ können Sie die untenstehende 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 für die Homepage-URL https://mcp-github-oauth.<your-subdomain>.workers.dev an

  • Geben Sie für die Authorization-Callback-URL https://mcp-github-oauth.<your-subdomain>.workers.dev/callback an

  • Notieren Sie Ihre Client-ID und generieren Sie ein Client-Secret.

  • Setzen Sie Secrets über Wrangler

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-Namespaces

  • Erstellen Sie den KV-Namespace: wrangler kv:namespace create "OAUTH_KV"

  • Aktualisieren Sie die Wrangler-Datei mit der KV-ID

Bereitstellung & Test

Stellen Sie den MCP-Server bereit, um ihn auf Ihrer workers.dev-Domain verfügbar zu machen wrangler deploy

Testen Sie den Remote-Server mit dem 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 Authentifizierungsablauf durchlaufen haben, werden Sie sehen, dass die Tools funktionieren:

Sie haben nun 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 "generateImage"-Tool ist auf bestimmte GitHub-Benutzer beschränkt, die in der ALLOWED_USERNAMES-Konfiguration aufgeführt sind:

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

Zugriff auf den Remote-MCP-Server von Claude Desktop

Öffnen Sie Claude Desktop und navigieren Sie zu Settings -> Developer -> Edit Config. Dies öffnet die Konfigurationsdatei, die steuert, auf welche MCP-Server Claude zugreifen kann.

Ersetzen Sie den Inhalt durch die folgende Konfiguration. Sobald Sie Claude Desktop neu starten, öffnet sich ein Browserfenster, das Ihre OAuth-Anmeldeseite anzeigt. Schließen Sie den Authentifizierungsablauf ab, um Claude Zugriff auf Ihren MCP-Server zu gewähren. Nachdem Sie den Zugriff gewährt haben, 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 erscheinen, können Sie Claude bitten, sie zu verwenden. Zum Beispiel: "Könntest du 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. Dies erfordert, dass Sie eine weitere OAuth-App auf GitHub erstellen:

  • Geben Sie für die Homepage-URL http://localhost:8788 an

  • Geben Sie für die Authorization-Callback-URL http://localhost:8788/callback an

  • Notieren Sie Ihre Client-ID und generieren Sie ein Client-Secret.

  • Erstellen Sie eine .dev.vars-Datei in Ihrem Projektstammverzeichnis mit:

GITHUB_CLIENT_ID=your_development_github_client_id
GITHUB_CLIENT_SECRET=your_development_github_client_secret

Entwicklung & Test

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

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 "List Tools" auswählen.

Verwendung von Claude und anderen MCP-Clients

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

Verwendung von Cursor und anderen MCP-Clients

Um Cursor mit Ihrem MCP-Server zu verbinden, wählen Sie Type: "Command" und kombinieren Sie im Feld Command die Befehls- und Argumentfelder 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, aber keine Authentifizierung unterstützt. Sie müssen also 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.

Related MCP server: GitHub MCP Server

Wie funktioniert es?

Lizenz

Dieses Projekt ist unter der GPL-3.0-Lizenz lizenziert. Weitere Informationen finden Sie in der LICENSE-Datei.

OAuth-Anbieter

Die OAuth-Provider-Bibliothek dient als vollständige OAuth 2.1-Serverimplementierung für Cloudflare Workers. Sie übernimmt die Komplexität des OAuth-Ablaufs, einschließlich der Token-Ausstellung, Validierung und Verwaltung. In diesem Projekt spielt sie die Doppelrolle:

  • Authentifizierung von MCP-Clients, die eine Verbindung zu Ihrem Server herstellen

  • Verwaltung der Verbindung zu den OAuth-Diensten von GitHub

  • Sichere Speicherung von Token und Authentifizierungsstatus im KV-Speicher

Durable MCP

Durable MCP erweitert die grundlegende MCP-Funktionalität um Cloudflares Durable Objects und bietet:

  • Persistente Zustandsverwaltung für Ihren MCP-Server

  • Sichere Speicherung des Authentifizierungskontexts zwischen Anfragen

  • Zugriff auf authentifizierte Benutzerinformationen über this.props

  • Unterstützung für bedingte Tool-Verfügbarkeit basierend auf der Benutzeridentität

MCP Remote

Die MCP-Remote-Bibliothek ermöglicht es Ihrem Server, Tools bereitzustellen, 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, Tools zu definieren

  • Übernimmt die Serialisierung und Deserialisierung von Anfragen und Antworten

  • Hält die Server-Sent Events (SSE)-Verbindung zwischen Clients und Ihrem Server aufrecht

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A MCP server built for developers enabling Git based project management with project and personal…

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

Latest Blog Posts

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/byjit/cloudflare-mcp-server'

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