Skip to main content
Glama

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

gateway_list_servers

Muestra los servidores disponibles y su estado

gateway_load_server

Se conecta a un servidor y descubre sus herramientas

gateway_call_tool

Llama a una herramienta en un servidor conectado

gateway_reload_server

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.sh

Edita 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.sh

Eso 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

type

No

stdio

Transporte: stdio, http, sse, o streamable-http

command

Sí (stdio)

-

Comando para ejecutar el servidor

args

No

[]

Argumentos del comando

env

No

{}

Variables de entorno

url

Sí (http)

-

URL del servidor

headers

No

{}

Cabeceras HTTP (tokens de autenticación, etc.)

timeout

No

30/60

Tiempo de espera de la solicitud en segundos (30 para stdio, 60 para http)

description

No

-

Descripción legible por humanos que se muestra en gateway_list_servers

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.sh

Uso

Una vez configurado, Claude utiliza automáticamente la puerta de enlace. Una interacción típica:

  1. Claude llama a gateway_list_servers para ver qué hay disponible

  2. Claude llama a gateway_load_server("github") cuando necesita GitHub

  3. Claude llama a gateway_call_tool("github", "search_repositories", '{"query": "mcp"}') para usar una herramienta

  4. El 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 por install.sh)

Licencia

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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