Skip to main content
Glama
jorisc90

omniroute-mcp-bridge

by jorisc90

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-client hat keine Konfiguration zur Tool-Filterung. Diese Brücke filtert tools/list serverseitig, sodass nur omniroute_web_search offengelegt wird statt ~70 Tools (spart Modellkontext; serverName: omniroute bleibt stabil, sodass der öffentliche Name mcp__omniroute__omniroute_web_search erhalten 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.yml des Web-Profils (Dateimodus 0600).

Related MCP server: mcp-streaming-http-proxy

Dateien

Datei

Zweck

bridge.mjs

stdio-MCP-Server-Einstiegspunkt (von DSH gestartet)

upstream.mjs

injizierbarer Upstream-Accessor mit Re-Init-Logik für abgestorbene Sessions

test-bridge.mjs

eigenständiger Live-Test: vollständiger MCP-Handshake + echter Suchaufruf

test-reinit.mjs

deterministischer Fake-Upstream-Test der Re-Init-Schleife

probe.mjs

gibt die rohen Upstream-Toolnamen aus

probe-ttl2.mjs

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 install in diesem Verzeichnis.

  • Innerhalb des DSH-Hosts (dieses Deployment): node_modules ist 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

MCP_BRIDGE_UPSTREAM_URL

streamable-http-URL (erforderlich)

MCP_BRIDGE_UPSTREAM_HEADERS

JSON-Objekt der Anfrage-Header

MCP_BRIDGE_ALLOWED_TOOLS

kommagetrennte Toolnamen (leer = alle)

MCP_BRIDGE_LOG

1 = ausführliches Logging auf dem stderr des Kindprozesses

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 TTL

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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

  • Remote MCP for Gemini upgrade evals, prompt regressions, output diffs, and eval receipts.

  • Remote MCP for GenAI span mapping, provider normalization, dashboard schemas, and receipts.

View all MCP Connectors

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/jorisc90/mcp-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server