Skip to main content
Glama
jorisc90

omniroute-mcp-bridge

by jorisc90

omniroute-mcp-bridge

Un puente MCP stdio que DSH lanza como proceso hijo (a través del complemento dsh-mcp-client, transport: stdio). Hace de proxy para tools/list / tools/call hacia el servidor MCP streamable-http de omniroute en https://llm.claassen.family/api/mcp/stream y expone solo las herramientas de la lista blanca al modelo.

Por qué

  • La sesión streamable-http del upstream muere cuando queda inactiva ("Unknown Mcp-Session-Id" 404). El puente detecta ese fallo exacto, elimina el cliente obsoleto, vuelve a ejecutar el handshake de inicialización de MCP (nueva id de sesión) y reintenta — de modo que una sesión upstream muerta ya no rompe una llamada de herramienta.

  • El complemento dsh-mcp-client no tiene configuración de filtrado de herramientas. Este puente filtra tools/list en el lado del servidor, de modo que solo omniroute_web_search queda expuesto en lugar de ~70 herramientas (ahorra contexto al modelo; se mantiene el serverName: omniroute estable, de modo que el nombre público sigue siendo mcp__omniroute__omniroute_web_search).

  • La cabecera de autenticación del upstream se pasa mediante el env del hijo, no en argv — el secreto nunca aparece en la lista de procesos. Solo vive en el cordis.patch.yml con permisos 0600 del perfil web.

Related MCP server: mcp-streaming-http-proxy

Archivos

archivo

propósito

bridge.mjs

punto de entrada del servidor MCP stdio (lanzado por DSH)

upstream.mjs

accessor de upstream inyectable con lógica de reinicio de sesión caída

test-bridge.mjs

prueba autónoma en vivo: handshake MCP completo + llamada de búsqueda real

test-reinit.mjs

prueba determinista con upstream simulado del bucle de reinicio

probe.mjs

vuelca los nombres en bruto de las herramientas del upstream

probe-ttl2.mjs

mide el TTL de inactividad de la sesión upstream

Resolución del SDK

package.json fija @modelcontextprotocol/sdk a la versión exacta con la que se desarrolló el puente. Hay dos formas de obtenerlo:

  • Independiente: npm install en este directorio.

  • Dentro del host de DSH (este despliegue): node_modules es un symlink a /usr/lib/node_modules/@deepseek-ai/dsh/node_modules, de modo que el puente siempre usa la misma compilación del SDK que usa el propio complemento mcp-client de DSH. El symlink está ignorado por git — vuelve a crearlo tras clonar en ese entorno:

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

Configuración (variables de entorno, definidas en ~/.dsh/profiles/web/cordis.patch.yml)

var

significado

MCP_BRIDGE_UPSTREAM_URL

URL streamable-http (obligatoria)

MCP_BRIDGE_UPSTREAM_HEADERS

objeto JSON de cabeceras de petición

MCP_BRIDGE_ALLOWED_TOOLS

nombres en bruto separados por comas (omitir = todos)

MCP_BRIDGE_LOG

1 = registro detallado en el stderr del proceso hijo

Pruebas

Las credenciales no están commiteadas. Expórtalas primero (valores de tu archivo de 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"}'

Después:

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

Cambiar la lista blanca

Edita MCP_BRIDGE_ALLOWED_TOOLS en el archivo de patch (nombres en bruto separados por comas de node probe.mjs). El HMR del complemento include-plugin vuelve a aplicar el patch cuando cambia el archivo; el complemento mcp-client relaunch el proceso hijo del puente.

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