Skip to main content
Glama
xxxyz

dsh-mcp-manager

by xxxyz

dsh-mcp-manager

English · 中文

dsh-mcp-manager MCP Manager 설정 페이지

DeepSeek Harness(DSH)를 위한 내구성 있는 MCP 서버 관리자 — 동적 세션 플러그인이 아닌 구성 로더 플러그인이므로 DSH 재시작 및 업그레이드에도 유지됩니다.

DSH 플러그인 개발 표준에 따라 제작되었습니다(공식 문서 참조: 第一个插件, 开发一个工具):

  • 객체 형태의 Cordis 플러그인 (export default { name, inject, apply })

  • inject에 선언된 필수 서비스 — 프레임워크는 apply 실행 전에 이들이 준비되었음을 보장하며, 하나라도 사라지면 플러그인을 다시 로드합니다(이것이 플러그인이 DSH 업그레이드 전반에 걸쳐 살아 있도록 유지하는 방식입니다).

  • 에이전트가 사용할 수 있는 기능은 ctx.tools.register(defineTool(...))를 통해 등록된 모델 도구로 노출됩니다: mcp_manager_list, mcp_manager_set_enabled, mcp_manager_restart, mcp_manager_add

  • UI 기능은 webServer 정확한 라우트(POST /dsh-mcp-manager/api)를 통해 제공되며, 클라이언트 측에서 사용합니다.

기능:

  • 설정 → MCP 관리 페이지 (클라이언트 측에서 추가됨)

  • 호스트 측은 실제 패치 파일에서 @deepseek-ai/dsh-mcp-client 행을 관리합니다:

    • 프로젝트 수준 → ~/.dsh/profiles/<profile>/cordis.patch.yml

    • 전역 → ~/.dsh/cordis.patch.yml

    • 추가 / 편집 / 활성화 / 비활성화 / 재시작 / 삭제, 실시간 도구 개수 상태, JSON 내보내기/가져오기, 파일별 쓰기 잠금

작동 방식

구성 요소

파일

역할

호스트 플러그인 소스

src/index.ts

TypeScript 소스 (문서화된 플러그인 형태); npm run build로 빌드 (tsc)

호스트 플러그인 (컴파일됨)

lib/index.js (main)

Cordis 객체-형태 플러그인: 패치 파일 CRUD + 4개 모델 도구 + webServer 정확한 라우트 /dsh-mcp-manager/api (JSON {op, args} → {ok, ...})

클라이언트 번들

lib/client.js (exports["./client"] + dsh.client)

브라우저 모듈: 설정 페이지를 등록하고 fetch('/dsh-mcp-manager/api')를 통해 호스트를 호출합니다.

로더 행

프로필의 cordis.patch.yml에 추가됨

호스트 엔트리를 구성합니다; client-modules 서비스는 활성화된 엔트리를 스캔하여 클라이언트 번들을 제공합니다.

로더 엔트리는 두 부분의 단일 구성 지점입니다 — 배포된 DSH 패키지에 변경이 없습니다. 패키지 자체는 플랫폼 중립적입니다(순수 JS; 경로 구분자는 런타임에 감지됨). 따라서 Windows, macOS, Linux에서 작동합니다. 빌드(npm run build)에는 devDependencies(typescript, @deepseek-ai/cordis, @deepseek-ai/dsh-tools, @types/node)가 필요합니다; 배포/설치된 패키지에는 필요하지 않습니다.

Related MCP server: mcp-serverman

설치 (모든 플랫폼)

가장 빠른 방법 — npm을 통한 단일 명령어 (Node.js >= 18 필요):

# Option A — one-shot with npx, nothing to install
npx -y @xxxyz/dsh-mcp-manager

# Option B — global npm install, then run the command any time
npm i -g @xxxyz/dsh-mcp-manager
dsh-mcp-manager                  # install the plugin
dsh-mcp-manager-uninstall        # uninstall the plugin
npm i -g @xxxyz/dsh-mcp-manager@latest   # upgrade

두 옵션 모두 모든 플래그가 전달됩니다: npx -y @xxxyz/dsh-mcp-manager --dsh-home /path/.dsh --profile web --repair --port 3080.

npm 패키지 이름: @xxxyz/dsh-mcp-manager (원래 이름 dsh-mcp-manager는 npm에서 관련 없는 패키지가 사용 중입니다). 배포된 플러그인 이름은 여전히 dsh-mcp-manager입니다 — npm/npx는 전달 채널일 뿐이며, 설치 프로그램은 파일을 아래에 명시된 동일한 고정 위치에 복사합니다.

npm을 사용하지 않는 대안 — GitHub에서 직접:

npx -y github:xxxyz/DeepSeekHarness-MCP-Manager

