前言¶
DeepSeek Harness (DSH) 採用插件化架構,MCP 服務器的接入通常需要編輯配置文件(如 cordis.patch.yml)。手動維護這些配置行容易出錯,且難以實時查看服務狀態。dsh-mcp-setting 插件在 DSH 的設置界面中新增了「MCP 服務器」頁面,允許用戶直接通過 Web 界面進行增刪改查。
這是什麼¶
這是一個 DeepSeek Harness 客戶端插件,由 belowthetree 維護。它通過注入設置頁面,提供對 DSH 配置文件中 @deepseek-ai/dsh-mcp-client 配置行的直接管理能力。插件不僅實現了可視化的配置編輯,還集成了狀態監控與配置校驗機制。
核心功能¶
-
服務器列表與概覽
展示主配置文件($DSH_HOME/cordis.patch.yml)與各 profile 補丁文件中的全部 MCP 服務器,標註來源與端點摘要。 -
實時連接狀態
頁面每 5 秒靜默刷新,通過加載器 fiber 與工具註冊表(mcp__<serverName>__*前綴)推斷狀態。顯示內容爲:已連接 · 工具數 / 未連接 / 啓動失敗 / 加載中。注意:在斷線重連的退避窗口內,狀態可能短暫顯示爲「已連接」。 -
啓用/停用控制
每臺服務器自帶開關,通過寫入 loader 行的disabled標誌控制。DSH 的配置熱加載機制會即時生效,無需重啓進程。 -
配置編輯與刪除
支持修改服務器參數或刪除條目。編輯時會保留表單未展示的字段(如reconnect、toolCallTimeoutMs)。刪除操作會一併移除所在文件中空掉的insert補丁條目。 -
新增服務器
在主配置文件中新增條目,並自動補齊自描述的頭註釋。 -
配置校驗
遵循@deepseek-ai/dsh-mcp-client的配置契約。校驗規則包括:id和serverName唯一性command必填(針對 stdio 傳輸)url必填(針對 streamable-http 傳輸)- 命名規則匹配。校驗失敗會拒絕寫入並返回中文提示。
-
安全機制
- 所有寫操作僅允許本機迴環訪問。
- 每次寫入前保留
.bak備份文件。 - 使用臨時文件 + 原子落盤方式修改 YAML 文檔,確保未觸碰的註釋與
!!js表達式原樣保留。
-
重啓 DSH
頁面頂部提供「重啓 DSH」按鈕(需兩次點擊確認),用於重新拉起 DSH 進程以應用完整重載。
安裝與啓用¶
推薦通過 npm 安裝到指定的 DSH profile(例如 web profile):
pnpm dsh plugin --profile web add dsh-mcp-setting
安裝後,DSH 進程會自動裝配該插件。瀏覽器打開設置 -> MCP 服務器即可看到新增的管理界面。
若需移除:
pnpm dsh plugin --profile web remove dsh-mcp-setting
典型用法¶
- 安裝插件並重啓 DSH。
- 打開瀏覽器,進入 DSH 設置頁面的「MCP 服務器」選項卡。
- 點擊「重啓 DSH」按鈕確認應用更改(如果修改了配置)。
- 在列表中觀察服務器的實時連接狀態,通過開關快速啓用或停用特定服務器。
技術細節與注意事項¶
- 熱加載生效:啓停操作利用 DSH 的配置熱加載,即時生效;增刪改會寫入配置文件,建議配合「重啓 DSH」按鈕使用。
- 開發環境:開發者可通過
pnpm install && pnpm build編譯,或使用dev_build_plugin -> dev_install_package注入器生產線進行本地開發掛載。 - 測試與構建:項目包含單元測試(
pnpm test)、類型檢查(pnpm typecheck)與構建腳本(pnpm build)。 - 環境要求:Node.js 版本需 >= 20。