DeepSeek Harness (DSH) Web GUI 的 MCP 服務器管理面板

DSH(DeepSeek Harness)的核心理念是“一切皆插件”。在本地開發或使用 Web GUI (dsh web) 時,管理 MCP 服務器連接狀態、啓停配置以及本地技能,通常需要直接編輯配置文件。dsh-mcp-skill-control 是一個第三方插件,它在 Web GUI 的會話頭部提供了一個管理面板,包含 MCP 服務器頁籤和 Skills 頁籤,用於替代手動編輯配置文件的操作。

定位與安裝

該插件爲 DSH Web GUI 提供了 MCP 服務器與本地技能的圖形化管理界面。它是一個單包雙面插件(Host 半 + Browser 半),獨立分發,無需修改 DSH 源碼。

  1. 安裝插件
    使用官方 CLI 將插件安裝到 web profile:
    dsh plugin --profile web add https://github.com/shuaihaoV/dsh-mcp-skill-control
  1. 訪問面板
    安裝並重啓 DSH 進程後,在 Web GUI 會話頭部(Session log 左側)點擊 “MCP” 膠囊按鈕即可打開管理面板。

  2. 卸載
    如需移除插件:

    dsh plugin --profile web remove @shuaihaov/dsh-mcp-skill-control

MCP 服務器管理

插件在 Web 界面列出了 @deepseek-ai/dsh-mcp-client 相關的所有配置行,並提供狀態查看與操作。

狀態查看

面板列出所有 MCP 服務器行,顯示 serverName、傳輸方式、端點、連接狀態、已註冊工具數與清單。狀態分爲 connected(活躍且註冊工具)、connecting(正在建立,20s 內)、unreachable(本插件判定:活躍但 20s 無工具,或 streamable-http 不可達時自動探測)、failed(fiber 進入失敗)以及 disabled(已停用)。

啓停與重啓

  • 停用 / 啓用:通過寫入或移除 disabled 覆蓋來實現。本插件插入的行就地改寫,其他層的行使用頂層 override。
  • 重啓:執行先停後啓的操作,用於崩潰恢復或刷新工具列表。此操作爲純運行時動作,不改寫持久狀態。

新增與刪除

  • 新增:支持兩種方式:
    1. 表單錄入(支持 stdio / streamable-http,可配置 env、headers、cwd、超時、reconnect)。
    2. 粘貼 JSON 導入(支持 Claude Desktop / Cursor / OpenCode 格式,自動處理名稱 slug 化、SSE 攔截與源文檔標記停用)。
  • 刪除:從 cordis.patch.yml 摘除對應行。注意:刪除僅對本插件 patch 層插入的行可用;bundle 層定義的行只能停用,無法刪除。

診斷探測

對於 streamable-http 行,若插件判定不可達,會自動發起一次 MCP initialize 探測(30s 限頻),將“零工具”等狀態翻譯爲可讀的診斷文本。

本地技能控制

在 “Skills” 頁簽下,插件列出用戶 skill root 下的本地技能(~/.dsh/skills、~/.agents/skills)。

  • 啓停控制:支持一鍵啓用/禁用本地技能。操作通過寫入或移除 frontmatter 中的 disable-model-invocation 實現,Markdown 正文逐字節保留。
  • 文件管理:支持將技能文件定位到文件管理器中。

架構與持久化

配置寫入

所有變更寫入 profile 的 cordis.patch.yml,由 watchUserPatches 經 HMR 事務應用。這意味着當前進程立即生效,且重啓後保持。

YAML 編輯

配置寫入使用 YAML Document AST 編輯(與 DSH 自身的 settings-file 同一手法),確保用戶註釋、鍵序、[...] 內聯格式在增刪組合撤銷後與原文字節級一致。

通信通道

  • 主通道:ctx.connection.rpc.call('/api', 'mcpManager/<method>')。
  • 兜底通道:POST /mcp-manager/api/<method>。當 RPC 返回 invocation-unavailable 時啓用。

注意事項

  1. 版本兼容與構建:
    插件當前對齊 DSH 0.1.7-alpha.2(React 18)。UI 符號來自 dsh-client-ui-primitives,跨版本可能改名。升級 dsh 後必須重新構建 lib/,否則會出現瀏覽器半靜默失效(面板消失但接口正常)。

  2. 生效方式:

    • Browser 半(UI):刷新頁面生效。
    • Host 半(服務):重啓 DSH 進程生效。
  3. 數據展示:
    爲避免密鑰泄漏,面板不展示 env / headers 的具體值。

  4. 狀態更新:
    狀態是輪詢快照而非推送。頁面可見時每 5s 輪詢一次,存在 connecting 行時加速至 2s,頁面隱藏時暫停。

  5. 開發與安裝:
    使用 pnpm 11 構建時,git 直裝依賴的 prepare 鉤子可能被 supply-chain 保護攔截。首次安裝時需在 profile 目錄運行 pnpm approve-builds --all。從源碼開發時,需注意 dev-link 與全局 dsh 的寫穿風險,需按 build.sh 指引操作。

結語

dsh-mcp-skill-control 爲 DSH 用戶提供了一個直觀的 MCP 服務器與本地技能管理入口,通過 YAML AST 編輯保證了配置的完整性。對於需要頻繁調整 MCP 連接或管理本地技能的開發者,該插件能有效減少手動編輯配置文件的工作量。

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

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

小夜