在 DeepSeek Harness (DSH) 的開發工作流中,管理 MCP 服務器(@deepseek-ai/dsh-mcp-client)通常涉及手動編輯配置文件、處理 YAML 語法,並重啓 Web 進程才能生效。dsh-mcp-manager 插件爲這一過程提供了 Web 界面,支持增刪改查(CRUD)和實時連接狀態監控,並通過熱重載機制實現零重啓更新。
核心功能¶
該插件在 DSH Web 設置面板中新增了獨立的“MCP 服務”頁面,主要包含以下能力:
- 設置入口:頁面位於“設置 → MCP 服務”,與通用設置、模型、插件同級。
- 完整增刪改:支持 stdio 和 streamable-http 兩種傳輸協議。通過表單可配置命令行參數(command/args/cwd/env)或 HTTP 服務器的 URL 與 Headers。
- 實時連接狀態:列表每行顯示服務器連接狀態及已註冊的工具數量。提供手動刷新按鈕,後臺亦有 30 秒輪詢機制。
- 無需重啓:修改配置後,插件會重寫 profile 的
cordis.patch.yml,宿主通過 Cordis HMR 事務性熱重載,dsh-mcp-client在原地重連。 - YAML 安全:內置解析器自動處理 YAML 保留字符(如
-y、@pkg/name等),確保生成的配置文件始終可被正確解析。
安裝與啓用¶
使用前需確保已安裝 DSH Web profile(默認爲 web)。
- 安裝依賴:在 profile 目錄下執行安裝命令。
cd "$DSH_HOME/profiles/web"
pnpm add dsh-mcp-manager
- 添加配置:在 profile 的
cordis.patch.yml中添加插件條目。
- insert:
- id: mcp-manager
name: dsh-mcp-manager
- 啓用:重啓
dsh web(或等待 HMR 熱掛載生效),刷新瀏覽器即可在設置菜單中看到“MCP 服務”入口。
典型用法¶
Web 界面操作¶
設置頁面以表格形式展示服務器列表,包含以下列:
- Server:顯示服務器名稱及配置 ID。
- Status:綠色代表已連接(顯示工具數量),灰色代表斷開(懸停可查看詳情)。
- Env:顯示環境變量鍵名(具體值在編輯模式下可見)。
- Actions:編輯(打開包含完整配置的表單)或刪除(需確認)。
點擊標題旁的“刷新”按鈕可立即探測所有服務器的連接狀態。
HTTP API¶
插件提供同源 HTTP 接口,可用於腳本或外部程序調用:
- 列出服務器:
GET /mcp-manager/servers
返回服務器列表及連接狀態(connected、toolCount)。 - 創建或更新:
POST /mcp-manager/servers
JSON body 格式提交,若id存在則更新,否則創建。 - 刪除:
DELETE /mcp-manager/servers/:id
刪除指定 ID 的服務器配置。
寫入操作通過單一隊列序列化,防止併發編輯衝突。
注意事項¶
- 配置存儲:插件不維護獨立的服務器存儲,被管理的服務器即
cordis.patch.yml文件中@deepseek-ai/dsh-mcp-client的配置行。 - Profile 目標:默認管理
webprofile,可通過插件配置項config.targetProfile修改以管理其他 profile。 - Windows 兼容性:在 Windows 上使用
npx啓動某些 MCP 服務器(如@modelcontextprotocol/server-filesystem)時,可能會因爲 npm 配置警告或 cmd 對二進制路徑的解析問題導致失敗。建議直接使用完整命令路徑或改用 streamable-http 傳輸。
通過 dsh-mcp-manager,開發者可以在 Web 界面直接維護 MCP 服務器,避免手動處理 YAML 文件和重啓進程。更多細節請參考 GitHub 倉庫。