Skip to main content
Glama
hqzqaq

dsh-minimal-mcp

by hqzqaq

dsh-minimal-mcp

deepseek-harness의 **미니멀 모드(minimal agent preset)**의 모델 지향 도구를 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 영구 셸, 명령 간 상태 유지.

  • 0이 아닌 종료 코드에 주석 추가: [exit code: N].

  • 출력이 상한을 초과하면 잘라내고 <response clipped> 표시.

  • 타임아웃 시 부분 출력을 반환하고 셸을 리셋.

str_replace_editor

  • view: 파일을 cat -n 스타일로 줄 번호를 붙여 표시; 디렉터리는 숨김 항목을 제외하고 하위 2단계까지 나열.

  • create: 경로가 존재하지 않을 때만 생성, 존재하면 오류 반환.

  • str_replace: old_str가 유일하게 정확히 일치해야 하며, 다중 일치 / 불일치 시 오류 반환.

  • insert: insert_line은 0 기반, 삽입 시 추가 줄바꿈 없음.

Related MCP server: devcontainer-mcp

설치 및 실행

pnpm install
pnpm run build

최초 설치 시 postinstall 스크립트가 실행되어 macOS에서 node-pty 사전 컴파일 바이너리의 실행 권한을 복구합니다(누락 시 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