Skip to main content
Glama
jorisc90

omniroute-mcp-bridge

by jorisc90

omniroute-mcp-bridge

stdio MCP-мост, который DSH запускает как дочерний процесс (через плагин dsh-mcp-client, transport: stdio). Он проксирует tools/list / tools/call к streamable-http MCP-серверу omniroute по адресу https://llm.claassen.family/api/mcp/stream и отдаёт модели только инструменты из allow-list.

Зачем

  • Сессия upstream streamable-http умирает при простое ("Unknown Mcp-Session-Id" 404). Мост обнаруживает именно этот сбой, закрывает устаревший клиент, заново выполняет MCP initialize handshake (новый session id) и повторяет запрос — поэтому мёртвая upstream-сессия больше не ломает вызов инструмента.

  • Плагин dsh-mcp-client не имеет конфигурации фильтрации инструментов. Этот мост фильтрует tools/list на стороне сервера, поэтому наружу отдаётся только omniroute_web_search вместо ~70 инструментов (экономия контекста модели; сохраняется стабильный serverName: omniroute, так что публичное имя остаётся mcp__omniroute__omniroute_web_search).

  • Заголовок авторизации upstream передаётся через env дочернего процесса, а не через argv — секрет никогда не появляется в списке процессов. Он хранится только в cordis.patch.yml с правами 0600 в веб-профиле.

Related MCP server: mcp-streaming-http-proxy

Файлы

файл

назначение

bridge.mjs

точка входа stdio MCP-сервера (запускается из DSH)

upstream.mjs

инжектируемый доступ к upstream с логикой re-init мёртвой сессии

test-bridge.mjs

автономный живой тест: полное MCP-рукопожатие + реальный поисковый вызов

test-reinit.mjs

детерминированный тест цикла re-init на фейковом upstream

probe.mjs

выводит сырые имена инструментов upstream

probe-ttl2.mjs

измеряет TTL простоя upstream-сессии

Подключение SDK

package.json закрепляет @modelcontextprotocol/sdk ровно на той версии, под которую разрабатывался мост. Получить её можно двумя способами:

  • Автономно: npm install в этой директории.

  • Внутри DSH-хоста (в данном развёртывании): node_modules — это симлинк на /usr/lib/node_modules/@deepseek-ai/dsh/node_modules, поэтому мост всегда использует ту же сборку SDK, что и собственный плагин mcp-client в DSH. Симлинк игнорируется Git — создайте его заново после клонирования в этом окружении:

    ln -sfn /usr/lib/node_modules/@deepseek-ai/dsh/node_modules node_modules

Конфигурация (env, задаётся в ~/.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 дочернего процесса

Тесты

Учётные данные не закоммичены. Сначала экспортируйте их (значения из вашего patch-файла):

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

Изменить allow-list

Отредактируйте MCP_BRIDGE_ALLOWED_TOOLS в patch-файле (первые имена через запятую из node probe.mjs). HMR include-плагина повторно применяет patch при изменении файла; плагин 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