Skip to main content
Glama
hqzqaq

dsh-minimal-mcp

by hqzqaq

dsh-minimal-mcp

Envuelve las herramientas orientadas a modelos del modo minimalista (minimal agent preset) de deepseek-harness en un servidor MCP, para que cualquier agente externo (Claude Desktop, Trae, Cursor, LangChain, etc.) pueda invocarlas a través del protocolo estándar MCP.

El modo minimalista (apps/cli/config/agent-presets/minimal/agent.cordis.yml) es el agente de doble herramienta mínimo proporcionado oficialmente por deepseek-harness, que expone solo dos herramientas:

  • bash — bash persistente (sesión PTY, comparte cwd / variables de entorno / funciones / tareas en segundo plano entre llamadas)

  • str_replace_editor — edición de archivos con view / create / str_replace / insert

Esta implementación replica y alinea la semántica original por cuenta propia (@deepseek-ai/dsh-tool-bash-persistent y @deepseek-ai/dsh-tool-str-replace-editor), sin depender del runtime completo del harness, multiplataforma, ligera y ejecutable de forma independiente.

Semántica de las herramientas (alineada con la original)

bash

  • Shell PTY real y persistente, con estado compartido entre comandos.

  • Código de salida distinto de cero: añade el comentario [exit code: N].

  • Salida que supera el límite: se recorta y se marca con <response clipped>.

  • Timeout: devuelve la salida parcial y reinicia el shell.

str_replace_editor

  • view: muestra el archivo con números de línea estilo cat -n; para directorios, lista los elementos no ocultos hasta dos niveles hacia abajo.

  • create: solo crea si la ruta no existe; en caso contrario, devuelve un error.

  • str_replace: old_str debe coincidir de forma única y exacta; si hay múltiples coincidencias o ninguna, devuelve un error.

  • insert: insert_line es de base 0; la inserción no añade un salto de línea adicional al final.

Related MCP server: devcontainer-mcp

Instalación y ejecución

pnpm install
pnpm run build

En la primera instalación se ejecuta el script postinstall, que repara los permisos de ejecución del binario precompilado de node-pty en macOS (si falta, se produce posix_spawnp failed).

Ejecución

node dist/index.js

Variables de entorno

Variable

Valor por defecto

Descripción

DSH_CWD

process.cwd()

Directorio de trabajo para bash y las herramientas de archivos

DSH_BASH_TIMEOUT_MS

60000

Timeout de un solo comando (ms); al expirar, reinicia el shell automáticamente para evitar bloqueos

DSH_MAX_OUTPUT_CHARS

16000

Límite de caracteres conservados en la salida de comandos / archivos

DSH_SHELL

/bin/bash

Ruta del shell utilizado para spawn

Configuración de integración

Tomando como ejemplo Claude / un cliente MCP genérico, añade lo siguiente a tu configuración de MCP:

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

Una sola invocación del servicio expone dos herramientas: bash y str_replace_editor, que constituyen la capacidad completa de codificación del modo minimalista de deepseek-harness.

Estructura de directorios

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 二进制权限

Notas

  • El transporte es stdio (estándar MCP, orientado a agentes locales). Si se necesita streamable-HTTP, es extensible.

  • La descripción original de bash menciona que "se pueden instalar paquetes apt/pip a través de un espejo", etc., información sobre el entorno; esta implementación conserva ese texto descriptivo, pero la capacidad de red real depende del entorno de ejecución.

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