dsh-workspace-mcp:項目級 MCP 配置下沉

前言

DeepSeek Harness(DSH)原生的 MCP 配置屬於 profile 級別,一次配置作用於整個 profile。在多項目開發或需要爲不同項目掛載不同 MCP 服務器的場景下,這種全局配置方式不夠靈活。本插件將 MCP 配置下沉到項目:在項目目錄下放置配置文件,會話創建時自動讀取並掛載,會話結束時自動斷開。

這是什麼

dsh-workspace-mcp 是一個爲 DeepSeek Harness 設計的項目級 MCP 插件,由 lihuabd 維護。它讀取項目目錄中的 .dsh/mcp.json(或兼容的 .mcp.json),把其中聲明的 MCP 服務器掛載到當前會話。桌面 GUI、dsh web、dsh headless 均受支持。

核心功能

  • 項目級配置:在項目根目錄放置 .dsh/mcp.json 或 .mcp.json,按會話工作目錄自動加載對應服務器的 MCP 工具。
  • 獨立實例:每臺服務器作爲獨立的 dsh-mcp-client 實例掛到會話,工具隨會話銷燬自動移除。
  • 併發啓動:同一會話的服務器併發啓動,單臺失敗不影響其他服務器。
  • 靈活搜索:支持向上查找父目錄(默認最多 3 層),便於在子目錄中引用父項目的配置。
  • 子 agent 控制:通過 includeSubagents 控制是否爲子 agent 掛載項目 MCP 工具(默認關閉)。
  • 配置覆蓋:在 profile 的 cordis.patch.yml 中按 id 覆蓋插件配置,包括啓用開關、搜索策略、超時與環境變量策略。

安裝與啓用

本包是一個 DSH bundle,安裝後自動插入插件行。安裝命令如下:

# 從 npm
dsh plugin --profile <profile> add dsh-workspace-mcp

# 直接從 GitHub
dsh plugin --profile <profile> add github:lihuabd/dsh-workspace-mcp

也可以通過桌面 GUI 安裝:插件頁 → 添加插件 → 輸入 dsh-workspace-mcp → 選擇安裝源 → 安裝。安裝後用以下命令確認條目已進入配置樹:

dsh --profile <profile> --dump-config | grep -A 4 workspace-mcp

典型用法

  1. 在項目根目錄創建 .dsh/mcp.json(或 .mcp.json),內容示例:
{
  "mcpServers": {
    "cc-tools": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "headers": { "Authorization": "Bearer ${MCP_TOKEN}" }
    },
    "local": {
      "command": "node",
      "args": ["./tools/mcp-server.js"],
      "env": { "TOKEN": "${LOCAL_TOKEN}" }
    }
  }
}
  1. 在 profile 的 cordis.patch.yml 中按 id 覆蓋插件配置:
- id: workspace-mcp
  name: dsh-workspace-mcp
  config:
    enabled: true
    files: ['.dsh/mcp.json', '.mcp.json']
    searchParents: false
    maxParentDepth: 3
    includeSubagents: false
    failOnStartupError: false
    startupTimeoutMs: 20000
    toolCallTimeoutMs: 60000
    env: {}
    envAllowlist: []
  1. 打開會話後,工具名形如 mcp__<serverName>__<tool>。項目級 server 與 profile/$DSH_HOME 裏配置的同名 server 可以共存,會話內以項目配置爲準。

適用場景與注意

  • 適合需要爲不同項目掛載不同 MCP 服務器的場景,避免全局配置衝突。
  • 插件以當前 DSH 進程權限運行,項目文件可以拉起任意 stdio 進程,等同於把代碼執行權交給倉庫作者。只在自己信任的倉庫裏使用。
  • 默認不從進程環境展開變量:${VAR} 只解析插件配置的 env 與 envAllowlist 命中的名字。需要 ${GITHUB_TOKEN} 這類寫法時,顯式配置 envAllowlist: ['GITHUB_TOKEN'](或 ['MCP_*'])。
  • 文件必須是常規文件且不超過 1 MB,不支持 SSE 傳輸。

短結尾

dsh-workspace-mcp 將 MCP 配置下沉到項目,讓不同會話能按需加載對應 MCP 工具。完整文檔見:https://github.com/lihuabd/dsh-workspace-mcp

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