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.

Related MCP server: MCP Gateway

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Acts as a proxy for multiple MCP servers, reducing context window usage from 15,000+ tokens to ~500 tokens by dynamically loading servers on-demand and exposing only 3 tools instead of all tool definitions.
    5
    GPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Aggregates multiple Model Context Protocol servers into a single gateway to provide unified search, description, and execution of tools. It reduces context limit issues by dynamically fetching specific tool schemas only when needed rather than loading all available tools at once.
    6 npm
    23
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Aggregates tools from multiple upstream MCP servers and exposes them through 4 meta-tools, enabling LLMs to discover and use hundreds of tools without loading all schemas upfront.
    2
    Apache 2.0