mcp-proxy
- 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
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 |
---|---|---|---|
command_or_url | Ja | Der SSE-Endpunkt des MCP-Servers, mit dem eine Verbindung hergestellt werden soll | http://example.io/sse |
--headers | NEIN | Für die MCP-Server-SSE-Verbindung zu verwendende Header | Autorisierung „Inhaber my-secret-access-token“ |
--transport | 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 |
---|---|---|---|
API_ACCESS_TOKEN | NEIN | Kann anstelle von --headers Authorization 'Bearer <API_ACCESS_TOKEN>' | 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 |
---|---|---|---|
command_or_url | Ja | Der Befehl zum Starten des MCP-Stdio-Servers | uvx mcp-server-fetch |
--port | Nein, zufällig verfügbar | Der zu überwachende MCP-Server-Port | 8080 |
--host | Nein, standardmäßig 127.0.0.1 | Die Host-IP-Adresse, auf der der MCP-Server lauscht | 0.0.0.0 |
--env | NEIN | Zusätzliche Umgebungsvariablen zur Übergabe an den MCP-Standardserver. Kann mehrfach verwendet werden. | FOO BAR |
--cwd | NEIN | Das Arbeitsverzeichnis, das an den MCP-stdio-Serverprozess übergeben werden soll. | /tmp |
--pass-environment | NEIN | Übergeben Sie alle Umgebungsvariablen beim Starten des Servers | --no-pass-environment |
--allow-origin | NEIN | Erlaubte Ursprünge für den SSE-Server. Kann mehrfach verwendet werden. Standardmäßig ist kein CORS zulässig. | --allow-origin "*" |
--stateless | NEIN | Aktivieren Sie den zustandslosen Modus für streambare HTTP-Transporte. Der Standardwert ist „False“. | --no-stateless |
--named-server NAME COMMAND_STRING | NEIN | Definiert einen benannten stdio-Server. | --named-server fetch 'uvx mcp-server-fetch' |
--named-server-config FILE_PATH | NEIN | Pfad zu einer JSON-Datei, die benannte stdio-Server definiert. | --named-server-config /Pfad/zu/Servern.json |
--sse-port (veraltet) | Nein, zufällig verfügbar | Der SSE-Server-Port, auf dem gelauscht werden soll | 8080 |
--sse-host (veraltet) | Nein, standardmäßig 127.0.0.1 | 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
NAME
wird im URL-Pfad/servers/NAME/
verwendet.COMMAND_STRING
ist der Befehl zum Starten des Servers (z. B. „uvx mcp-server-fetch“).- Kann mehrfach verwendet werden.
- Dieses Argument wird ignoriert, wenn
--named-server-config
verwendet wird.
FILE_PATH
– Falls angegeben, ist dies die exklusive Quelle für benannte Server und--named-server
CLI-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 --named-server-config
:
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
.timeout
undtransportType
: Diese Felder sind in Standard-MCP-Clientkonfigurationen vorhanden, werden aber derzeit vonmcp-proxy
beim 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:
[!NOTE] Wenn Sie den Server bereits installiert haben, können Sie ihn mit dem Befehl
uv tool upgrade --reinstall
aktualisieren.
[!NOTE] Wenn Sie den Server löschen möchten, verwenden Sie den Befehl
uv 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 ProtokollenLö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“:
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:
[!NOTE] 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.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Ermöglicht die Interaktion mit Remote-MCP-Servern unter Verwendung von SSE-Transport anstelle von STDIO für erweiterte Kommunikationsfunktionen.
- Um
- stdio zu SSE/StreamableHTTP
- SSE zu stdio
- Benannte Server
- Installation
- Erweitern des Container-Images
- Docker Compose-Setup
- Befehlszeilenargumente
- Testen
Related Resources
Related MCP Servers
- -securityFlicense-qualityMCP server enabling LLMs to perform browser tasks via SSE transport, allowing clients like Cursor.ai and Claude to open websites and interact with web content through natural language commands.Last updated -
- -securityFlicense-qualityA remote MCP server implementation for Cloudflare that uses server-sent events (SSE) to enable Model Control Protocol communication.Last updated -TypeScript
- AsecurityAlicenseAqualityThe most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.Last updated -2282GoMIT License
- -securityAlicense-qualityA reference implementation for creating an MCP server supporting Streamable HTTP & SSE Transports with OAuth authorization, allowing developers to build OAuth-authorized MCP servers with minimal configuration.Last updated -5TypeScriptMIT License