omniroute-mcp-bridge
omniroute-mcp-bridge
Eine stdio-MCP-Brücke, die DSH als Kindprozess startet (über das Plugin dsh-mcp-client, transport: stdio). Sie leitet tools/list / tools/call an den omniroute-Streamable-HTTP-MCP-Server unter https://llm.claassen.family/api/mcp/stream weiter und legt dem Modell nur die in der Zulassungsliste enthaltenen Tools offen.
Warum
Die streamable-http-Session des Upstreams stirbt bei Inaktivität (`"Unknown Mcp-Session-Id" 404). Die Brücke erkennt genau diesen Fehler, entfernt den veralteten Client, führt den MCP-Initialize-Handshake erneut aus (neue Session-ID) und versucht es erneut — das eine abgestorbene Upstream-Session keinen Tool-Aufruf mehr unterbricht. Ist das separat noch zu fixen.
Das Plugin
dsh-mcp-clienthat keine Konfiguration zur Tool-Filterung. Diese Brücke filterttools/listserverseitig, sodass nuromniroute_web_searchoffengelegt wird statt ~70 Tools (spart Modellkontext;serverName: omniroutebleibt stabil, sodass der öffentliche Namemcp__omniroute__omniroute_web_searcherhalten bleibt).
Der Auth-Header des Upstreams wird über die env des Kindprozesses übergeben, nicht über argv — das Geheimnis erscheint nie in der Prozessliste. Es liegt ausschließlich in der
cordis.patch.ymldes Web-Profils (Dateimodus 0600).
Related MCP server: mcp-http-bridge
Dateien
Datei | Zweck |
| stdio-MCP-Server-Einstiegspunkt (von DSH gestartet) |
| injizierbarer Upstream-Accessor mit Re-Init-Logik für abgestorbene Sessions |
| eigenständiger Live-Test: vollständiger MCP-Handshake + echter Suchaufruf |
| deterministischer Fake-Upstream-Test der Re-Init-Schleife |
| gibt die rohen Upstream-Toolnamen aus |
| misst die Leerlauf-TTL der Upstream-Session |
SDK-Auflösung
package.json fixiert @modelcontextprotocol/sdk auf die exakte Version, mit der die Brücke entwickelt wurde. Es gibt zwei Wege, das SDK zu bekommen:
Standalone:
npm installin diesem Verzeichnis.Innerhalb des DSH-Hosts (dieses Deployment):
node_modulesist ein Symlink auf/usr/lib/node_modules/@deepseek-ai/dsh/node_modules, sodass die Brücke immer denselben SDK-Build verwendet, den das mcp-client-Plugin von DSH nutzt. Der Symlink wird von Git ignoriert — erstelle ihn nach dem Klonen in dieser Umgebung neu:ln -sfn /usr/lib/node_modules/@deepseek-ai/dsh/node_modules node_modules
Konfiguration (Umgebungsvariablen, gesetzt in ~/.dsh/profiles/web/cordis.patch.yml)
Variable | Bedeutung |
| streamable-http-URL (erforderlich) |
| JSON-Objekt der Anfrage-Header |
| kommagetrennte Toolnamen (leer = alle) |
|
|
Tests
Zugangsdaten sind nicht committet. Exportiere sie zuerst (Werte aus deiner Patch-Datei):
export MCP_BRIDGE_UPSTREAM_URL='https://llm.claassen.family/api/mcp/stream'
export MCP_BRIDGE_UPSTREAM_HEADERS='{"Authorization":"Bearer …","X-Forwarded-For":"127.0.0.1"}'Dann:
node test-reinit.mjs # deterministic: dead session -> re-init -> success (no network needed)
node test-bridge.mjs # live: handshake + filtered list + real search
node probe.mjs # dump the upstream's raw tool names
node probe-ttl2.mjs # measure upstream session idle TTLZulassungsliste ändern
Ändere MCP_BRIDGE_ALLOWED_TOOLS in der Patch-Datei (kommagetrennte Roh-Toolnamen aus node probe.mjs). Das HMR des include-plugin wendet den Patch bei Dateiänderung erneut an; das mcp-client-Plugin startet den Kindprozess der Brücke neu.
This server cannot be deployed
Maintenance
Related MCP Connectors
Toolstile is a managed MCP gateway that connects remote MCP servers behind one endpoint, with per-agent permissions, shared accounts and activity logs. Connect at https://mcp.toolstile.com/mcp over Streamable HTTP with OAuth; sign in at https://toolstile.com, select a workspace and connect your upstream servers. Available tools, resources and prompts depend on that workspace and the agent's granted access.
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
MCP server (stdio): check if URLs are alive (status, redirects, latency) via the AgentForge API
Streamable HTTP MCP gateway for NV oOS fleets — one API key, namespaced tools, quotas and policy.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProxies remote HTTP/HTTPS MCP servers over stdio, allowing stdio-based MCP clients to connect to remote servers via Streamable HTTP or SSE transports.MIT
- AlicenseNot gradedqualityDmaintenanceThis server bridges a stdio MCP server to HTTP, allowing MCP clients that communicate over HTTP to use the server's tools. It includes a per-tool allow/deny filter for security.MIT
- FlicenseNot gradedqualityCmaintenanceLets you run a lightweight stdio MCP server in front of an upstream MCP server, exposing only a configured subset of its tools with compact schemas while keeping the full catalog reachable via discover, describe, and call meta-tools.-
- FlicenseNot gradedqualityCmaintenanceEnables local MCP clients to access tools from a remote FastMCP server over stdio, handling OAuth authentication and Streamable HTTP communication.-