dsh-mcp-server
dsh-mcp-server
Предоставляет агента DeepSeek Harness (dsh, кодирующий агент с полным набором инструментов: файлы, терминал, веб-поиск, субагенты, рабочие процессы) в качестве локально доступного модельного бэкенда через Model Context Protocol, а также интерфейсы «пойми меня / измени меня».
┌────────────────────────────┐ stdio / HTTP ┌──────────────────────────────┐
│ 其他 Agent / MCP 客户端 │ ────────────────────────▶ │ dsh-mcp-server │
│ (Claude Desktop, Cursor, │ │ 方向A:驱动我(消耗我的额度) │
│ Claude Code, 自定义程序) │ │ 方向B:读懂我/改造我(便宜) │
└────────────────────────────┘ └──────────────┬───────────────┘
│ spawn
┌──────────▼───────────────┐
│ dsh Agent(完整工具链) │
│ DeepSeek 模型(默认) │
└──────────────────────────┘Два направления
Направление A: управляй мной — расходует квоту DeepSeek Harness, требуется подтверждение пользователя
Каждый вызов dsh_ask / dsh_converse / dsh_tool запускает полноценный процесс агента dsh, который (с помощью моделей DeepSeek) выполняет реальную работу: читает и пишет файлы, запускает команды, ищет в вебе, отправляет субагентов. Это расходует токенную квоту DeepSeek Harness, поэтому:
Вызов сначала возвращает
confirmation_required(в этот момент квота не расходуется) и явно сообщает «будет израсходована квота DeepSeek Harness»;Вызывающая сторона обязана показать этот запрос пользователю (MCP-клиенты обычно автоматически показывают вызовы инструментов);
После одобрения пользователем вызывается
dsh_confirm(requestId, approve=true)— только тогда выполнение действительно происходит; либоdsh_deny(requestId)отменяет запрос.
Каждый ожидающий подтверждения запрос также выводит заметное предупреждение в stderr сервера. Неподтверждённые запросы истекают через 10 минут.
⚠️ Переключатель риска:
DSH_MCP_AUTO_APPROVE=1пропускает шлюз подтверждения (подходит для автономных/полностью доверенных сред). Отдельный вызов также может передатьconfirm: falseдля пропуска.
Направление B: пойми меня / измени меня — расходует токены другой стороны, на стороне сервера очень дёшево
Когда другие агенты хотят понять «что я такое, как я спроектирован, как создавать для меня плагины/менять конфигурацию», они используют эти интерфейсы (сервер выполняет только локальное чтение/проверку, не расходуя квоту моделей dsh; модель другой стороны считывает результат в свой контекст, расходуя собственные токены):
Интерфейс | Тип | Содержимое |
| инструмент | Полный снимок дизайна: бэкенд-модель/версия, шаблон персоны, правила plan-mode, 81 подключённая строка плагинов, пути рабочей области и конфигурации, имена ключей учётных данных (значения замаскированы), обнаруживаемые навыки |
| ресурс | Персона и компоненты системного промпта (шаблоны, лимиты инструкций, полный текст plan-mode) |
| ресурс | Список подключённых строк плагинов + доступность семейств инструментов |
| ресурс |
|
| ресурс | Имена ключей настроенных учётных данных (значения никогда не раскрываются) |
| ресурс | Список навыков (встроенные пресеты + пользовательские/проектные навыки) |
| шаблон ресурса | Текст SKILL.md конкретного навыка |
| инструмент | Контракт на модификацию плагинов/конфигурации для агентов, которые «хотят меня изменить» (форматы и правила безопасности для profile/patch/bundle/skill) |
| инструмент | Предложение изменения конфигурации: по умолчанию dry-run с проверкой собственным парсером dsh (без записи на диск); при реальной записи создаётся резервная копия исходного файла + требуется подтверждение пользователя |
Типичное использование: внешний агент сначала читает ресурсы dsh://self/*, чтобы понять дизайн (тратя свои токены), затем вызывает dsh_patch_config для предложения изменений конфигурации (например, смена модели, подключение нового навыка, отключение плагина) или пишет локальный плагин dsh на основе dsh_plugin_contract.
Related MCP server: dsh-orchestrator
Быстрый старт
cd E:\DeepSeek Harness\dsh-mcp
npm install # 安装 @modelcontextprotocol/sdk
# 冒烟测试:不经过 MCP,直接验证 dsh Agent 后端可用
node scripts/smoke.mjs
# 以 stdio 传输启动服务器(MCP 客户端的标准方式)
node src/index.jsСервер автоматически обнаруживает локально установленный dsh (сканирует кэш npx / кэш npm / текущий каталог), настройка не требуется.
Если не найден, укажите через переменную окружения: DSH_MCP_DSH_BIN=C:\...\@deepseek-ai\dsh\lib\bin.js.
Подключение к Claude Desktop
Отредактируйте %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"dsh": {
"command": "node",
"args": ["E:\\DeepSeek Harness\\dsh-mcp\\src\\index.js"]
}
}
}Подключение к Claude Code / Cursor / VS Code
Используйте examples/claude-code.json, examples/cursor-mcp.json, examples/vscode.json соответственно.
Подключение собственного агента (через HTTP)
node src/index.js --transport http --port 3005
# 端点:http://127.0.0.1:3005/mcp (Streamable HTTP)Список инструментов
Инструмент | Направление | Описание |
| A (расходует квоту) | Разовая задача передаётся новому агенту dsh, возвращает итоговый ответ + метаданные. Требует подтверждения. |
| A (расходует квоту) | Многораундовый диалог (сервер хранит историю по |
| A (расходует квоту) | Агент напрямую вызывает конкретный инструмент и возвращает результат как есть. Требует подтверждения. |
| — | Одобрить/отменить ожидающий запрос ( |
| — | Список запросов, ожидающих подтверждения (диагностика). |
| — | Сгенерировать новый |
| — | Очистить память сессии. |
| — | Диагностика: версия dsh, модель, семейства инструментов, число ожидающих подтверждения и т.д. |
| B | Снимок дизайна (персона/строки плагинов/пути/навыки/имена ключей учётных данных). |
| B | Проверка/запись патча конфигурации (dry-run по умолчанию, запись на диск требует подтверждения + резервную копию). |
| B | Документ контракта на модификацию плагинов и конфигурации. |
Переменные окружения
Переменная | Значение по умолчанию | Описание |
| автообнаружение | Абсолютный путь к |
|
| Профиль запуска dsh |
|
| Жёсткий таймаут одного вызова агента |
|
| Верхний предел длины текста задачи (командная строка Windows ~32k) |
|
| Бюджет внедрения истории для |
|
| Верхний предел параллельных процессов dsh |
| не задано |
|
|
| Время истечения ожидающих подтверждения запросов |
|
| Режим прав, передаваемый агенту dsh |
Права и безопасность
Агент dsh наследует систему прав dsh: по умолчанию
workspace-write(запись только в рабочий каталог), можно установитьread-only/danger-full-access.Все выполнения направления A проходят через шлюз подтверждения, расход квоты раскрывается явно.
Направление B: пути только для чтения не маскируют значения секретов; путь записи (
dsh_patch_config) по умолчанию dry-run, перед записью на диск автоматически создаётся резервная копия, требуется подтверждение, и предупреждается, что слой home влияет на все профили (включая запущенный Web UI).Сессии сохраняются в
~/.dsh/sessions, учётные данные общие —~/.dsh/.credentials.yaml.Сервер слушает только локальную машину (канал stdio / 127.0.0.1).
Смена модели (типичное использование направления B)
Модель по умолчанию берётся из agent-default-model dsh (локально deepseek-official / deepseek-v4-flash). Способы изменения:
Через
dsh_patch_config(рекомендуется): отправьте патч в слойhome, после успешной проверки dry-run и подтверждения пользователем он записывается (с автоматической резервной копией). Пример патча:- id: agent-default-model config: provider: deepseek-official model: deepseek-chatИзменение глобальных настроек: отредактируйте секцию
agent-default-modelв~/.dsh/settings.yaml.Смена целого профиля:
DSH_MCP_PROFILEуказывает другой профиль (другой набор инструментов/персона).
Известные ограничения
Каждый вызов направления A — новый процесс (около 2~3 секунд холодного старта + ответ модели), без стриминга, текст задачи ≤ ~30k символов.
Шлюз подтверждения зависит от того, что вызывающая сторона показывает
confirmation_requiredпользователю; если вызывающая сторона — автономная программа иDSH_MCP_AUTO_APPROVEне задан, запросы будут висеть до истечения.Количество ресурсов/инструментов: 6 ресурсов + 11 инструментов.
Разработка и тестирование
node scripts/smoke.mjs # 仅测 dsh 后端(无 MCP)
node scripts/demo.mjs # 演示:确认闸门 + 读懂我 + 改配置提议
node scripts/mcp-client-test.mjs # stdio 端到端:闸门/拒绝/多轮/自省/patch/资源
node scripts/http-client-test.mjs # HTTP 端到端(自动批准模式)Структура каталогов
dsh-mcp/
├── src/
│ ├── index.js # CLI 入口(stdio / HTTP 传输)
│ ├── server.js # MCP 工具与资源注册
│ ├── dsh.js # dsh 子进程运行器(spawn/超时/输出捕获/并发闸门)
│ ├── approvals.js # 确认闸门(额度披露、待确认队列、过期)
│ ├── self.js # 自省:设计快照、技能发现、配置路径、插件契约
│ └── sessions.js # 会话记忆与多轮提示组装
├── scripts/ # 冒烟 + 演示 + 端到端测试
└── examples/ # 各客户端接入配置This server cannot be installed
Maintenance
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
- 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
- AlicenseAqualityBmaintenanceA local STDIO MCP server that bridges Codex to the official DeepSeek Harness (DSH) Web Host, enabling supervised DSH collaboration through session management, delegation, and monitoring tools.136MIT
- 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
- AlicenseNot gradedqualityCmaintenanceIn-process DeepSeek Harness plugin that exposes a local Streamable HTTP MCP server, allowing MCP clients like Codex to submit tasks executed by DSH child agents using DSH's existing tools.281MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
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/NanGongWenTian01/dsh-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server