Skip to main content
Glama

dsh-tools-mcp

Извлекает и оборачивает инструменты минимального режима (minimal) и стандартного режима (standard) из deepseek-harness (открытый agent harness от DeepSeek AI) в сервер MCP (Model Context Protocol), управляя тем, какой набор инструментов будет доступен, через параметр --mode.

Схемы инструментов, описания и выходные обёртки (например, формат <path>/<type>/<content> для read, семантика view/create/str_replace/insert для str_replace_editor, маркер [exit code: N]) точно воспроизведены из файла apps/cli/config/agent-presets/{minimal,standard}/agent.cordis.yml исходного репозитория и соответствующих реализаций packages/*/tool-*.

Режимы и соответствие инструментов

Режим

Параметр

Инструменты

Минимальный режим

--mode minimal

Постоянный shell (bash для POSIX, pwsh для win32, состояние сохраняется между вызовами) + 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 (в оригинальном стандартном пресете по умолчанию 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>.

  • Всё состояние внутри процесса (на уровне сессии): состояние todo/goal/plan/фоновых задач привязано к жизненному циклу процесса сервера и очищается при перезапуске — эквивалентно «состоянию уровня сессии» оригинала.

Отличия от оригинального dsh (явное пояснение)

Пункт

Оригинальный dsh

Данная MCP-обёртка

Постоянный shell

Терминал PTY node-pty

Долгоживущий процесс через stdio-каналы (без интерактивного приглашения, состояние эквивалентно)

ask_user_question

Мост вопросов в UI dsh

При MCP stdio невозможна синхронная интеракция; возвращает текст вопроса и указывает модели пересказать его пользователю

plan_mode/exit_plan_mode

Поток утверждения в UI

Флаг на сервере + возврат текста плана

subagent_*/workflow/ralph

Зависит от рантайма dsh (LLM-субагенты, движок рабочих процессов)

Не обёрнуты — требуется полный рантайм dsh, см. ниже

Движок grep

Встроенный бинарник ripgrep

Реализация на node-регулярных выражениях (эквивалентна для распространённого синтаксиса, часть возможностей ripgrep не поддерживается)

Не обёрнутые инструменты (инструменты, связанные с рантаймом в оригинальном standard preset, требуют полный dsh runtime): 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, ветка 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