前言¶
在 DeepSeek Harness(DSH)或其它 AI 客戶端裏接 MCP,常見做法是各自維護一份 mcpServers 配置:DeepSeek Harness、Claude Desktop / Claude Code、Cursor、VS Code 等各自一份,改一處未必能在別處生效,也很難確認某個服務是否真的能完成 MCP 握手。社區插件 @zarpyk/dsh-mcp-manager(維護者 Zarpyk,分類 admin-security)把本機各客戶端配置裏的 MCP 定義彙總到一處,做真實握手探測,並在 DSH 裏維護可編輯的自有池;還可按會話把池內服務暴露給智能體,無需再裝單獨的 MCP 連接器插件。設計思路類似 dsh-skills-manager,對象從 skills 換成 MCP servers;界面與文檔爲英文。
這是什麼¶
@zarpyk/dsh-mcp-manager 是 DSH 插件,npm 包名 @zarpyk/dsh-mcp-manager,當前資料中版本 1.5.2,MIT 許可證,源碼在 GitHub。它掃描本機已安裝 AI 客戶端的配置(含用戶級與工作區級),規範化後只讀展示;對任意條目可執行真實的 MCP initialize 握手並列出工具;在插件自有狀態裏創建、編輯、啓用/禁用、軟刪除與導出服務器定義,且不會改寫其它應用的配置文件。
核心功能¶
發現與只讀彙總¶
從 DeepSeek Harness、Claude Desktop / Claude Code、Cursor、VS Code、Windsurf、Codex、Zed、Gemini CLI、OpenCode、Cline、Roo Code、Kilo Code、Qwen、Trae 等客戶端的配置中發現 MCP 服務器(用戶級與工作區均可)。發現項在界面中爲只讀;若要納入可管理池,需複製到插件自有池。
真實探測¶
對 stdio、streamable HTTP 或 legacy SSE 傳輸執行 MCP 握手,列出服務器暴露的工具。失敗時給出英文提示(例如缺少可執行文件、401、DNS、證書、超時、不支持的協議版本等)。探測 stdio 時會執行配置中的命令,信任模型與在原客戶端中運行該服務器相同。
自有池管理¶
在插件狀態文件中維護服務器池:創建、編輯、啓用/禁用、軟刪除到回收站、恢復、導出。可導出爲 mcpServers JSON、VS Code servers JSON 或 Codex config.toml;也可粘貼現有配置文檔導入。
按會話暴露工具¶
每個池內服務器對應聊天命令 /mcp-<server>,在該會話中切換是否暴露;首次運行會在當前聊天註冊該服務器的工具,命名形如 mcp_<server>_<tool>。會話級選擇優先於 Settings → MCP Manager 中的全局開關:某聊天單獨關閉不影響其它聊天;全局關閉後,未做本地選擇的聊天會跟隨全局默認。
無工具發佈的服務器(例如 Unity relay 需宿主應用連接後才列出工具)仍會保持可見:註冊佔位工具 mcp_<server>_status,並在 prompt 上下文中說明 MCP 已連接但暫無工具;暴露且工具數爲 0 時每 15 秒重讀工具列表,也可用 /mcp refresh <name> 立即刷新。
插件還向智能體註冊六個維護用工具:mcp_inventory、mcp_probe、mcp_save_server、mcp_expose_server、mcp_export_config、mcp_remove_server。
界面入口¶
- Settings → MCP Manager:設置對話框內獨立頁(順序 26)。
- 側邊欄:服務器條形圖標(順序 3),在中央欄打開同一頁面。
客戶端爲單文件 plain JS 模塊 lib/client.js,修改後窗口重載即可,無需重建。
安裝與啓用¶
要求 Node.js 20+,以及提供 @deepseek-ai/dsh-client-ui-slots 與 @deepseek-ai/dsh-client-locale 且版本在 >=0.2.0-rc.1 <0.3.0-0 的 Harness 構建。
在需要加載該插件的 profile 下執行:
dsh plugin --profile <profile> add @zarpyk/dsh-mcp-manager
也可在 Harness UI:Settings → Plugins,從 npm 或本地包目錄安裝。若從倉庫目錄安裝 bundle,資料中給出的命令爲 plugin_manager install_bundle(目標爲該包目錄)。
bundle 補丁除 insert 行外 intentionally 爲空,行爲由設置頁驅動,無必填 YAML 配置:
- insert:
- id: mcp-manager
name: '@zarpyk/dsh-mcp-manager'
狀態(池、回收站、最近探測結果)默認寫在 $DSH_HOME/mcp-manager/state.json(Windows 上通常爲 %USERPROFILE%\.dsh\mcp-manager\state.json),僅在顯式操作時原子寫入。
典型用法¶
聊天命令¶
按服務器切換當前會話暴露(命令面板可補全名稱):
/mcp-<server> toggle that server in this chat, e.g. /mcp-unity-mcp
first run: expose its tools here · next run: hide them here
細粒度子命令:
/mcp what is in the pool and what this chat can call right now
/mcp list every pool server, its transport and its state here
/mcp on <name> expose a server in this chat
/mcp <name> shorthand for toggling it here
/mcp off <name> hide it here again
/mcp tools <name> the tool names currently published
/mcp refresh <name> re-read the server's tool list (use after starting the app behind it)
/mcp test <name> run the MCP handshake and report latency and tools
別名包括 ls、enable、disable、probe、reload。只有插件自有池中的服務器可被暴露;發現項須先複製進池。命令執行結果展示在對話中,不進入模型上下文。
設置頁與 API¶
設置頁通過插件連接上的 HTTP 路由與宿主通信:GET/HEAD /api/dsh-mcp-manager/state?workspace= 獲取快照;POST /api/dsh-mcp-manager/action 執行變更與探測。POST 須帶 x-dsh-mcp-manager: 1、JSON Content-Type,並在發送時帶同源 Origin,否則返回 403/415。
適用場景與注意¶
適合在本機同時使用多種 AI 客戶端、需要統一查看 MCP 配置、在接入前做握手驗證、並在 DSH 單會話裏臨時掛載某 MCP 工具鏈的開發者。admin-security 分類與實現相關:發現配置中的密鑰在到達瀏覽器前會掩碼(•••••• 加末四位),除用於預填編輯器的 spec 動作外;跨源變更會被拒絕。
安裝前請自行查閱源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,探測 stdio 即執行配置命令,只應對你本也會運行的服務器做 probe。DSH 生態強調「一切皆插件」;社區目錄 skillhub.cn 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
@zarpyk/dsh-mcp-manager 把分散在各客戶端的 MCP 定義、真實連通性測試和 DSH 內可編輯池收到同一設置頁,並用 /mcp-* 按聊天暴露工具,減少重複配置與「配了但連不上」的排查成本。