omniroute-mcp-bridge
omniroute-mcp-bridge
DSH が子プロセスとして起動する stdio MCP ブリッジです(dsh-mcp-client プラグイン、transport: stdio 経由)。tools/list / tools/call を、https://llm.claassen.family/api/mcp/stream にある omniroute streamable-http MCP サーバーにプロキシし、許可リストに載っているツールだけをモデルに公開します。
抑制
アップストリームの streamable-http セッションは、アイドル状態になると終了します("Unknown Mcp-Session-Id" 404)。このブリッジはそのエラーを正確に検出し、失効したクライアントを破棄して、MCP の初期化ハンドシェイクを再実行(新しいセッション ID を取得)して再試行します。これにより、死んだセッションによってツール呼び出しが失敗することがなくなります。
dsh-mcp-clientプラグインにはツールのフィルタリング設定がありません。このブリッジはtools/listをサーバー側でフィルタリングするため、約70個のツールの代わりにomniroute_web_searchのみが公開されます(モデルコンテキストの節約になり、安定したserverName: omnirouteが維持されるため、公開名はmcp__omniroute__omniroute_web_searchのままです)。アップストリームの認証ヘッダーは argv ではなく、子プロセスの env 経由で渡されます。シークレットがプロセス一覧に現れることはありません。シークレットは、Web プロファイルのパーミッション 0600 の
cordis.patch.ymlにのみ存在します。
Related MCP server: mcp-streaming-http-proxy
ファイル
ファイル | 目的 |
| stdio MCP サーバーのエントリポイント(DSH から起動される) |
| 注入可能なアップストリームアクセサー。死んだセッションの再初期化ロジックを備える |
| スタンドアローンのライブテスト: 完全な MCP ハンドシェイク + 実際の検索呼び出し |
| 再初期化ループに対する決定的なフェイクアップストリームテスト |
| アップストリームの生のツール名をダンプする |
| アップストリームセッションのアイドル TTL を測定する |
SDK の解決
package.json は、このブリッジの開発時に使用した正確なバージョンに @modelcontextprotocol/sdk を固定しています。取得方法は2つあります。
スタンドアロン: このディレクトリで
npm installを実行します。DSH ホスト内(このデプロイ環境):
node_modulesは/usr/lib/node_modules/@deepseek-ai/dsh/node_modulesへのシンボリックリンクです。そのため、ブリッジは常に DSH 自身の mcp-client プラグインが使うのと同じ SDK ビルドを使用します。このシンボリックリンクは gitignore されているため、その環境でクローンした後は再作成してください:ln -sfn /usr/lib/node_modules/@deepseek-ai/dsh/node_modules node_modules
設定(環境変数。~/.dsh/profiles/web/cordis.patch.yml で設定)
環境変数 | 意味 |
| streamable-http URL(必須) |
| リクエストヘッダーの JSON オブジェクト |
| カンマ区切りの生のツール名(省略時 = すべて) |
|
|
テスト
認証情報は コミットされていません。先にエクスポートしてください(パッチファイルの値を使用):
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"}'次に:
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許可リストの変更
パッチファイル内の MCP_BRIDGE_ALLOWED_TOOLS を編集してください(node probe.mjs で取得した生の名前をカンマ区切りで指定)。include-plugin の HMR がファイル変更時にパッチを再適用し、mcp-client プラグインがブリッジの子プロセスを再生成します。
This server cannot be installed
Maintenance
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
- 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 gradedqualityCmaintenanceProxies STDIO-based MCP clients to streaming HTTP MCP servers, enabling local clients to connect to remote servers.153MIT
- AlicenseNot gradedqualityCmaintenanceThis 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
- AlicenseNot gradedqualityBmaintenanceA deterministic MCP tool-list relay that lets operators filter tools by include/exclude rules and exposes a filtered stdio MCP server to local clients.18MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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