Skip to main content
Glama
codezerowork

mcp-oauth2-token-provider

by codezerowork

mcp-oauth2-token-provider

Ein generischer MCP-Server (Model Context Protocol), der als authentifizierter Proxy zwischen KI-IDs und entfernten MCP-Endpunkten fungiert. Übernimmt die OAuth2-Tokenerzeugung mit client_credentials intern und fügt transparent Bearer-Tokens in alle weitergeleiteten Anfragen ein.

Funktionen

  • Transparenter OAuth2-Proxy — erwirbt, speichert und aktualisiert Tokens automatisch

  • Dynamische Tool-Erkennung — keine fest codierten Tool-Schemas; erkennt Tools vom entfernten MCP-Endpunkt

  • Automatischer Wiederholungsversuch bei 401 — wenn ein Token während der Sitzung abläuft, wird es aktualisiert und einmal erneut versucht

  • Start-Gesundheitscheck — überprüft, ob der entfernte MCP erreichbar ist, bevor eine Verbindung hergestellt wird; schlägt schnell mit klaren Fehlermeldungen fehl

  • Token-Persistenz — speichert Tokens auf der Festplatte unter ~/.oauth2-token-provider/token.json, um Prozessneustarts zu überstehen

  • Null Konfiguration im Code — alle Einstellungen über Umgebungsvariablen

  • Unterstützt SSE- und JSON-Antworten — verarbeitet sowohl Streamable HTTP als auch einfaches JSON-RPC vom entfernten Endpunkt

Related MCP server: MCP OAuth Proxy

Installation

npx mcp-oauth2-token-provider

Oder global installieren:

npm install -g mcp-oauth2-token-provider

Verwendung mit Kiro / VS Code MCP

Fügen Sie zu Ihrer .kiro/settings/mcp.json (oder entsprechend) hinzu:

{
  "mcpServers": {
    "my-remote-server": {
      "command": "npx",
      "args": ["mcp-oauth2-token-provider"],
      "env": {
        "REMOTE_MCP_URL": "https://your-server.com/mcp",
        "OAUTH2_TOKEN_URL": "https://your-sso.com/token.oauth2",
        "OAUTH2_CLIENT_ID": "your-client-id",
        "OAUTH2_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Umgebungsvariablen

Variable

Erforderlich

Beschreibung

REMOTE_MCP_URL

Ja

Die URL des entfernten MCP-Endpunkts, an den weitergeleitet werden soll

OAUTH2_TOKEN_URL

Ja

OAuth2-Token-Endpunkt (client_credentials-Grant)

OAUTH2_CLIENT_ID

Ja

OAuth2-Client-ID

OAUTH2_CLIENT_SECRET

Ja

OAuth2-Client-Geheimnis

OAUTH2_BASIC_USERNAME

Nein

Basic-Auth-Benutzername (für Dual-Credential-SSO)

OAUTH2_BASIC_PASSWORD

Nein

Basic-Auth-Passwort (für Dual-Credential-SSO)

So funktioniert es

AI IDE ←stdio→ [mcp-oauth2-token-provider] ←HTTP+Bearer→ [Remote MCP Server]
                         │
                         ├─ Acquires OAuth2 token (client_credentials)
                         ├─ Caches in memory + ~/.oauth2-token-provider/token.json
                         ├─ Injects Bearer header on every request
                         ├─ Auto-refreshes on expiry (60s safety margin)
                         └─ Retries once on 401 with fresh token
  1. Beim Start wird überprüft, ob der entfernte MCP-Endpunkt erreichbar ist (sendet MCP initialize)

  2. Wenn der entfernte Endpunkt nicht erreichbar ist, wird mit Fehler beendet (IDE zeigt Status "Failed")

  3. Wenn gesund, verbindet sich über stdio mit der IDE und erkennt Tools vom entfernten Endpunkt

  4. Alle Tool-Aufrufe werden transparent mit dem Bearer-Token weitergeleitet

Token-Zwischenspeicherung

Tokens werden in zwei Ebenen zwischengespeichert:

  • Im Speicher — am schnellsten, geht bei Prozessneustart verloren

  • Auf der Festplatte — ~/.oauth2-token-provider/token.json, übersteht Neustarts

Das Token wird aktualisiert, wenn:

  • Es sich innerhalb von 60 Sekunden vor Ablauf befindet

  • Eine 401-Antwort vom entfernten Endpunkt empfangen wird

Dual-Credential-SSO (Optional)

Einige SSO-Anbieter erfordern beides:

  • Eine client_id + client_secret im Anforderungstext

  • Einen Basic-Auth-Header mit Dienstkonto-Anmeldeinformationen

Setzen Sie OAUTH2_BASIC_USERNAME und OAUTH2_BASIC_PASSWORD, um dieses Muster zu aktivieren.

Lizenz

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Proxies MCP requests from Cursor IDE to a custom HTTP server, enabling custom tool integrations.
    8 npm
    1
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Acts as a secure OAuth 2.0/2.1 proxy gateway for MCP servers, enabling integration with Claude and ChatGPT platforms.
    20 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a Streamable HTTP MCP proxy for VS Code Copilot and Claude Code, using JWT client assertion to securely access NetSuite APIs.
    MIT