MCP-S Gateway

Una puerta de enlace OAuth segura y de código abierto para la autenticación de MCP.

Documentación

mcp-gateway logo

Webrix MCP-S Gateway
Una pasarela OAuth segura y de código abierto para la autenticación de MCP

Pasarela y capa de integración para el Protocolo de Contexto de Modelos (MCP)

MCP Gateway is released under the MIT license npm latest release Downloads GitHub Stars


MCP-S Gateway

mcp-gateway es una pasarela segura y una capa de integración para el Protocolo de Contexto de Modelos (MCP). Proporciona una interfaz unificada y lista para entornos empresariales para conectar, gestionar y extender módulos y servicios de MCP, con un enfoque en la seguridad y la integración sin interrupciones.

MCP Gateway Demo

Inicio rápido

1. Configura tus servidores MCP - Crea el archivo mcp.json en tu proyecto:

{
  "mcpServers": {
    "your-server": {
      "command": "npx",
      "args": ["-y", "@your-mcp-server"],
      "env": {
        "API_KEY": "your-api-key"
      }
    },
    "octocode": {
      "command": "npx",
      "args": ["octocode-mcp"]
    }
  }
}

2. Usa el archivo .env.example como base y anula lo que sea necesario:

3. Inicia con npx (Recomendado):

# Default (uses ./mcp.json and ./.env)
npx @mcp-s/secure-mcp-gateway

# Custom configuration paths
npx @mcp-s/secure-mcp-gateway --mcp-config ./custom/mcp.json --envfile ./custom/.env

O clona:

git clone https://github.com/mcp-s-ai/secure-mcp-gateway.git && cd secure-mcp-gateway
npm install && npm run start

4. Añade a tu configuración de MCP:

stdio:

{
  "mcpServers": {
    "mcp-gateway": {
      "command": "npx",
      "args": ["-y", "@mcp-s/mcp"],
      "env": {
        "BASE_URL": "http://localhost:3000"
      }
    }
  }
}

Configuración de HTTP transmisible:

