Skip to main content
Glama

dsh-tools-mcp

deepseek-harness(DeepSeek AI가 오픈소스로 공개한 agent harness)의 미니멀 모드(minimal)표준 모드(standard) tools를 추출하여 MCP(Model Context Protocol) 서버로 래핑하고, --mode 매개변수로 노출할 도구 세트를 제어합니다.

도구 스키마, 설명 문구, 출력 봉투(예: read<path>/<type>/<content> 형식, str_replace_editor의 view/create/str_replace/insert 의미, [exit code: N] 표시)는 모두 원본 저장소 apps/cli/config/agent-presets/{minimal,standard}/agent.cordis.yml 및 해당 packages/*/tool-* 구현을 충실히 재현한 것입니다.

모드 및 도구 대조

모드

매개변수

도구

미니 모드

--mode minimal

지속형 shell(POSIX는 bash, win32는 pwsh, 상태가 호출 간 유지됨) + str_replace_editor

표준 모드

--mode standard

bash/pwsh(단일 실행), read, write, edit, read_image, glob, grep, job_output/job_list/job_kill, todo_write, ask_user_question, web_search, get_goal/create_goal/update_goal, plan_mode/exit_plan_mode, skill

표준 모드는 --with-web-fetch를 추가로 지원하여 web_fetch를 노출합니다(원본 standard 프리셋은 기본적으로 fetch: false).

Related MCP server: deepseek-agent-mcp

빠른 시작

cd dsh-tools-mcp
npm install
npm run build          # 输出到 dist/

# 极简模式
node dist/index.js --mode minimal --cwd D:/develop/project/dsh-tools-mcp

# 标准模式
node dist/index.js --mode standard --cwd D:/develop/project/dsh-tools-mcp

MCP 클라이언트 구성

// mcp.json / WorkBuddy 自定义连接器
{
  "mcpServers": {
    "dsh-minimal": {
      "command": "node",
      "args": ["D:/develop/project/dsh-tools-mcp/dist/index.js", "--mode", "minimal", "--cwd", "D:/develop/project/dsh-tools-mcp"]
    },
    "dsh-standard": {
      "command": "node",
      "args": ["D:/develop/project/dsh-tools-mcp/dist/index.js", "--mode", "standard", "--cwd", "D:/develop/project/dsh-tools-mcp"]
    }
  }
}

두 진입점을 동시에 등록할 수 있으며, 필요에 따라 미니/표준 도구 세트를 선택할 수 있습니다.

전체 매개변수

--mode <minimal|standard>    Agent 预设模式(默认 minimal)
--cwd <path>                 工作区根目录,文件工具基于它解析相对路径(默认 process.cwd())
--shell <auto|bash|pwsh>     shell 后端;auto = win32 用 pwsh,其余用 bash
--shell-timeout-ms <n>       持久 shell 单条命令超时(默认 300000)
--max-output-chars <n>       输出截断上限(默认 16000)
--skills-dir <path>          启用 skill 工具,扫描该目录下的 SKILL.md 子目录
--search-provider <duckduckgo|tavily|bing>   web 搜索后端(默认 duckduckgo)
--search-api-key <key>       tavily/bing 的 API key
--proxy <url>                web 工具的 HTTP(S) 代理,如 http://127.0.0.1:7897
--with-web-fetch             额外暴露 web_fetch
--allow-outside-root         允许文件工具访问 --cwd 之外的路径(默认禁止)
--tools <a,b,c>              显式指定工具/套件清单覆盖模式(见下)
--help / --version

--tools 재정의

--tools는 도구 이름 또는 스위트 이름을 허용하며, 필요에 따라 하위 집합을 노출합니다:

# 只要文件相关
node dist/index.js --mode standard --tools read,write,edit,glob,grep

# 只要极简模式的编辑器 + 后台任务
node dist/index.js --mode minimal --tools str_replace_editor,job_output,job_list,job_kill

스위트 이름: shell(지속형 shell), one-shot, fs, search, jobs, todo, web, ask-user, goal, plan, skill.

설계 설명

  • 지속형 shell: node-pty 의존성 없이 stdio 파이프로 상주 bash/powershell 하위 프로세스를 구동합니다. 명령은 무작위 UUID 마커로 감싸 완료 상태와 종료 코드를 안정적으로 캡처합니다. cd/export 등의 상태는 호출 간 유지되며, 타임아웃 또는 shell 종료 시 자동으로 리셋됩니다(원본 tool-bash-persistent 의미와 동일).

  • 경로 안전성: 기본 파일 도구는 --cwd 작업 공간 내 경로만 접근할 수 있으며, 범위를 벗어나면 오류 메시지에 --allow-outside-root를 추가하도록 안내합니다.

  • web_search 기본 DuckDuckGo(키 불필요): 국내 네트워크에서는 --proxy http://127.0.0.1:7897을 권장하거나, --search-provider tavily --search-api-key <key>로 변경하세요.

  • 상태는 모두 프로세스 내(session 수준): todo/goal/plan/백그라운드 작업 상태는 서버 프로세스 수명 주기를 따르며, 재시작 시 초기화됩니다. 원본의 "세션 수준 상태"와 동일합니다.

원본 dsh와의 차이점(명시적 설명)

항목

원본 dsh

본 MCP 래핑

지속형 shell

node-pty PTY 터미널

stdio 파이프 상주 프로세스(대화형 프롬프트 없음, 상태 유지 동일)

ask_user_question

dsh UI 질문 브리지

MCP stdio에서는 동기적 상호작용이 불가능하므로, 질문 텍스트를 반환하고 모델이 사용자에게 전달하도록 지시

plan_mode/exit_plan_mode

UI 승인 흐름

서버 측 플래그 + 계획 텍스트 반환

subagent_*/workflow/ralph

dsh 런타임에 의존(LLM 하위 에이전트, 워크플로 엔진)

래핑되지 않음 — 전체 dsh 런타임 필요, 아래 참조

grep 엔진

내장 ripgrep 바이너리

node 정규식 구현(일반적인 구문은 동일, 일부 ripgrep 기능 미지원)

래핑되지 않은 도구(원본 standard 프리셋의 런타임 결합 도구, 전체 dsh 런타임 필요): subagent_control, list_agents, subagent, subagent_fork, workflow, ralph. 이러한 기능이 필요하면 deepseek-harness 본체를 직접 사용하세요.

테스트

npm run build
npm test          # 冒烟测试:两种模式工具暴露 + 核心工具行为 + --tools 覆写
node scripts/state-test.mjs   # 持久 shell 状态保持 / 退出码 / 优雅重置(PROXY=... 可测 web_search)
node scripts/bash-test.mjs    # bash 后端验证

소스 참조

deepseek-ai/deepseek-harness(MIT License, master 브랜치)에서 추출:

  • 모드 정의: apps/cli/config/agent-presets/minimal/agent.cordis.yml, .../standard/agent.cordis.yml

  • 도구 구현: packages/shell/tool-bash-persistent, packages/fs/tool-str-replace-editor, packages/fs/tool-fs, packages/fs/tool-fs-search, packages/jobs/tool-jobs, packages/todo/tool-todo, packages/web/tool-web, packages/interaction/tool-ask-user, packages/goal/tool-goal, packages/plan/plan-mode, packages/skill/tool-skill

Install Server
F
license - not found
A
quality
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

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

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/hqzqaq/dsh-tools-mcp'

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