DSH(DeepSeek Harness)的核心理念是“一切皆插件”。在本地開發或使用 Web GUI (dsh web) 時,管理 MCP 服務器連接狀態、啓停配置以及本地技能,通常需要直接編輯配置文件。dsh-mcp-skill-control 是一個第三方插件,它在 Web GUI 的會話頭部提供了一個管理面板,包含 MCP 服務器頁籤和 Skills 頁籤,用於替代手動編輯配置文件的操作。
定位與安裝¶
該插件爲 DSH Web GUI 提供了 MCP 服務器與本地技能的圖形化管理界面。它是一個單包雙面插件(Host 半 + Browser 半),獨立分發,無需修改 DSH 源碼。
- 安裝插件
使用官方 CLI 將插件安裝到 web profile:
dsh plugin --profile web add https://github.com/shuaihaoV/dsh-mcp-skill-control
-
訪問面板
安裝並重啓 DSH 進程後,在 Web GUI 會話頭部(Session log 左側)點擊 “MCP” 膠囊按鈕即可打開管理面板。 -
卸載
如需移除插件:
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。 - 重啓:執行先停後啓的操作,用於崩潰恢復或刷新工具列表。此操作爲純運行時動作,不改寫持久狀態。
新增與刪除¶
- 新增:支持兩種方式:
- 表單錄入(支持 stdio / streamable-http,可配置 env、headers、cwd、超時、reconnect)。
- 粘貼 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時啓用。
注意事項¶
-
版本兼容與構建:
插件當前對齊 DSH0.1.7-alpha.2(React 18)。UI 符號來自dsh-client-ui-primitives,跨版本可能改名。升級 dsh 後必須重新構建lib/,否則會出現瀏覽器半靜默失效(面板消失但接口正常)。 -
生效方式:
- Browser 半(UI):刷新頁面生效。
- Host 半(服務):重啓 DSH 進程生效。
-
數據展示:
爲避免密鑰泄漏,面板不展示env/headers的具體值。 -
狀態更新:
狀態是輪詢快照而非推送。頁面可見時每 5s 輪詢一次,存在connecting行時加速至 2s,頁面隱藏時暫停。 -
開發與安裝:
使用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 連接或管理本地技能的開發者,該插件能有效減少手動編輯配置文件的工作量。