MCP Gateway
MCP Gateway
Ein Lazy-Loading-Proxy, der zwischen Claude und Ihren MCP-Servern fungiert. Anstatt jeden Server beim Start zu laden (was Hunderte von Tool-Schemas in den Kontext lädt und Tokens verbraucht), stellt das Gateway nur 4 leichtgewichtige Tools bereit. Backend-Server starten erst, wenn Sie sie tatsächlich benötigen.
Vorher: 10 MCP-Server = 200+ Tool-Schemas in jeder Konversation geladen = Tausende verschwendete Tokens.
Nachher: 10 MCP-Server hinter dem Gateway = 4 Tool-Schemas geladen. Jeder Server startet bei Bedarf.
Das Problem
Jeder MCP-Server, den Sie zu Claude Code hinzufügen, registriert alle seine Tools im Voraus. Ein typischer Server verfügt über 10-30 Tools, jedes mit einem vollständigen JSON-Schema. Bei 10 Servern sind das 100-300 Tool-Definitionen, die Ihr Kontextfenster belegen, bevor Sie überhaupt eine Frage stellen.
Die meisten Konversationen nutzen nur 1-2 Server. Der Rest ist unnötiger Ballast.
Related MCP server: MCP Gateway
Funktionsweise
Das Gateway stellt Claude 4 Tools bereit:
Tool | Funktion |
| Zeigt verfügbare Server und deren Status an |
| Verbindet sich mit einem Server und erkennt dessen Tools |
| Ruft ein Tool auf einem verbundenen Server auf |
| Verbindet einen Server neu (übernimmt Code-Änderungen) |
Wenn Claude einen Server benötigt, ruft es gateway_load_server auf. Das Gateway startet den Subprozess, führt den MCP-Handshake durch und speichert die Verbindung zwischen. Nachfolgende Aufrufe verwenden den laufenden Prozess wieder.
Server, die nicht verwendet werden, starten nie. Keine verschwendeten Tokens.
Schnellstart
git clone https://github.com/raiansar/mcp-gateway.git
cd mcp-gateway
./install.shBearbeiten Sie config.json, um Ihre Server hinzuzufügen, und fügen Sie dann das Gateway zu Claude Code hinzu:
claude mcp add gateway -- /path/to/mcp-gateway/run.shDas ist alles. Alle Ihre Server befinden sich nun hinter einem einzigen Gateway.
Konfiguration
config.json ist eine einfache Zuordnung von Servernamen zu ihren Verbindungsdetails. Das Gateway unterstützt sowohl stdio (lokale Prozesse) als auch HTTP (Remote-Server) als Transportwege.
Stdio-Server (lokal)
{
"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"
}
}
}HTTP-Server (remote)
{
"servers": {
"remote-server": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"timeout": 60,
"description": "Remote MCP server"
}
}
}Python-Server (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"
}
}
}Konfigurationsfelder
Feld | Erforderlich | Standard | Beschreibung |
| Nein |
| Transport: |
| Ja (stdio) | - | Befehl zum Ausführen des Servers |
| Nein |
| Befehlsargumente |
| Nein |
| Umgebungsvariablen |
| Ja (http) | - | Server-URL |
| Nein |
| HTTP-Header (Auth-Tokens, etc.) |
| Nein | 30/60 | Request-Timeout in Sekunden (30 für stdio, 60 für http) |
| Nein | - | Menschlich lesbare Beschreibung, die in |
Migration Ihrer bestehenden MCP-Server
Wenn Sie bereits MCP-Server in Claude Code konfiguriert haben, verschieben Sie diese auf das Gateway:
Vorher (in ~/.claude.json oder der Claude Desktop-Konfiguration):
{
"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": {}
}
}
}Nachher (in 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"
}
}
}Entfernen Sie dann die einzelnen Server aus Claude und fügen Sie nur das Gateway hinzu:
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.shVerwendung
Sobald es konfiguriert ist, verwendet Claude automatisch das Gateway. Eine typische Interaktion:
Claude ruft
gateway_list_serversauf, um zu sehen, was verfügbar istClaude ruft
gateway_load_server("github")auf, wenn es GitHub benötigtClaude ruft
gateway_call_tool("github", "search_repositories", '{"query": "mcp"}')auf, um ein Tool zu verwendenDer GitHub-Server bleibt für nachfolgende Aufrufe in derselben Sitzung aktiv
Das Feld description in Ihrer Konfiguration hilft Claude bei der Entscheidung, welcher Server für eine bestimmte Aufgabe geladen werden soll. Schreiben Sie daher gute Beschreibungen.
Unterschiede zu RTK
RTK ist ein CLI-Proxy, der die Ausgabe von Shell-Befehlen (git, ls, Test-Runner usw.) komprimiert, um den Token-Verbrauch um 60-90 % zu reduzieren.
MCP Gateway löst ein anderes Problem: Es verhindert die Überlastung durch MCP-Tool-Schemas, indem Server bei Bedarf geladen werden, anstatt alle Tools im Voraus zu registrieren.
MCP Gateway | RTK | |
Problem | Tool-Schemas von inaktiven MCP-Servern verschwenden Kontext | Ausführliche CLI-Ausgabe verschwendet Kontext |
Wie | Lädt Server bei Bedarf, stellt 4 Proxy-Tools bereit | Komprimiert die Befehlsausgabe, bevor sie den Kontext erreicht |
Wann | Start / Tool-Registrierung | Laufzeit / Befehlsausführung |
Umfang | MCP-Server-Verwaltung | Shell-Befehle (git, npm, cargo, etc.) |
Sie ergänzen sich gegenseitig. Verwenden Sie beide für maximale Token-Einsparungen.
Anforderungen
Python 3.10+
mcp-Paket (installiert durchinstall.sh)
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceActs 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.5GPL 3.0
- FlicenseAqualityCmaintenanceAggregates multiple MCP servers into a single gateway with unified top-level tools, reducing LLM context usage and enabling IDE compatibility by consolidating many tools into fewer interface functions.417-
- AlicenseNot gradedqualityCmaintenanceAggregates 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 npm23MIT
- AlicenseNot gradedqualityAmaintenanceAggregates 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.2Apache 2.0