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