Skip to main content
Glama

dsh-cordis-mcp

DeepSeek Harness의 동적 Cordis 도구 모음MCP(Streamable HTTP)로 Claude Code에 노출합니다. Claude Code는 DSH의 동적 플러그인을 실시간으로 로드, 정의, 실행, 업데이트, 중지, 삭제할 수 있습니다 — DSH 세션에서 cordis_define / cordis_run / cordis_stop / cordis_undefine / cordis_inspect_*를 사용하는 것과 완전히 동일한 기능, 동일한 런타임 에이전트입니다.

┌─────────────┐   MCP (Streamable HTTP, loopback)   ┌───────────────────────────┐
│ Claude Code │ ────── http://127.0.0.1:8090/mcp ──▶ │ DSH host (本插件)           │
│  (claude)   │ ────── JSON-RPC 2.0 ───────────────▶ │  dynamicCordisRunner      │
└─────────────┘                                       │  cordisInspect            │
                                                      │  agents (会话解析)         │
                                                      └───────────────────────────┘

플러그인은 기존 웹 포트에 마운트되며, 새 포트를 열지 않고 서비스를 게시하지 않습니다. MCP 엔드포인트는 Bearer 인증을 강제하며, 토큰은 DSH 설정 → dsh-cordis-mcp 페이지에서 구성합니다(최초 자동 생성, 사용자 지정/재생성 가능).

기능 (10개 도구)

MCP 도구

대응 DSH 도구

기능

dsh_status

브리지 상태: 세션 해석, 활성 세션 목록, 플러그인 수

dsh_sessions

관리 가능한 활성 DSH 세션 나열(플러그인은 세션별 귀속)

dsh_plugins_list

cordis_inspect_self(무인자)

대상 세션의 모든 동적 플러그인과 상태 나열

dsh_plugin_inspect

cordis_inspect_self(인자 있음)

플러그인/패키지 상세 정보; packageId가 있으면 소스 코드 반환

dsh_inspect_providers

cordis_inspect_list

Inspect provider 디렉터리(host + client)

dsh_inspect_query

cordis_inspect_query

읽기 전용 inspect 쿼리 한 번 실행(서비스/이벤트/내장/슬롯/주제/도구 디렉터리)

dsh_plugin_define

cordis_define

불변 Package 정의(새 플러그인 생성 또는 버전 추가)

dsh_plugin_run

cordis_run

Package 활성화(run / update), awaiting-approval 반환 가능

dsh_plugin_stop

cordis_stop

실행 중지, 미결 승인 취소, 정의와 버전 유지

dsh_plugin_undefine

cordis_undefine

플러그인 영구 삭제(모든 Package, 권한, 버전 포인터 포함)

Client half를 포함하는 패키지의 첫 실행은 여전히 DSH의 승인 흐름을 거칩니다. dsh_plugin_runawaiting-approval을 반환하고, DSH Web GUI의 Run 카드에서 허용을 클릭하면 비동기로 완료됩니다 — DSH 세션 내부와 동일합니다.

Related MCP server: cc-plugin-mcp

원클릭 설치

curl -fsSL https://raw.githubusercontent.com/GeekRicardo/dsh-cordis-mcp/main/install.sh | bash

스크립트가 수행하는 작업(--dry-run으로 미리 볼 수 있음):

  1. ~/.dsh/profiles/web/package.json에 의존성 "dsh-cordis-mcp": "github:GeekRicardo/dsh-cordis-mcp"를 기록합니다;

  2. dsh-cordis-mcpdsh.profile.bundles에 추가합니다;

  3. cd ~/.dsh/profiles/web && pnpm install;

  4. 번들이 등록되었는지 확인하고 재시작을 안내합니다.

DSH를 재시작하고 페이지를 강력 새로고침하면 MCP 엔드포인트가 웹 서비스와 함께 준비됩니다:

pm2 restart dsh-web   # 若用 pm2 托管;否则用你的启动方式重启

Claude Code 연동

# 端口换成你 DSH web 的实际端口(启动日志会打印完整地址)
claude mcp add dsh --transport http http://127.0.0.1:8090/mcp
claude mcp list          # 确认 connected

인증 (강제, 직접 연결 불가)

MCP 엔드포인트는 Bearer 인증을 강제하며, 토큰이 없으면 모두 401(토큰 미구성이면 503)을 반환합니다. 토큰은 DSH 설정 → dsh-cordis-mcp 페이지에서 구성합니다: 최초 사용 시 자동 생성되어 영속화되며, 페이지에서 조회/복사/사용자 지정/재생성이 가능합니다. .mcp.json의 요청 헤더에 토큰을 입력하세요:

{
  "mcpServers": {
    "dsh": {
      "type": "http",
      "url": "http://127.0.0.1:8090/mcp",
      "headers": { "Authorization": "Bearer <设置页里的 token>" }
    }
  }
}

토큰 해석 우선순위: 설정 페이지 구성 > DSH_MCP_TOKEN 환경 변수 > 자동 생성입니다. 토큰을 변경하면 즉시 적용되며(재시작 불필요), 재생성 후 이전 토큰은 즉시 무효화되므로 Claude Code 구성을 함께 업데이트해야 합니다.

