MCP Front

Un proxy OAuth 2.1 para servidores MCP que permite inicio de sesión único con Google, validación de dominio y tokens por usuario.

Documentación

mcp-front MCP Front

Docker image with tag latest Docker image with tag docker-client-latest

[!WARNING] Este proyecto está en desarrollo y no debe considerarse listo para producción.

Aunque estoy bastante seguro de que la arquitectura general es sólida, y yo mismo dependo de la implementación — así que debería funcionar :tm:. Pero definitivamente es software alfa.

¡Espera cambios importantes! :)

Además, no confíes demasiado en la documentación, se desactualiza rápidamente; no siempre la mantengo al día cuando hago cambios o agrego/elimino funciones. Está principalmente para anclarme y ayudarme a mantener el enfoque en mi visión inicial.

[!TIP] ¿Buscas la forma más fácil de obtener un servidor MCP para tu API? Echa un vistazo a Stainless✨. Ofrecemos generación de SDK y MCP de primer nivel. Construye un servidor MCP completo y publícalo en Cloudflare y Docker Hub en unos minutos.

Descargo de responsabilidad: el autor de mcp-front es un empleado temprano de Stainless

Una puerta de enlace de autenticación para servidores MCP (Model Context Protocol). Permite que tu equipo use Claude con bases de datos, APIs y herramientas internas sin exponerlas a internet.

mcp-front Architecture

El problema

Quieres que tu equipo use Claude con servidores MCP internos (bases de datos, Linear, Notion, APIs internas). Pero los servidores MCP no tienen autenticación multiusuario integrada. O los expones a internet pública, o construyes autenticación tú mismo, o ejecutas instancias separadas por usuario. Ninguna de estas opciones es ideal.

La solución

mcp-front se sitúa entre Claude y tus servidores MCP como una puerta de enlace de autenticación. Tu equipo se autentica una vez mediante OAuth (Google, Azure AD, GitHub, o cualquier proveedor OIDC). Cuando Claude se conecta, mcp-front valida el token, verifica que el usuario pertenece a tu organización, y actúa como proxy hacia el servidor MCP real en tu entorno seguro.

Para servidores stdio, cada usuario obtiene un subproceso aislado. Para servicios que necesitan claves API individuales (Notion, Linear), los usuarios las conectan una vez a través de una interfaz web y mcp-front inyecta los tokens automáticamente. Los tokens están limitados a servicios específicos (RFC 8707) — un token para tu servidor de Postgres no funcionará para Linear.

Control de acceso a nivel de organización con aislamiento por usuario. Sin modificaciones en tus servidores MCP. Nada expuesto a internet.

Cómo funciona

  1. El usuario agrega https://your-domain.com/<service>/sse a Claude
  2. Claude redirige al proveedor de identidad para iniciar sesión (solo la primera vez)
  3. mcp-front valida que el usuario pertenece a tu organización
  4. Si el servicio necesita una clave API de usuario (Notion, Linear), el usuario la conecta a través de una página web
  5. mcp-front actúa como proxy de todas las solicitudes MCP hacia el servidor backend

Pruébalo localmente

Guarda esto como config.json:

{
  "version": "v0.0.1-DEV_EDITION_EXPECT_CHANGES",
  "proxy": {
    "baseURL": "http://localhost:8080",
    "addr": ":8080"
  },
  "mcpServers": {
    "filesystem": {
      "transportType": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      "serviceAuths": [
        {
          "type": "bearer",
          "tokens": ["dev-token-123"]
        }
      ]
    }
  }
}
# With Go
go install github.com/stainless-api/mcp-front/cmd/mcp-front@main
mcp-front -config config.json

# Or with Docker
docker run -p 8080:8080 -v $(pwd)/config.json:/app/config.json dgellow/mcp-front:latest

En Claude.ai, agrega un servidor MCP con la URL http://localhost:8080/filesystem/sse, tipo de autenticación Bearer Token, token dev-token-123.

Consulta la Guía de inicio rápido para un recorrido completo.

Para ir más allá

Proveedores de identidad — Configura Google, Azure AD, GitHub, o cualquier proveedor OIDC para OAuth en producción.

Configuración — Todas las opciones de configuración, incluyendo persistencia en Firestore, HTTPS y autenticación de servicios por usuario.

Tipos de servidor — Stdio, SSE, HTTP transmisible, herramientas integradas y endpoints agregados.

Autenticación de servicios — Tokens por usuario para servicios como Notion, Linear y otros servicios OAuth o con clave API.

Arquitectura — Validación de audiencia por servicio, flujo de tokens y cumplimiento de la especificación MCP.

Referencia de API — Endpoints HTTP, descubrimiento OAuth y registro de clientes.

Seguridad

mcp-front utiliza OAuth 2.0 con PKCE para clientes públicos, control de acceso basado en dominio y organización, aislamiento de sesión por usuario para servidores stdio, declaraciones de audiencia por servicio (RFC 8707) para prevenir la reutilización de tokens entre servicios, y cifrado AES-256-GCM para datos sensibles en reposo.

Límite de seguridad: mcp-front maneja la autenticación. Los servidores MCP manejan la autorización y la validación de entrada. Solo usa servidores MCP en los que confíes con tus datos.

Licencia

Licenciado bajo la Licencia Elastic 2.0 con excepciones comerciales para Stainless Software Ltd y sus afiliados, y el autor. Se permite usar mcp-front como infraestructura para tus propios servicios (incluidos públicos/comerciales); no se permite ofrecer mcp-front en sí como un producto alojado.

Copyright 2025 Samuel "dgellow" El-Borai (sam@elborai.me)