{
  "mcpServers": {
    "mcp-gateway": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Características

  • Pasarela autoalojada: Despliega dentro de tu propia infraestructura para un control máximo
  • Autenticación OAuth: Autenticación segura con cualquier proveedor de OAuth mediante Auth.js
  • Soporte de TypeScript: Totalmente tipado para un desarrollo robusto

Soporta todos los tipos de conexión de MCP:

  • STDIO: Servidores MCP de entrada/salida estándar

  • StreamableHTTP: Conexiones de transmisión basadas en HTTP mediante http://localhost:3000/mcp (o https://<your-domain>/mcp para despliegues alojados)

    Selección de servidor: Puedes conectarte a un servidor MCP específico añadiendo el parámetro de consulta ?server_name=XXX, donde XXX es el nombre del servidor de tu configuración mcp.json. Por ejemplo: http://localhost:3000/mcp?server_name=your-server

    Conéctate con tu cliente de IA preferido:

    ClienteEnlace
    Claude Claudeclaude.ai
    Cursor Cursorcursor.com
    Windsurf Windsurfcodeium.com/windsurf
    VSCode VSCodecode.visualstudio.com
    Cline Clinecline.tools
    Highlight AI Highlight AIhighlightai.com
    Augment Code Augment Codeaugmentcode.com

Despliegue

Despliega la pasarela mcp-s usando npx:

  1. Configura tus variables de entorno (consulta Configuración avanzada)
  2. Crea tu archivo de configuración mcp.json
  3. Ejecuta npx @mcp-s/secure-mcp-gateway

Para despliegues de producción, considera usar:

  • Gestores de procesos como PM2: pm2 start "npx @mcp-s/secure-mcp-gateway" --name mcp-gateway
  • Orquestación de contenedores (Docker, Kubernetes)
  • Plataformas en la nube (Heroku, Railway, Render)

Configuración de autenticación

Auth.js logo

mcp-gateway aprovecha el poder de Auth.js, que soporta más de 80 proveedores de OAuth de forma nativa. Esto convierte a Auth.js en el compañero perfecto para un proyecto de código abierto como mcp-gateway. Ambas bibliotecas comparten el mismo compromiso con la flexibilidad, la seguridad y la experiencia del desarrollador. Al integrarnos con Auth.js, evitamos reinventar la rueda de la autenticación y, en su lugar, te proporcionamos flujos de OAuth probados en batalla y listos para producción que funcionan sin problemas en todos los proveedores.

Simplemente establece la variable de entorno AUTH_PROVIDER y proporciona las credenciales requeridas para tu proveedor elegido: mcp-gateway se encarga del resto.

Configuración de OAuth de Google

Documentación: Proveedor de Google de Auth.js

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=google
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
Configuración de OAuth de Okta

Documentación: Proveedor de Okta de Auth.js

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=okta
AUTH_OKTA_ID=your-okta-client-id
AUTH_OKTA_SECRET=your-okta-client-secret
AUTH_OKTA_ISSUER=https://your-okta-domain.okta.com/oauth2/default
Configuración de OAuth de Azure AD

Documentación: Proveedor de Azure AD de Auth.js

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=azure-ad
AUTH_AZURE_AD_ID=your-azure-client-id
AUTH_AZURE_AD_SECRET=your-azure-client-secret
AUTH_AZURE_AD_TENANT_ID=your-tenant-id-or-common
Configuración de OAuth de GitHub

Documentación: Proveedor de GitHub de Auth.js

El OAuth de GitHub es particularmente útil para servidores MCP que interactúan con repositorios de GitHub, como Octocode. Al usar OAuth de GitHub, puedes especificar ámbitos para controlar a qué permisos tienen acceso tus servidores MCP.

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=github
AUTH_GITHUB_ID=your-github-client-id
AUTH_GITHUB_SECRET=your-github-client-secret
AUTH_GITHUB_SCOPES=repo

Ámbitos comunes de GitHub:

  • repo - Acceso completo a los repositorios (públicos y privados)
  • public_repo - Acceso solo a repositorios públicos
  • read:user - Acceso de lectura a la información del perfil de usuario
  • user:email - Acceso a las direcciones de correo electrónico del usuario

Para Octocode y servidores MCP similares que necesitan acceso a repositorios, normalmente se requiere el ámbito repo.

Para otros proveedores, consulta la documentación de Proveedores de Auth.js.

Configuración avanzada

Opciones de línea de comandos

OpciónDescripciónValor predeterminadoEjemplo
--mcp-configRuta al archivo de configuración de servidores MCP./mcp.json--mcp-config ./config/servers.json
--envfileRuta al archivo de variables de entorno./.env--envfile ./config/production.env

Variables de entorno

Variable de entornoDescripciónValor predeterminadoRequerido
PORTPuerto del servidor3000No
BASE_URLURL base de la pasarelahttp://localhost:3000No
AUTH_SECRETSecreto para firmar/cifrar tokens (generar con openssl rand -base64 33)-Sí
AUTH_PROVIDERNombre del proveedor de OAuthgoogleNo
TOKEN_EXPIRATION_TIMETiempo de expiración del token en milisegundos86400000 (24h)No
DB_PATHRuta del archivo de base de datos SQLite./mcp.sqliteNo
AUTH_[Provider]_IDID de cliente de OAuth para tu proveedor-Sí
AUTH_[Provider]_SECRETSecreto de cliente de OAuth para tu proveedor-Sí
AUTH_[Provider]_*Variables adicionales específicas del proveedor (consulta la documentación de Auth.js)-Varía

Solución de problemas

StreamableHTTP con Cursor: Las herramientas no aparecen después de iniciar sesión

Problema: Al usar la configuración de StreamableHTTP en Cursor, las herramientas no aparecen incluso después de una autenticación exitosa.

Solución: Asegúrate de tener solo una ventana de Cursor abierta. Varias ventanas de Cursor pueden interferir con el establecimiento de la conexión MCP.

  1. Cierra todas las ventanas de Cursor
  2. Abre una sola ventana de Cursor
  3. Reintenta el proceso de autenticación
Error del módulo SQLite de Node.js

Problema: Ves el siguiente error:

Error [ERR_UNKNOWN_BUILTIN_MODULE]: No such built-in module: node:sqlite

Solución: Este error ocurre al usar una versión anterior de Node.js. El módulo node:sqlite requiere Node.js versión 22 o superior.

Corrección:

  1. Actualiza Node.js a la versión 22 o posterior
  2. Verifica tu versión: node --version
  3. Reinicia la pasarela: npm run start

Opciones de instalación:

  • Usando nvm: nvm install 22 && nvm use 22
  • Descarga desde nodejs.org

Solución alojada

Visita webrix.ai para nuestra solución de alojamiento totalmente gestionada con características avanzadas:

  • Configuración cero: Comienza en segundos sin ninguna configuración
  • Seguridad de nivel empresarial: Autenticación SSO avanzada para todas las interacciones de MCP
  • Más de 20 conectores preconstruidos: Integración rápida de plug-and-play con cientos de herramientas
  • Roles y permisos: Control de acceso granular con definiciones de roles personalizados
  • Monitoreo y análisis: Información en tiempo real sobre tu uso de MCP
  • Alta disponibilidad: SLA de uptime del 99.9% con CDN global
  • Soporte premium: Acceso directo a nuestro equipo de ingeniería
  • Integraciones personalizadas: Construye y despliega conectores MCP personalizados

Comunidad

¿Tienes preguntas? ¿Necesitas ayuda para comenzar? ¿Quieres compartir tu configuración de MCP?

Únete a nuestra comunidad de Slack donde los desarrolladores se ayudan activamente entre sí con implementaciones de la pasarela MCP, solución de problemas y mejores prácticas.

💬 Únete a nuestra comunidad de Slack →

Licencia

Publicado bajo la Licencia MIT. ¡Las contribuciones son bienvenidas - dale estrella y haz un fork!