mcp-access-oauth
Model Context Protocol (MCP) Server + Access OAuth
Dies ist ein Model Context Protocol (MCP) Server, der Remote-MCP-Verbindungen unterstützt, mit integriertem Access OAuth.
Sie können ihn in Ihrem eigenen Cloudflare-Konto bereitstellen, und nachdem Sie Ihre eigene Access for SaaS OIDC-App erstellt haben, haben Sie einen voll funktionsfähigen Remote-MCP-Server, auf dem Sie aufbauen können. Benutzer können sich über Ihren verbundenen Access Identity Provider anmelden, um eine Verbindung zu Ihrem MCP-Server herzustellen.
Der MCP-Server (unterstützt durch Cloudflare Workers):
Fungiert als OAuth-Server für Ihre MCP-Clients
Fungiert als OAuth-Client für Ihren echten OAuth-Server (in diesem Fall Access)
Erste Schritte
Klonen Sie das Repository und installieren Sie die Abhängigkeiten: npm install
Für die Produktion
Erstellen Sie eine neue Access for SaaS OIDC App:
Geben Sie für die Authorization-Callback-URL
https://mcp-access-oauth.<your-subdomain>.workers.dev/callbackundhttp://localhost:8788/callbackan, wenn Sie lokal entwickeln.Notieren Sie sich Ihre Client-ID und Ihr Client-Secret.
Legen Sie die Secrets über Wrangler fest
wrangler secret put ACCESS_CLIENT_ID
wrangler secret put ACCESS_CLIENT_SECRET
wrangler secret put ACCESS_TOKEN_URL
wrangler secret put ACCESS_AUTHORIZATION_URL
wrangler secret put ACCESS_JWKS_URL
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32Einrichten 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 auf Ihrer workers.dev-Domain verfügbar zu machen
wrangler deploy
Testen Sie den Remote-Server mit Inspector:
npx @modelcontextprotocol/inspector@latestGeben Sie https://mcp-access-oauth.<your-subdomain>.workers.dev/mcp ein und klicken Sie auf Verbinden. Sobald Sie den Authentifizierungsablauf durchlaufen haben, sehen Sie die Tools in Aktion:
Sie haben jetzt einen Remote-MCP-Server bereitgestellt!
Zugriffskontrolle
Dieser MCP-Server verwendet Access zur Authentifizierung. Alle authentifizierten Access-Benutzer können auf grundlegende Tools wie „add" zugreifen.
Das Tool „generateImage" ist auf bestimmte Access-Benutzer beschränkt, die in der Konfiguration ALLOWED_USERNAMES aufgeführt sind:
// Add user emails for image generation access
const ALLOWED_EMAILS = new Set(["employee1@mycompany.com", "teammate1@mycompany.com"]);Zugriff auf den Remote-MCP-Server von Claude Desktop
Ö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. Sobald Sie Claude Desktop neu starten, öffnet sich ein Browserfenster mit Ihrer OAuth-Anmeldeseite. 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-access-oauth.<your-subdomain>.workers.dev/mcp"
]
}
}
}Sobald die Tools (unter 🔨) in der Oberflä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 iterativ weiterentwickeln und testen möchten, können Sie dies in der lokalen Entwicklung tun.
Geben Sie für die Homepage-URL
http://localhost:8788anGeben Sie für die Authorization-Callback-URL
http://localhost:8788/callbackanNotieren Sie sich Ihre Client-ID und generieren Sie ein Client-Secret.
Erstellen Sie eine
.dev.vars-Datei im Stammverzeichnis Ihres Projekts mit:
ACCESS_CLIENT_ID=<your client id>
ACCESS_CLIENT_SECRET=<your client secret>
ACCESS_TOKEN_URL=<your Access for SaaS token url>
ACCESS_AUTHORIZATION_URL=<your Access for SaaS authorization url>
ACCESS_JWKS_URL=<your Access for SaaS JWKS url>
COOKIE_ENCRYPTION_KEY=COOKIE_ENCRYPTION_KEYEntwickeln und Testen
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/mcp in Inspector ein und klicken Sie auf Verbinden. Sobald Sie den Anweisungen folgen, können Sie „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 einige Fehlermeldungen angezeigt. Das liegt daran, dass Claude Desktop Remote-MCP-Server noch nicht unterstützt und daher manchmal verwirrt wird. Um zu überprüfen, ob der MCP-Server verbunden ist, fahren Sie mit der Maus über das 🔨-Symbol in der unteren rechten Ecke der Claude-Oberfläche. Dort sollten Sie Ihre verfügbaren Tools sehen.
Verwenden 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 Felder für Befehl und Argumente zu einem (z. B. npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/mcp).
Beachten Sie, dass Cursor zwar HTTP+SSE-Server unterstützt, aber keine Authentifizierung. Sie müssen also weiterhin mcp-remote verwenden (und einen STDIO-Server, 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 die Claude-Einrichtung verwendet wurde, und den MCP-Client neu starten.
Related MCP server: cloudflare-mcp-google-auth
Wie funktioniert es?
OAuth Provider
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 Token-Ausstellung, -Validierung und -Verwaltung. In diesem Projekt übernimmt sie eine doppelte Rolle:
Authentifizierung von MCP-Clients, die eine Verbindung zu Ihrem Server herstellen
Verwaltung der Verbindung zu den OAuth-Diensten von Access
Sichere Speicherung von Tokens und Authentifizierungsstatus im KV-Speicher
Durable MCP
Durable MCP erweitert die Basis-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.propsUnterstü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-Verbindung (SSE) zwischen Clients und Ihrem Server aufrecht
Related MCP Connectors
Cloudflare Workers MCP server: ai-guardrails
Cloudflare Workers MCP server: ai-gateway
Cloudflare Workers MCP server: blog
Cloudflare Workers MCP server: ai-agent-scratchpad
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA Cloudflare Workers-based MCP server that enables secure remote connections using built-in OAuth authentication via Cloudflare Access. It provides identity-based access control for MCP tools and supports persistent state management through Durable Objects and SSE.-
- FlicenseNot gradedqualityDmaintenanceDeployable MCP server with Google OAuth for remote connections, enabling authenticated tool access via Cloudflare Workers.-
- FlicenseNot gradedqualityDmaintenanceEnables remote MCP connections with OAuth login, running on Cloudflare Workers for secure tool access.-
- FlicenseNot gradedqualityCmaintenanceEnables running a remote MCP server on Cloudflare Workers with OAuth login, allowing tools to be accessed remotely.-