Skip to main content
Glama
rodolfostoicus

mcp-access-oauth

Model Context Protocol (MCP)-Server + Access OAuth

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

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 mit Ihrem verbundenen Access-Identitätsanbieter anmelden, um eine Verbindung zu Ihrem MCP-Server herzustellen.

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 Access)

Erste Schritte

Repository klonen & Abhängigkeiten installieren: npm install

Für die Produktion

Erstellen Sie eine neue Access for SaaS OIDC-App:

  • Geben Sie als Autorisierungs-Callback-URL https://mcp-access-oauth.<Ihre-Subdomain>.workers.dev/callback und http://localhost:8788/callback an (für lokale Entwicklung).

  • Notieren Sie sich Ihre Client-ID und Ihr Client-Secret.

  • Legen Sie Secrets via 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 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 & 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 dem Inspector:

npx @modelcontextprotocol/inspector@latest

Geben Sie https://mcp-access-oauth.<Ihre-Subdomain>.workers.dev/mcp ein und klicken Sie auf Verbinden. Nachdem Sie den Authentifizierungsablauf durchlaufen haben, sehen Sie die Tools in Aktion:

Sie haben jetzt einen Remote-MCP-Server bereitgestellt!

Zugriffssteuerung

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"]);

Auf den Remote-MCP-Server von Claude Desktop aus zugreifen

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

Ersetzen Sie den Inhalt durch die folgende Konfiguration. Nachdem Sie Claude Desktop neu gestartet haben, ö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 Benutzeroberfläche angezeigt werden, 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 Entwicklungsumgebung tun.

  • Geben Sie als Homepage-URL http://localhost:8788 an.

  • Geben Sie als Autorisierungs-Callback-URL http://localhost:8788/callback an.

  • Notieren 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_KEY

Entwickeln & Testen

Führen Sie den Server lokal aus, damit er unter http://localhost:8788 verfügbar ist: wrangler dev

Um den lokalen Server zu testen, geben Sie http://localhost:8788/mcp in den Inspector ein und klicken Sie auf Verbinden. Nachdem Sie den Anweisungen gefolgt sind, 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. Dies liegt daran, dass Claude Desktop noch keine Remote-MCP-Server unterstützt, sodass es 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-Benutzeroberfläche. Sie sollten Ihre Tools dort sehen.

Verwenden von Cursor und anderen MCP-Clients

Um Cursor mit Ihrem MCP-Server zu verbinden, wählen Sie Typ: "Befehl" und geben Sie im Feld Befehl die Befehls- und Argumentfelder kombiniert ein (z. B. npx mcp-remote https://<Ihr-Worker-Name>.<Ihre-Subdomain>.workers.dev/mcp).

Beachten Sie, dass Cursor zwar HTTP+SSE-Server unterstützt, aber keine Authentifizierung, daher müssen Sie 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 das Claude-Setup verwendet wurde, und den MCP-Client neu starten.

Related MCP server: cloudflare-mcp-google-auth

Wie funktioniert es?

OAuth-Anbieter

Die OAuth-Provider-Bibliothek dient als vollständige OAuth 2.1-Server-Implementierung für Cloudflare Workers. Sie übernimmt die Komplexität des OAuth-Ablaufs, einschließlich Token-Ausstellung, -Validierung und -Verwaltung. In diesem Projekt spielt 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 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

  • Verwaltet die Server-Sent-Events (SSE)-Verbindung zwischen Clients und Ihrem Server

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    A 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.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server with built-in OAuth authentication via Cloudflare Access, enabling secure tool access and user identity-based restrictions.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A remote MCP server with built-in OAuth authentication via Cloudflare Access, providing tools like add and generateImage with user-based access control.
    -