dsh-mcp-setting:在設置界面管理 DSH 的 MCP 服務器

前言

DeepSeek Harness (DSH) 採用插件化架構,MCP 服務器的接入通常需要編輯配置文件(如 cordis.patch.yml)。手動維護這些配置行容易出錯,且難以實時查看服務狀態。dsh-mcp-setting 插件在 DSH 的設置界面中新增了「MCP 服務器」頁面,允許用戶直接通過 Web 界面進行增刪改查。

這是什麼

這是一個 DeepSeek Harness 客戶端插件,由 belowthetree 維護。它通過注入設置頁面,提供對 DSH 配置文件中 @deepseek-ai/dsh-mcp-client 配置行的直接管理能力。插件不僅實現了可視化的配置編輯,還集成了狀態監控與配置校驗機制。

核心功能

  1. 服務器列表與概覽
    展示主配置文件($DSH_HOME/cordis.patch.yml)與各 profile 補丁文件中的全部 MCP 服務器,標註來源與端點摘要。

  2. 實時連接狀態
    頁面每 5 秒靜默刷新,通過加載器 fiber 與工具註冊表(mcp__<serverName>__* 前綴)推斷狀態。顯示內容爲:已連接 · 工具數 / 未連接 / 啓動失敗 / 加載中。注意:在斷線重連的退避窗口內,狀態可能短暫顯示爲「已連接」。

  3. 啓用/停用控制
    每臺服務器自帶開關,通過寫入 loader 行的 disabled 標誌控制。DSH 的配置熱加載機制會即時生效,無需重啓進程。

  4. 配置編輯與刪除
    支持修改服務器參數或刪除條目。編輯時會保留表單未展示的字段(如 reconnect、toolCallTimeoutMs)。刪除操作會一併移除所在文件中空掉的 insert 補丁條目。

  5. 新增服務器
    在主配置文件中新增條目,並自動補齊自描述的頭註釋。

  6. 配置校驗
    遵循 @deepseek-ai/dsh-mcp-client 的配置契約。校驗規則包括:

    • id 和 serverName 唯一性
    • command 必填(針對 stdio 傳輸)
    • url 必填(針對 streamable-http 傳輸)
    • 命名規則匹配。校驗失敗會拒絕寫入並返回中文提示。
  7. 安全機制

    • 所有寫操作僅允許本機迴環訪問。
    • 每次寫入前保留 .bak 備份文件。
    • 使用臨時文件 + 原子落盤方式修改 YAML 文檔,確保未觸碰的註釋與 !!js 表達式原樣保留。
  8. 重啓 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

典型用法

  1. 安裝插件並重啓 DSH。
  2. 打開瀏覽器,進入 DSH 設置頁面的「MCP 服務器」選項卡。
  3. 點擊「重啓 DSH」按鈕確認應用更改(如果修改了配置)。
  4. 在列表中觀察服務器的實時連接狀態,通過開關快速啓用或停用特定服務器。

技術細節與注意事項

  • 熱加載生效:啓停操作利用 DSH 的配置熱加載,即時生效;增刪改會寫入配置文件,建議配合「重啓 DSH」按鈕使用。
  • 開發環境:開發者可通過 pnpm install && pnpm build 編譯,或使用 dev_build_plugin -> dev_install_package 注入器生產線進行本地開發掛載。
  • 測試與構建:項目包含單元測試(pnpm test)、類型檢查(pnpm typecheck)與構建腳本(pnpm build)。
  • 環境要求:Node.js 版本需 >= 20。

參考資料

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

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

小夜