MCP-S Gateway
Una puerta de enlace OAuth segura y de código abierto para la autenticación de MCP.
Documentación
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-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.
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(ohttps://<your-domain>/mcppara despliegues alojados)Selección de servidor: Puedes conectarte a un servidor MCP específico añadiendo el parámetro de consulta
?server_name=XXX, dondeXXXes el nombre del servidor de tu configuraciónmcp.json. Por ejemplo:http://localhost:3000/mcp?server_name=your-serverConéctate con tu cliente de IA preferido:
Cliente Enlace Claude
claude.ai Cursor
cursor.com Windsurf
codeium.com/windsurf VSCode
code.visualstudio.com
Clinecline.tools Highlight AI
highlightai.com
Augment Codeaugmentcode.com
Despliegue
Despliega la pasarela mcp-s usando npx:
- Configura tus variables de entorno (consulta Configuración avanzada)
- Crea tu archivo de configuración
mcp.json - 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
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úblicosread:user- Acceso de lectura a la información del perfil de usuariouser: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ón | Descripción | Valor predeterminado | Ejemplo |
|---|---|---|---|
--mcp-config | Ruta al archivo de configuración de servidores MCP | ./mcp.json | --mcp-config ./config/servers.json |
--envfile | Ruta al archivo de variables de entorno | ./.env | --envfile ./config/production.env |
Variables de entorno
| Variable de entorno | Descripción | Valor predeterminado | Requerido |
|---|---|---|---|
PORT | Puerto del servidor | 3000 | No |
BASE_URL | URL base de la pasarela | http://localhost:3000 | No |
AUTH_SECRET | Secreto para firmar/cifrar tokens (generar con openssl rand -base64 33) | - | Sí |
AUTH_PROVIDER | Nombre del proveedor de OAuth | google | No |
TOKEN_EXPIRATION_TIME | Tiempo de expiración del token en milisegundos | 86400000 (24h) | No |
DB_PATH | Ruta del archivo de base de datos SQLite | ./mcp.sqlite | No |
AUTH_[Provider]_ID | ID de cliente de OAuth para tu proveedor | - | Sí |
AUTH_[Provider]_SECRET | Secreto 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.
- Cierra todas las ventanas de Cursor
- Abre una sola ventana de Cursor
- 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:
- Actualiza Node.js a la versión 22 o posterior
- Verifica tu versión:
node --version - 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!

