dsh-tools-mcp
dsh-tools-mcp
Extrae y envuelve las herramientas de los modos mínimo (minimal) y estándar (standard) de deepseek-harness (el agent harness de código abierto de DeepSeek AI) como un servidor MCP (Model Context Protocol), controlando mediante el parámetro --mode qué conjunto de herramientas se expone.
El schema de las herramientas, los textos descriptivos y el envoltorio de salida (como el formato
<path>/<type>/<content>deread, la semántica view/create/str_replace/insert destr_replace_editory el marcador[exit code: N]) se reproducen fielmente desdeapps/cli/config/agent-presets/{minimal,standard}/agent.cordis.ymldel repositorio original y sus implementaciones correspondientes enpackages/*/tool-*.
Correspondencia de modos y herramientas
Modo | Parámetro | Herramientas |
Modo mínimo |
| Shell persistente ( |
Modo estándar |
|
|
El modo estándar también admite --with-web-fetch para exponer adicionalmente web_fetch (el preset estándar original tiene fetch: false por defecto).
Related MCP server: deepseek-agent-mcp
Inicio rápido
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-mcpConfiguración del cliente 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"]
}
}
}Ambas entradas pueden registrarse simultáneamente, eligiendo el conjunto de herramientas mínimo o estándar según se necesite.
Todos los parámetros
--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 / --versionSobrescritura con --tools
--tools acepta nombres de herramientas o de suites, para exponer un subconjunto según se necesite:
# 只要文件相关
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_killNombres de suites: shell (shell persistente), one-shot, fs, search, jobs, todo, web, ask-user, goal, plan, skill.
Notas de diseño
Shell persistente: sin dependencia de node-pty, utiliza tuberías stdio para manejar un subproceso
bash/powershellde larga duración; los comandos se envuelven con un UUID aleatorio como marcador para capturar de forma fiable el estado de finalización y el código de salida; el estado decd/exportse mantiene entre llamadas; se reinicia automáticamente en caso de timeout o salida del shell (coherente con la semántica deltool-bash-persistentoriginal).Seguridad de rutas: por defecto, las herramientas de archivos solo permiten acceder a rutas dentro del área de trabajo
--cwd; si se sale de los límites, se muestra un error sugiriendo añadir--allow-outside-root.web_search usa DuckDuckGo por defecto (sin clave); para redes domésticas se recomienda
--proxy http://127.0.0.1:7897, o cambiar a--search-provider tavily --search-api-key <key>.El estado es solo en proceso (nivel de sesión): el estado de todo/goal/plan/tareas en segundo plano sigue el ciclo de vida del proceso del servidor y se borra al reiniciar, equivalente al "estado a nivel de sesión" del original.
Diferencias con el dsh original (explicación explícita)
Elemento | dsh original | Este envoltorio MCP |
Shell persistente | Terminal PTY node-pty | Proceso de larga duración con tubería stdio (sin prompt interactivo, estado equivalente) |
| Puente de preguntas de la UI de dsh | En MCP stdio no se puede interactuar de forma síncrona; devuelve el texto de la pregunta e indica al modelo que la transmita al usuario |
| Flujo de aprobación de la UI | Indicador en el servidor + devolución del texto del plan |
subagent_*/workflow/ralph | Depende del runtime de dsh (subagentes LLM, motor de workflows) | No envuelto — requiere el runtime completo de dsh, ver más abajo |
Motor de grep | Binario ripgrep integrado | Implementación con regex de node (equivalente para sintaxis común, algunas características de ripgrep no soportadas) |
Herramientas no envueltas (herramientas acopladas al runtime del preset estándar original, requieren el runtime completo de dsh): subagent_control, list_agents, subagent, subagent_fork, workflow, ralph. Si se necesitan estas capacidades, use directamente deepseek-harness.
Pruebas
npm run build
npm test # 冒烟测试:两种模式工具暴露 + 核心工具行为 + --tools 覆写
node scripts/state-test.mjs # 持久 shell 状态保持 / 退出码 / 优雅重置(PROXY=... 可测 web_search)
node scripts/bash-test.mjs # bash 后端验证Referencia del código fuente
Extraído de deepseek-ai/deepseek-harness (licencia MIT, rama master):
Definición de modos:
apps/cli/config/agent-presets/minimal/agent.cordis.yml,.../standard/agent.cordis.ymlImplementación de herramientas:
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, etc.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that wraps DeepSeek's AI capabilities into standard MCP tools, supporting three authentication modes including free web-based usage without API keys.62,1981MIT
- FlicenseAqualityCmaintenanceMCP server that packages DeepSeek agents as callable tools, offering a bare model for quick Q&A and a full agent capable of executing real coding and file-modifying tasks in a workspace.2
- AlicenseNot gradedqualityAmaintenanceExposes DeepSeek Harness agent capabilities as an MCP server, letting any MCP client drive Harness to execute real coding tasks with structured results, context isolation, and parallel execution.8MIT
- AlicenseNot gradedqualityBmaintenanceTurns DeepSeek Harness into an MCP server with tools for session management, agent execution, resources, and OAuth, plus browser automation and GitHub/GitLab integration.15MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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