@zarpyk/dsh-mcp-manager:本機 MCP 服務發現、探測與會話內暴露

前言

在 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-* 按聊天暴露工具,減少重複配置與「配了但連不上」的排查成本。

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

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

小夜