MCP Gateway
MCP Gateway
Un proxy de carga diferida que se sitúa entre Claude y tus servidores MCP. En lugar de cargar cada servidor al inicio (lo que vuelca cientos de esquemas de herramientas en el contexto y consume tokens), la puerta de enlace expone solo 4 herramientas ligeras. Los servidores backend solo se inician cuando realmente los necesitas.
Antes: 10 servidores MCP = más de 200 esquemas de herramientas cargados en cada conversación = miles de tokens desperdiciados.
Después: 10 servidores MCP detrás de la puerta de enlace = 4 esquemas de herramientas cargados. Cada servidor se inicia bajo demanda.
El problema
Cada servidor MCP que añades a Claude Code registra todas sus herramientas por adelantado. Un servidor típico tiene entre 10 y 30 herramientas, cada una con un esquema JSON completo. Con 10 servidores, eso supone entre 100 y 300 definiciones de herramientas consumiendo tu ventana de contexto antes incluso de hacer una pregunta.
La mayoría de las conversaciones solo utilizan 1 o 2 servidores. El resto es peso muerto.
Cómo funciona
La puerta de enlace expone 4 herramientas a Claude:
Herramienta | Qué hace |
| Muestra los servidores disponibles y su estado |
| Se conecta a un servidor y descubre sus herramientas |
| Llama a una herramienta en un servidor conectado |
| Reconecta un servidor (detecta cambios en el código) |
Cuando Claude necesita un servidor, llama a gateway_load_server. La puerta de enlace inicia el subproceso, realiza el protocolo de enlace MCP y almacena la conexión en caché. Las llamadas posteriores reutilizan el proceso en ejecución.
Los servidores que no se utilizan nunca se inician. No se desperdician tokens.
Inicio rápido
git clone https://github.com/raiansar/mcp-gateway.git
cd mcp-gateway
./install.shEdita config.json para añadir tus servidores, luego añade la puerta de enlace a Claude Code:
claude mcp add gateway -- /path/to/mcp-gateway/run.shEso es todo. Todos tus servidores están ahora detrás de una única puerta de enlace.
Configuración
config.json es un mapa simple de nombres de servidor a sus detalles de conexión. La puerta de enlace admite transportes stdio (procesos locales) y HTTP (servidores remotos).
Servidores Stdio (locales)
{
"servers": {
"my-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "some-mcp-server@latest"],
"env": {
"API_KEY": "your-key"
},
"timeout": 30,
"description": "What this server does"
}
}
}Servidores HTTP (remotos)
{
"servers": {
"remote-server": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"timeout": 60,
"description": "Remote MCP server"
}
}
}Servidores Python (uv)
{
"servers": {
"my-python-server": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/server", "server-name"],
"env": {},
"timeout": 120,
"description": "Python server managed by uv"
}
}
}Campos de configuración
Campo | Requerido | Predeterminado | Descripción |
| No |
| Transporte: |
| Sí (stdio) | - | Comando para ejecutar el servidor |
| No |
| Argumentos del comando |
| No |
| Variables de entorno |
| Sí (http) | - | URL del servidor |
| No |
| Cabeceras HTTP (tokens de autenticación, etc.) |
| No | 30/60 | Tiempo de espera de la solicitud en segundos (30 para stdio, 60 para http) |
| No | - | Descripción legible por humanos que se muestra en |
Migración de tus servidores MCP existentes
Si ya tienes servidores MCP configurados en Claude Code, muévelos a la puerta de enlace:
Antes (en ~/.claude.json o en la configuración de Claude Desktop):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" }
},
"tavily": {
"command": "npx",
"args": ["-y", "tavily-mcp@latest"],
"env": { "TAVILY_API_KEY": "tvly-xxx" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"],
"env": {}
}
}
}Después (en config.json):
{
"servers": {
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" },
"description": "GitHub - repos, issues, PRs, code search"
},
"tavily": {
"type": "stdio",
"command": "npx",
"args": ["-y", "tavily-mcp@latest"],
"env": { "TAVILY_API_KEY": "tvly-xxx" },
"description": "Tavily AI search"
},
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"],
"env": {},
"description": "File system access"
}
}
}Luego elimina los servidores individuales de Claude y añade solo la puerta de enlace:
claude mcp remove github -s user
claude mcp remove tavily -s user
claude mcp remove filesystem -s user
claude mcp add gateway -- /path/to/mcp-gateway/run.shUso
Una vez configurado, Claude utiliza automáticamente la puerta de enlace. Una interacción típica:
Claude llama a
gateway_list_serverspara ver qué hay disponibleClaude llama a
gateway_load_server("github")cuando necesita GitHubClaude llama a
gateway_call_tool("github", "search_repositories", '{"query": "mcp"}')para usar una herramientaEl servidor de GitHub permanece en ejecución para llamadas posteriores en la misma sesión
El campo description en tu configuración ayuda a Claude a decidir qué servidor cargar para una tarea determinada, así que escribe buenas descripciones.
En qué se diferencia de RTK
RTK es un proxy CLI que comprime la salida de comandos de shell (git, ls, ejecutores de pruebas, etc.) para reducir el consumo de tokens en un 60-90%.
MCP Gateway resuelve un problema diferente: evita la saturación del esquema de herramientas MCP mediante la carga diferida de servidores bajo demanda en lugar de registrar todas las herramientas por adelantado.
MCP Gateway | RTK | |
Problema | Los esquemas de herramientas de servidores MCP inactivos desperdician contexto | La salida verbosa de la CLI desperdicia contexto |
Cómo | Carga servidores de forma diferida, expone 4 herramientas proxy | Comprime la salida del comando antes de que llegue al contexto |
Cuándo | Inicio / registro de herramientas | Tiempo de ejecución / ejecución de comandos |
Alcance | Gestión de servidores MCP | Comandos de shell (git, npm, cargo, etc.) |
Son complementarios. Utiliza ambos para obtener el máximo ahorro de tokens.
Requisitos
Python 3.10+
Paquete
mcp(instalado porinstall.sh)
Licencia
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RaiAnsar/mcp-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server