세션 의미 (중요)

동적 플러그인은 세션별로 귀속되며 프로세스 메모리 상태입니다(DSH 재시작 시 지워짐). 브리지의 세션 해석 순서:

  1. 호출 매개변수의 sessionId(dsh_sessions로 조회 가능);

  2. 환경 변수 DSH_MCP_DEFAULT_SESSION 지정;

  3. 현재 유일한 활성 세션;

  4. 활성 세션이 여러 개인데 지정되지 않은 경우 → 오류와 함께 선택 가능한 목록을 표시하고 sessionId를 전달하도록 요구합니다.

기타 환경 변수

변수

기본값

설명

DSH_MCP_PATH

/mcp

MCP 엔드포인트 경로(webServer에 마운트됨)

DSH_MCP_TOKEN

없음

인증 토큰의 폴백 소스(설정 페이지에 미구성 시 사용)

DSH_MCP_DEFAULT_SESSION

없음

sessionId를 명시적으로 전달하지 않을 때의 대상 세션

보안 경계

  • Bearer 인증 강제: 토큰이 없으면 모두 401 / 503, 엔드포인트는 절대 직접 연결 불가;

  • loopback Host(127.* / localhost / ::1)만 허용, 모든 외부 접근 거부;

  • sec-fetch-site: cross-site 브라우저 요청 거부, 또한 CORS 헤더를 절대 반환하지 않음 — 웹페이지는 응답을 읽을 수 없음;

  • 설정 페이지 경로 /dsh-cordis-mcp/settings는 동일 출처 loopback만 허용(MCP 토큰 없이 접근하지만, 변경하는 것은 토큰 구성 자체뿐);

  • 이 엔드포인트는 플러그인을 정의/실행/삭제할 수 있으며, 셸 권한과 동일하므로 포트를 비로컬에 노출하지 마세요.

작동 원리

파일

역할

lib/mcp-protocol.js

순수 MCP JSON-RPC 레이어(initialize / ping / tools/list / tools/call), DSH 의존성 없음

lib/tools.js

10개 도구의 입력 검증 + 세션 해석, dynamicCordisRunner / cordisInspect 캡슐화

lib/token.js

순수 토큰 해석/생성(설정 > env > 자동 생성)

lib/http.js

MCP 라우트의 HTTP 레이어: 강제 인증, body 읽기, loopback/크로스 사이트 보호

lib/index.js

Cordis 플러그인: 5개 호스트 서비스 주입, settings 네임스페이스, /mcp + /dsh-cordis-mcp/settings 두 라우트

lib/client.js

설정 페이지 UI: 토큰 조회/복사/사용자 지정/재생성 + 엔드포인트 주소

제거

# 1. 从 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 移除 "dsh-cordis-mcp"
# 2. 移除 dependencies 里的 "dsh-cordis-mcp"
# 3. cd ~/.dsh/profiles/web && pnpm install
# 4. 重启 DSH;claude mcp remove dsh

사전 요구 사항

  • DeepSeek Harness가 web profile을 초기화했고(~/.dsh/profiles/web 존재), 현재 세션이 Cordis 도구 모음이 포함된 preset에서 실행 중(호스트 측 dynamicCordisRunner 서비스 존재, 기본 제공);

  • 로컬에 Claude Code CLI가 설치되어 있고 로그인되어 있어야 함;

  • Node.js ≥ 20, pnpm 사용 가능.

문제 해결

현상

원인과 처리

claude mcp list에 disconnected 표시

DSH 미재시작 / 포트 오류. 재시작 후 DSH 시작 로그에서 [dsh-cordis-mcp] MCP endpoint ready 줄을 찾아 출력된 주소 사용

dsh_plugin_runawaiting-approval 반환

Client half를 포함하는 패키지는 DSH Web GUI의 Run 카드에서 허용해야 함; 승인 후 dsh_plugin_run 다시 실행

multiple live DSH sessions 오류

활성 세션이 여러 개이면 dsh_sessions로 id를 조회한 후 호출에서 sessionId 전달

no live DSH session 오류

DSH Web GUI에 열린 세션이 없음; 연 후 다시 시도

401 / missing or invalid bearer token

.mcp.json의 토큰이 만료되었거나 잘못됨 — 설정 페이지에서 현재 토큰을 복사해 업데이트

503 / auth-not-configured

호스트가 토큰을 초기화하지 않음(비정상 상태) — 설정 페이지에서 아무 토큰이나 저장하거나 DSH 재시작

재시작 후 플러그인 사라짐

동적 플러그인은 프로세스 메모리 상태이므로 예상된 동작; 이 브리지는 실행 중인 DSH 프로세스만 관리

License

MIT

A
license - permissive license
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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to spawn and control Codex CLI and Claude Code sessions on the host machine, with session management and filesystem access.
    4
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Exposes self-owned AI agent plugins as tools to Claude Code via a stdio MCP server, allowing Claude to call system info, calculator, or scribe transcriber directly.
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.

  • Augments MCP Server - A comprehensive framework documentation provider for Claude Code

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

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/GeekRicardo/dsh-cordis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server