Skip to main content
Glama
jorisc90

omniroute-mcp-bridge

by jorisc90

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

ファイル

ファイル

目的

bridge.mjs

stdio MCP サーバーのエントリポイント(DSH から起動される)

upstream.mjs

注入可能なアップストリームアクセサー。死んだセッションの再初期化ロジックを備える

test-bridge.mjs

スタンドアローンのライブテスト: 完全な MCP ハンドシェイク + 実際の検索呼び出し

test-reinit.mjs

再初期化ループに対する決定的なフェイクアップストリームテスト

probe.mjs

アップストリームの生のツール名をダンプする

probe-ttl2.mjs

アップストリームセッションのアイドル 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 で設定)

環境変数

意味

MCP_BRIDGE_UPSTREAM_URL

streamable-http URL(必須)

MCP_BRIDGE_UPSTREAM_HEADERS

リクエストヘッダーの JSON オブジェクト

MCP_BRIDGE_ALLOWED_TOOLS

カンマ区切りの生のツール名(省略時 = すべて)

MCP_BRIDGE_LOG

1 = 子プロセスの stderr への詳細ログ出力

テスト

認証情報は コミットされていません。先にエクスポートしてください(パッチファイルの値を使用):

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 プラグインがブリッジの子プロセスを再生成します。

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