Skip to main content
Glama

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

gateway_list_servers

Zeigt verfügbare Server und deren Status an

gateway_load_server

Verbindet sich mit einem Server und erkennt dessen Tools

gateway_call_tool

Ruft ein Tool auf einem verbundenen Server auf

gateway_reload_server

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

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

Das 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

type

Nein

stdio

Transport: stdio, http, sse oder streamable-http

command

Ja (stdio)

-

Befehl zum Ausführen des Servers

args

Nein

[]

Befehlsargumente

env

Nein

{}

Umgebungsvariablen

url

Ja (http)

-

Server-URL

headers

Nein

{}

HTTP-Header (Auth-Tokens, etc.)

timeout

Nein

30/60

Request-Timeout in Sekunden (30 für stdio, 60 für http)

description

Nein

-

Menschlich lesbare Beschreibung, die in gateway_list_servers angezeigt wird

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

Verwendung

Sobald es konfiguriert ist, verwendet Claude automatisch das Gateway. Eine typische Interaktion:

  1. Claude ruft gateway_list_servers auf, um zu sehen, was verfügbar ist

  2. Claude ruft gateway_load_server("github") auf, wenn es GitHub benötigt

  3. Claude ruft gateway_call_tool("github", "search_repositories", '{"query": "mcp"}') auf, um ein Tool zu verwenden

  4. Der 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 durch install.sh)

Lizenz

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