Skip to main content
Glama
codezerowork

mcp-oauth2-token-provider

by codezerowork

mcp-oauth2-token-provider

Un servidor MCP (Model Context Protocol) genérico que actúa como proxy autenticado entre los IDE de IA y los endpoints MCP remotos. Gestiona internamente la generación de tokens OAuth2 client_credentials e inyecta de forma transparente tokens de portador en todas las solicitudes que pasan por el proxy.

Características

  • Proxy OAuth2 transparente — adquiere, almacena en caché y renueva tokens automáticamente

  • Descubrimiento dinámico de herramientas — sin esquemas de herramientas codificados; descubre herramientas del endpoint MCP remoto

  • Reintento automático en 401 — si un token expira a mitad de sesión, lo renueva y reintenta una vez

  • Comprobación de salud al inicio — verifica que el MCP remoto sea accesible antes de conectarse; falla rápido con mensajes de error claros

  • Persistencia de tokens — guarda tokens en caché en disco en ~/.oauth2-token-provider/token.json para sobrevivir a los reinicios del proceso

  • Configuración cero en código — todos los ajustes mediante variables de entorno

  • Admite respuestas SSE y JSON — maneja tanto HTTP Streamable como JSON-RPC plano desde el remoto

Related MCP server: MCP OAuth Proxy

Instalación

npx mcp-oauth2-token-provider

O instalar globalmente:

npm install -g mcp-oauth2-token-provider

Uso con Kiro / VS Code MCP

Añade a tu .kiro/settings/mcp.json (o equivalente):

{
  "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"
      }
    }
  }
}

Variables de entorno

Variable

Requerida

Descripción

REMOTE_MCP_URL

Sí

La URL del endpoint MCP remoto al que se conecta el proxy

OAUTH2_TOKEN_URL

Sí

Endpoint de token OAuth2 (concesión client_credentials)

OAUTH2_CLIENT_ID

Sí

ID de cliente OAuth2

OAUTH2_CLIENT_SECRET

Sí

Secreto de cliente OAuth2

OAUTH2_BASIC_USERNAME

No

Nombre de usuario de autenticación básica (para SSO de doble credencial)

OAUTH2_BASIC_PASSWORD

No

Contraseña de autenticación básica (para SSO de doble credencial)

Cómo funciona

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. Al iniciar, verifica que el endpoint MCP remoto sea accesible (envía MCP initialize)

  2. Si el remoto no es accesible, sale con error (el IDE muestra el estado "Failed")

  3. Si está en buen estado, se conecta al IDE mediante stdio y descubre las herramientas desde el remoto

  4. Todas las llamadas a herramientas se transmiten a través del proxy de forma transparente con el token de portador

Caché de tokens

Los tokens se guardan en caché en dos capas:

  • En memoria — la más rápida, se pierde al reiniciar el proceso

  • En disco — ~/.oauth2-token-provider/token.json, sobrevive a los reinicios

El token se renueva cuando:

  • Faltan menos de 60 segundos para su expiración

  • Se recibe una respuesta 401 desde el remoto

SSO de doble credencial (Opcional)

Algunos proveedores de SSO requieren ambas cosas:

  • Un client_id + client_secret en el cuerpo de la solicitud

  • Una cabecera de autenticación básica con credenciales de cuenta de servicio

Establece OAUTH2_BASIC_USERNAME y OAUTH2_BASIC_PASSWORD para habilitar este patrón.

Licencia

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