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

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

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

Xiaoye