대안 — 소스 체크아웃에서 설치 프로그램 스크립트 실행 (모든 설치 프로그램은 하나의 크로스 플랫폼 로직 파일 install.mjs을 공유합니다). 설치 단계:

  1. 패키지를 <dshHome>/local-packages/dsh-mcp-manager에 복사합니다 (node_modules 외부에 보관되는 실제 소스로, DSH 업그레이드가 절대 건드리지 않습니다).

  2. <dshHome>/profiles/node_modules/dsh-mcp-manager에 복사합니다 (의도적으로 일반 복사본 — 심볼릭 링크를 사용하면 Node ESM이 @deepseek-ai/dsh-tools를 찾을 수 없는 플러그인의 실제 경로를 확인하게 됩니다).

  3. profiles/<profile>/cordis.patch.yml에 로더 행을 추가합니다 (멱등성, 패치를 유효한 최상위 배열로 유지).

Windows (PowerShell):

.\dsh-mcp-manager\install.ps1                     # default: ~/.dsh, web profile
# or: .\install.ps1 -DshHome D:\path\.dsh -Profile web

macOS / Linux:

./dsh-mcp-manager/install.sh                      # default: ~/.dsh, web profile
# or: ./install.sh --dsh-home /path/.dsh --profile web

모든 플랫폼 (직접):

node dsh-mcp-manager/install.mjs [--dsh-home <path>] [--profile <name>] [--port <n>] [--repair] [--skip-patch]

그런 다음 DSH를 재시작하고 설정 → MCP 관리를 엽니다. 재시작 후 네 개의 mcp_manager_* 도구를 모델이 호출할 수 있게 됩니다.

제거 (모든 방법):

dsh-mcp-manager-uninstall          # if installed via npm -g
# or: .\dsh-mcp-manager\uninstall.ps1 | ./uninstall.sh | node uninstall.mjs [--dsh-home <path>] [--profile <name>]

그런 다음 DSH를 재시작합니다. 제거는 배포된 복사본, local-packages의 실제 소스, 로더 행을 제거합니다.

DSH 업그레이드 후: --repair

DSH 업그레이드(또는 깨진 HMR 상태)로 인해 파일은 그대로 있지만 플러그인의 호스트 절반이 로드되지 않을 수 있습니다. 한 명령어로 해결됩니다 — 레코드 소스에서 패키지를 다시 복사하고, 로더 행의 config.version을 증가시켜 HMR 재적용을 강제한 다음, API가 응답할 때까지 폴링합니다:

node dsh-mcp-manager/install.mjs --repair            # default ~/.dsh, web, port 3080
node dsh-mcp-manager/install.mjs --repair --port 3080
# PowerShell: .\install.ps1 -Repair -Port 3080     bash: ./install.sh --repair --port 3080

--repair는 POST /dsh-mcp-manager/api가 {ok:true}로 응답할 때만 성공을 반환합니다. 30초 후에도 API가 응답하지 않으면 DSH를 한 번 재시작합니다(로더는 항상 부팅 시 새로 가져옵니다).

API 참조

모든 작업은 동일 출처에서 POST /dsh-mcp-manager/api에 {"op": "<op>", "args": {...}}로 요청합니다.

op

args

결과

mcpm-list

{}

{ok, rows[], paths, errors[]}

mcpm-add

`{serverName, transport, url

command, args?, headers?, env?, level, enabled?}`

{ok, row}

mcpm-edit

{id, level, ...fields}

{ok}

mcpm-set-enabled

{id, level, enabled}

{ok}

mcpm-restart

{id, level}

{ok}

mcpm-remove

{id, level}

{ok}

mcpm-export

{}

{ok, json, savedTo}

mcpm-import

{json}

{ok, added[], skipped[]}

모델 도구

ctx.tools.register(defineTool(...)) (표준 @deepseek-ai/dsh-tools)로 호스트에 등록됨:

도구

설명

mcp_manager_list

구성된 모든 MCP 서버 나열 (수준, 활성화 상태, 라이브 로더 상태, 도구 개수)

mcp_manager_set_enabled

하나의 서버 활성화/비활성화 (id, level, enabled)

mcp_manager_restart

하나의 서버 재시작 (id, level)

mcp_manager_add

서버 추가 (serverName, transport, url

command, …, level)

참고 사항 / 제한 사항

  • HTTP 라우트는 로컬 웹 서버에서 인증되지 않음 — 로컬 단일 사용자 머신에는 적합하지만 DSH 웹 포트를 공개적으로 노출하지 마십시오.

  • 관리되는 행은 # dsh-mcp-manager:server:<id> 마커를 포함합니다; 로더 행은 id: mcp-manager, name: dsh-mcp-manager를 추가하는 insert 블록입니다 — DSH의 패치 언어는 일반 - id: 행을 기존 항목의 재정의로 처리하고(없으면 자동으로 건너뜀)하므로, 플러그인을 추가하려면 insert 형식이 필요합니다.

  • 실행 중인 웹 페이지가 설치보다 오래된 경우, 클라이언트 모듈이 작동하려면 페이지 새로고침이나 DSH 재시작이 필요합니다(부트 그래프는 페이지 로드 시 구축됩니다).

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    A robust MCP server with tools to search, install, configure, repair, and uninstall MCP servers, automating setup and maintenance across multiple AI and developer tools.
    4
    17
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP management panel for DeepSeek Harness, enabling connection status monitoring, one-click upgrades, and server addition via a settings UI.
    1
    MIT