Skip to main content
Glama
hqzqaq

dsh-minimal-mcp

by hqzqaq

dsh-minimal-mcp

Упаковывает минимальный режим (minimal agent preset) из deepseek-harness в виде MCP-сервера, ориентированного на модели, чтобы любой внешний агент (Claude Desktop, Trae, Cursor, LangChain и т. д.) мог подключаться и вызывать его через стандартный протокол MCP.

Минимальный режим (apps/cli/config/agent-presets/minimal/agent.cordis.yml) — это официальный минимальный двух-инструментальный кодирующий агент от deepseek-harness, который предоставляет только два инструмента:

  • bash — постоянный bash (PTY-сессия, общий cwd / переменные окружения / функции / фоновые задачи между вызовами)

  • str_replace_editor — редактирование файлов через view / create / str_replace / insert

Данная реализация — собственная репликация с выравниванием по оригинальной семантике (@deepseek-ai/dsh-tool-bash-persistent и @deepseek-ai/dsh-tool-str-replace-editor), не зависит от полного рантайма harness, кроссплатформенная, лёгкая и может работать автономно.

Семантика инструментов (выровнена с оригиналом)

bash

  • Настоящая постоянная PTY-оболочка, состояние сохраняется между командами.

  • Ненулевой код выхода дополняется комментарием: [exit code: N].

  • Вывод, превышающий лимит, обрезается с пометкой <response clipped>.

  • При таймауте возвращается частичный вывод и оболочка сбрасывается.

str_replace_editor

  • view: файл нумеруется строками в стиле cat -n; для каталога перечисляются не-скрытые элементы, на два уровня вглубь.

  • create: создаёт только если путь не существует, иначе выдаёт ошибку.

  • str_replace: old_str должен быть уникальным и совпадать дословно; при нескольких или нулевых совпадениях — ошибка.

  • insert: insert_line с нулевой базой, вставка без дополнительного завершающего перевода строки.

Related MCP server: devcontainer-mcp

Установка и сборка

pnpm install
pnpm run build

При первой установке выполняется скрипт postinstall, который исправляет права на выполнение предварительно скомпилированного бинарника node-pty в macOS (при их отсутствии возникает posix_spawnp failed).

Запуск

node dist/index.js

Переменные окружения

Переменная

По умолчанию

Описание

DSH_CWD

process.cwd()

Рабочий каталог для bash и файловых инструментов

DSH_BASH_TIMEOUT_MS

60000

Таймаут одной команды (мс), при срабатывании оболочка автоматически сбрасывается, чтобы не зависнуть

DSH_MAX_OUTPUT_CHARS

16000

Верхний предел сохраняемых символов вывода команд / файлов

DSH_SHELL

/bin/bash

Путь к оболочке, используемой для spawn

Конфигурация подключения

На примере Claude / универсального MCP-клиента добавьте в свою MCP-конфигурацию:

{
  "mcpServers": {
    "dsh-minimal": {
      "command": "node",
      "args": ["/absolute/path/to/dsh-mcp-tools/dist/index.js"],
      "env": {
        "DSH_CWD": "/your/workspace"
      }
    }
  }
}

Один вызов сервиса предоставляет два инструмента: bash и str_replace_editor — это и есть полный набор возможностей кодирования минимального режима deepseek-harness.

Структура каталогов

src/
  index.ts   # MCP server 入口,注册两个工具(stdio 传输)
  config.ts  # 环境变量解析与描述文本
  bash.ts    # 持久 bash(node-pty)
  editor.ts  # str_replace_editor
scripts/
  fix-node-pty-perms.mjs  # 安装后修复 node-pty 二进制权限

Примечания

  • Транспорт — stdio (стандарт MCP, ориентирован на локальных агентов). При необходимости расширяется до streamable-HTTP.

  • В описании оригинального bash упоминается такая информация об окружении, как «доступ к пакетам apt/pip через зеркала»; данная реализация сохраняет этот текст описания, но фактические сетевые возможности зависят от среды выполнения.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight, stdio-based MCP server enabling AI assistants to perform local file system operations like reading, writing, searching, and executing commands.
    3,012 npm
    MIT