mcp-proxy
Um
Der mcp-proxy ist ein Tool, mit dem Sie zwischen Servertransporten wechseln können. Es werden zwei Modi unterstützt:
stdio zu SSE/StreamableHTTP
SSE zu stdio
Related MCP server: Tiny SSE MCP Server
1. stdio zu SSE/StreamableHTTP
Führen Sie von stdio aus einen Proxyserver aus, der eine Verbindung zu einem Remote-SSE-Server herstellt.
Dieser Modus ermöglicht Clients wie Claude Desktop die Kommunikation mit einem Remote-Server über SSE, obwohl dies nicht nativ unterstützt wird.
1.1 Konfiguration
In diesem Modus muss die URL des SSE-Endpunkts des MCP-Servers als erstes Argument des Programms angegeben werden. Wenn der Server streambaren HTTP-Transport verwendet, muss dieser auf der mcp-proxy Seite durch die Angabe von --transport=streamablehttp erzwungen werden.
Argumente
Name | Erforderlich | Beschreibung | Beispiel |
| Ja | Der SSE-Endpunkt des MCP-Servers, mit dem eine Verbindung hergestellt werden soll | |
| NEIN | Für die MCP-Server-SSE-Verbindung zu verwendende Header | Autorisierung „Inhaber my-secret-access-token“ |
| NEIN | Legt fest, welches Transportprotokoll bei der Verbindung mit einem MCP-Server verwendet werden soll. Möglich sind entweder „sse“ oder „streamablehttp“. | streamablehttp |
Umgebungsvariablen
Name | Erforderlich | Beschreibung | Beispiel |
| NEIN | Kann anstelle von
| IHR_TOKEN |
1.2 Anwendungsbeispiel
mcp-proxy soll vom MCP-Client gestartet werden, daher muss die Konfiguration entsprechend erfolgen.
Für Claude Desktop kann der Konfigurationseintrag folgendermaßen aussehen:
2. SSE zu stdio
Führen Sie einen Proxyserver aus, der einen SSE-Server verfügbar macht, der eine Verbindung zu einem lokalen Stdio-Server herstellt.
Dies ermöglicht Remoteverbindungen zum lokalen stdio-Server. Der mcp-proxy öffnet einen Port, um auf SSE-Anfragen zu warten, und startet einen lokalen stdio-Server, der MCP-Anfragen verarbeitet.
2.1 Konfiguration
Für diesen Modus muss das Argument --sse-port gesetzt sein. Das Argument --sse-host kann gesetzt werden, um die Host-IP-Adresse anzugeben, auf der der SSE-Server lauscht. Zusätzliche Umgebungsvariablen können mit dem Argument --env an den lokalen stdio-Server übergeben werden. Die Kommandozeilenargumente für den lokalen stdio-Server müssen nach dem Trennzeichen -- übergeben werden.
Argumente
Name | Erforderlich | Beschreibung | Beispiel |
| Ja | Der Befehl zum Starten des MCP-Stdio-Servers | uvx mcp-server-fetch |
| Nein, zufällig verfügbar | Der zu überwachende MCP-Server-Port | 8080 |
| Nein, standardmäßig
| Die Host-IP-Adresse, auf der der MCP-Server lauscht | 0.0.0.0 |
| NEIN | Zusätzliche Umgebungsvariablen zur Übergabe an den MCP-Standardserver. Kann mehrfach verwendet werden. | FOO BAR |
| NEIN | Das Arbeitsverzeichnis, das an den MCP-stdio-Serverprozess übergeben werden soll. | /tmp |
| NEIN | Übergeben Sie alle Umgebungsvariablen beim Starten des Servers | --no-pass-environment |
| NEIN | Erlaubte Ursprünge für den SSE-Server. Kann mehrfach verwendet werden. Standardmäßig ist kein CORS zulässig. | --allow-origin "*" |
| NEIN | Aktivieren Sie den zustandslosen Modus für streambare HTTP-Transporte. Der Standardwert ist „False“. | --no-stateless |
| NEIN | Definiert einen benannten stdio-Server. | --named-server fetch 'uvx mcp-server-fetch' |
| NEIN | Pfad zu einer JSON-Datei, die benannte stdio-Server definiert. | --named-server-config /Pfad/zu/Servern.json |
(veraltet) | Nein, zufällig verfügbar | Der SSE-Server-Port, auf dem gelauscht werden soll | 8080 |
(veraltet) | Nein, standardmäßig
| Die Host-IP-Adresse, auf der der SSE-Server lauscht | 0.0.0.0 |
2.2 Anwendungsbeispiele
So starten Sie den mcp-proxy Proxyserver, der auf Port 8080 lauscht und eine Verbindung zum lokalen MCP-Server herstellt:
Benannte Server
NAMEwird im URL-Pfad/servers/NAME/verwendet.COMMAND_STRINGist der Befehl zum Starten des Servers (z. B. „uvx mcp-server-fetch“).Kann mehrfach verwendet werden.
Dieses Argument wird ignoriert, wenn
--named-server-configverwendet wird.
FILE_PATH– Falls angegeben, ist dies die exklusive Quelle für benannte Server und--named-serverCLI-Argumente werden ignoriert.
Wenn ein Standardserver angegeben ist (das Argument command_or_url ohne --named-server oder --named-server-config ), ist dieser über die Stammpfade zugänglich (z. B. http://127.0.0.1:8080/sse ).
Benannte Server (unabhängig davon, ob sie mit --named-server oder --named-server-config definiert sind) sind unter /servers/<server-name>/ erreichbar (z. B. http://127.0.0.1:8080/servers/fetch1/sse ). Der Endpunkt /status stellt den globalen Status bereit.
JSON-Konfigurationsdateiformat für
Die JSON-Datei sollte dieser Struktur folgen:
mcpServers: Ein Wörterbuch, in dem jeder Schlüssel der Servername ist (verwendet im URL-Pfad, z. B./servers/fetch/) und der Wert ein Objekt ist, das den Server definiert.command: (Erforderlich) Der für den stdio-Server auszuführende Befehl.args: (Optional) Eine Liste mit Argumenten für den Befehl. Standardmäßig ist die Liste leer.enabled: (Optional) Wennfalse, wird diese Serverdefinition übersprungen. Der Standardwert isttrue.timeoutundtransportType: Diese Felder sind in Standard-MCP-Clientkonfigurationen vorhanden, werden aber derzeit vonmcp-proxybeim Laden benannter Server ignoriert . Der Transporttyp ist implizit „stdio“.
Installation
Installation über Smithery
So installieren Sie MCP Proxy für Claude Desktop automatisch über Smithery :
Installation über PyPI
Die stabile Version des Pakets ist im PyPI-Repository verfügbar. Sie können es mit dem folgenden Befehl installieren:
Nach der Installation können Sie den Server mit dem Befehl mcp-proxy ausführen. Die Konfigurationsoptionen für die einzelnen Modi finden Sie oben.
Installation über das Github-Repository (neueste Version)
Die neueste Version des Pakets kann mit dem folgenden Befehl aus dem Git-Repository installiert werden:
Wenn Sie den Server bereits installiert haben, können Sie ihn mit dem Befehluv tool upgrade --reinstall aktualisieren.
Wenn Sie den Server löschen möchten, verwenden Sie den Befehluv tool uninstall mcp-proxy .
Installation als Container
Ab Version 0.3.2 ist es möglich, das entsprechende Container-Image zu ziehen und auszuführen:
Fehlerbehebung
Problem : Claude Desktop kann den Server nicht starten: ENOENT-Code in den Protokollen
Lösung : Versuchen Sie, den vollständigen Pfad zur Binärdatei zu verwenden. Öffnen Sie dazu ein Terminal und führen Sie den Befehl
where mcp-proxy(macOS, Linux) oderwhere.exe mcp-proxy(Windows) aus. Verwenden Sie anschließend den Ausgabepfad als Wert für das Attribut „command“:"fetch": { "command": "/full/path/to/bin/mcp-proxy", "args": [ "http://localhost:8932/sse" ] }
Erweitern des Container-Images
Sie können das mcp-proxy Container-Image um zusätzliche ausführbare Dateien erweitern. Beispielsweise ist uv nicht standardmäßig enthalten, Sie können damit aber ein benutzerdefiniertes Image erstellen:
Docker Compose-Setup
Mit der benutzerdefinierten Docker-Datei können Sie einen Dienst in Ihrer Docker Compose-Datei definieren:
Vergessen Sie nicht, das Argument--pass-environment festzulegen, da Sie sonst die Fehlermeldung „Kein Interpreter in verwalteten Installationen oder im Suchpfad gefunden“ erhalten.
Befehlszeilenargumente
Beispielkonfigurationsdatei
Testen
Überprüfen Sie den mcp-proxy Server, indem Sie ihn mit dem mcp-server-fetch -Server ausführen. Sie können das Inspector-Tool verwenden, um den Zielserver zu testen.