前言¶
在 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-* 按聊天暴露工具,减少重复配置与「配了但连不上」的排查成本。