omniroute-mcp-bridge
omniroute-mcp-bridge
DSH가 dsh-mcp-client 플러그인(transport: stdio)을 통해 자식 프로세스로 실행하는 stdio MCP 브리지입니다. 이 브리지는 tools/list / tools/call을 https://llm.claassen.family/api/mcp/stream에 있는 omniroute streamable-http MCP 서버로 프록시하며, 오직 허용 목록에 있는 도구만 모델에 노출합니다.
이유
업스트림 streamable-http 세션은 유휴 상태가 되면 죽습니다("Unknown Mcp-Session-Id" 404). 브리지는 정확히 그 실패를 감지하여 stale 상태의 클라이언트를 해체하고, MCP initialize 핸드셰이크(새 세션 id)를 다시 실행한 다음 재시도합니다 — 따라서 죽은 업스트림 세션이 더 이상 도구 호출을 깨뜨리지 않습니다.
dsh-mcp-client플러그인에는 도구 필터링 설정이 없습니다. 이 브리지는tools/list를 서버 측에서 필터링하므로 ~70여 개의 도구 대신omniroute_web_search만 노출합니다. (모델 컨텍스트를 절약하며, 안정적인serverName: omniroute을 유지하기 때문에 공개 이름도mcp__omniroute__omniroute_web_search로 유지됩니다.)업스트림 인증 헤더는 argv가 아니라 자식 프로세스 env로 전달됩니다. — 비밀 값은 프로세스 목록에 절대 나타나지 않습니다. 비밀 값은 웹 프로필의 0600 권한
cordis.patch.yml에만 존재합니다.
Related MCP server: mcp-http-bridge
파일
파일 | 용도 |
| stdio MCP 서버 진입점(DSH가 스폰) |
| 주입 가능한 업스트림 접근자. 죽은 세션 재초기화 로직 포함 |
| 단독 실행 라이브 테스트: 전체 MCP 핸드셰이크 + 실제 검색 호출 |
| 재초기화 루프에 대한 결정적(deterministic) fake-upstream 테스트 |
| 업스트림 원본 도구 이름을 덤프 |
| 업스트림 세션 유휴 TTL 측정 |
SDK 설치
package.json은 @modelcontextprotocol/sdk를 이 브리지가 개발된 정확한 버전으로 고정합니다. SDK를 얻는 방법은 두 가지입니다.
독립 실행: 이 디렉터리에서
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 deployed
Maintenance
Related MCP Connectors
Toolstile is a managed MCP gateway that connects remote MCP servers behind one endpoint, with per-agent permissions, shared accounts and activity logs. Connect at https://mcp.toolstile.com/mcp over Streamable HTTP with OAuth; sign in at https://toolstile.com, select a workspace and connect your upstream servers. Available tools, resources and prompts depend on that workspace and the agent's granted access.
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
MCP server (stdio): check if URLs are alive (status, redirects, latency) via the AgentForge API
Streamable HTTP MCP gateway for NV oOS fleets — one API key, namespaced tools, quotas and policy.
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 gradedqualityDmaintenanceThis 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
- FlicenseNot gradedqualityCmaintenanceLets you run a lightweight stdio MCP server in front of an upstream MCP server, exposing only a configured subset of its tools with compact schemas while keeping the full catalog reachable via discover, describe, and call meta-tools.-
- FlicenseNot gradedqualityCmaintenanceEnables local MCP clients to access tools from a remote FastMCP server over stdio, handling OAuth authentication and Streamable HTTP communication.-