Skip to main content
Glama
jorisc90

omniroute-mcp-bridge

by jorisc90

omniroute-mcp-bridge

DSH가 dsh-mcp-client 플러그인(transport: stdio)을 통해 자식 프로세스로 실행하는 stdio MCP 브리지입니다. 이 브리지는 tools/list / tools/callhttps://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-streaming-http-proxy

파일

파일

용도

bridge.mjs

stdio MCP 서버 진입점(DSH가 스폰)

upstream.mjs

주입 가능한 업스트림 접근자. 죽은 세션 재초기화 로직 포함

test-bridge.mjs

단독 실행 라이브 테스트: 전체 MCP 핸드셰이크 + 실제 검색 호출

test-reinit.mjs

재초기화 루프에 대한 결정적(deterministic) fake-upstream 테스트

probe.mjs

업스트림 원본 도구 이름을 덤프

probe-ttl2.mjs

업스트림 세션 유휴 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에서 설정)

변수

의미

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