omniroute-mcp-bridge
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-clientno tiene configuración de filtrado de herramientas. Este puente filtratools/listen el lado del servidor, de modo que soloomniroute_web_searchqueda expuesto en lugar de ~70 herramientas (ahorra contexto al modelo; se mantiene elserverName: omnirouteestable, de modo que el nombre público sigue siendomcp__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.ymlcon permisos 0600 del perfil web.
Related MCP server: mcp-streaming-http-proxy
Archivos
archivo | propósito |
| punto de entrada del servidor MCP stdio (lanzado por DSH) |
| accessor de upstream inyectable con lógica de reinicio de sesión caída |
| prueba autónoma en vivo: handshake MCP completo + llamada de búsqueda real |
| prueba determinista con upstream simulado del bucle de reinicio |
| vuelca los nombres en bruto de las herramientas del upstream |
| 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 installen este directorio.Dentro del host de DSH (este despliegue):
node_moduleses 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_modulesConfiguración (variables de entorno, definidas en ~/.dsh/profiles/web/cordis.patch.yml)
var | significado |
| URL streamable-http (obligatoria) |
| objeto JSON de cabeceras de petición |
| nombres en bruto separados por comas (omitir = todos) |
|
|
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 TTLCambiar 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.
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