前言¶
在 DeepSeek Harness 之外,你通常会在多个 AI 开发工具里声明同一类 MCP 服务器:有的在 JSON 里,有的在 YAML 中;键名不同、字段名不同、超时单位也不同。手动把这些配置迁移到 DSH,或者在不同工具之间同步,非常容易出错。dsh-mcp-manager 插件提供了一个统一的设置页,读取本机各工具的配置文件,将 MCP 服务器按文件分组展示,再通过开关决定是否挂载到 DeepSeek Harness,并支持一次真连探活。
插件简介¶
dsh-mcp-manager 由 wangbobo-coder 维护,是一个 DeepSeek Harness 插件。它扫描 Claude Desktop、Claude Code、Cursor、Windsurf、VS Code、Roo Code、Gemini CLI、Qwen Code、Qoder IDE、OpenCode、Trae、Trae CN、Copilot CLI、Kiro、Zed、Continue、CodeBuddy 等工具的配置文件,将它们整合到同一张卡片视图里,每条服务器带有一个挂载开关。插件不依赖外部 SDK,没有运行时依赖,也不需要构建。
安装与启用¶
插件通过插件管理页安装,也可通过 agent 工具安装。
方式一:插件管理页
- 打开 DeepSeek Harness 设置。
- 进入「插件管理」。
- 搜索
@oh-agent/dsh-mcp-manager。 - 点击安装。
方式二:让 agent 安装
在对话中直接说「安装 @oh-agent/dsh-mcp-manager」,等价于:
plugin_manager action: install_bundle target: "@oh-agent/dsh-mcp-manager@0.1.3"
安装后会在设置页增加一个「MCP」入口,同时暴露一个 agent 工具 mcp_manage。
主要功能¶
1. 多工具配置扫描¶
插件内置 18 种工具的适配器,通过读取对应配置文件,解析出服务器定义。适配器使用统一的路径解析函数(appData、xdgConfig、vscodeUserDir、zedConfig 等),支持 Windows、macOS、Linux 以及项目级路径。不同工具的键名差异被适配层统一映射到标准字段,例如 serverUrl、url、httpUrl、streamable-http、environment、command 数组等。
2. 按文件分组展示¶
页面按配置文件分组,每个文件一张卡片。卡片头部显示工具名、服务器数量和路径(显示时用 %APPDATA%\… 风格,完整路径在 tooltip 中)。每行显示传输方式、命令或 URL、共用该定义的工具数量、探活结果以及挂载开关。卡片默认可折叠,筛选生效时会展开所有卡片,确保隐藏的命中能被检索到。
3. 真连探活¶
每条服务器可以触发一次探活:插件会通过标准 JSON-RPC 流程与服务器建立连接(stdio 或远程 POST),检查 initialize、notifications/initialized 和 tools/list,仅读访问不调用任何工具。探活结果会显示在界面上,帮助确认服务器是否可用。
4. 挂载与卸载¶
开关的含义是「这个服务器有没有挂载进 DeepSeek Harness」。插件根据服务器在 DSH 中的存在形式选择不同的写入路径:
- 我们自己写的
- insert:行:开关打开时重写该行,关闭时删除该行,操作后文件回到精确的原始字节。 - 已存在的
dsh-mcp-client行:通过pluginManager.setPluginEnabled(rowId, …)热卸载该行,工具从列表消失。 - 用户自己写的
- insert:行:插件会追加或移除自己的覆盖项(- id: …或disabled: true)。 - 只在别的工具中声明且被打开:在 DSH 组合文件中追加一条新的
- insert:行,Loader 重排后通常 1–4 秒生效,最多等待 8 秒并上报live: true或activating: true。
插件不会为了开关而给其他工具添加 enable 字段,因为 Qoder、Trae 等工具的配置文件中根本没有此类键。
5. 安全写入机制¶
写入路径围绕「只重写我们能证明是自己写的东西」构建:
- 归属台账:每次写入记录
{path, serverName, fingerprint},同名写入只有在磁盘上的定义指纹一致时才生效。 - 绝不覆盖别人的服务器:名字已被非我们写入的条目占用时,新服务器改用带后缀的名字。
- 乐观并发:传入扫描时的文件哈希,文件变更时返回
409和当前哈希,提示重新扫描。 - 原子替换:写临时文件、
rename覆盖目标、再读回并重新解析。 - 每次修改前备份:按
backupsToKeep保留,可在页面还原。 - 凭据掩码:按键驱动的掩码机制,短 token 会被掩码,间接引用(如
${FIGMA_API_KEY})原样显示。覆盖字面值所有可能藏身的地方(env、headers、extra、命令行参数等)。掩码的定义永远写不回浏览器。 - 自定义头校验:变更请求需携带
x-dsh-mcp-manager: 1,叠加在 JSON content-type 和 loopback 来源校验之上。
6. 挂载名处理¶
@deepseek-ai/dsh-mcp-client 要求 serverName 匹配 /^[A-Za-z0-9_-]{1,32}$/,现实中大量中文名、带空格的英文名无法直接使用。插件导出 dshMountName(name) 函数:先 sanitize,若结果丢失信息(中日韩字符、空格、超长)则追加原名的短哈希。该函数是纯函数且全域一致,扫描、开关、移除都从同一输入计算,避免撞名导致开关翻转。
使用示例¶
安装后进入「设置 → MCP」,你会看到类似技能页的布局:
- 顶部为标题行与操作按钮。
- 四格汇总条:服务器数量、文件数量、已挂载进 DSH 的数量、包含字面凭据的数量。
- 筛选行:自由文本搜索(名字、命令、路径)加两个下拉(按工具、按挂载状态)。
- 配置文件卡片列表。
点击某一行会打开对话框,而不是原地展开。对话框列出声明该服务器的所有文件、统一后的定义、可直接粘贴进 cordis 组合的 YAML 行,以及「复制到…」按钮,方便把定义推送到其他工具。
适用场景与注意¶
适合需要同时使用多个 AI 开发工具、希望在 DeepSeek Harness 中统一管理 MCP 服务器的开发者。插件以当前 DSH 进程权限运行,安装前建议查看源码与许可证。
总结¶
dsh-mcp-manager 提供了一个集中管理本机各 AI 工具 MCP 配置的设置页,按文件分组展示、真连探活、只在 DSH 内挂载/卸载,不改动其他工具的配置。安装后通过开关即可控制挂载,无需手动编辑多个配置文件。
- 插件主页:https://www.skillhub.cn/plugins/wangbobo-coder/dsh-mcp-manager
- 源码仓库:https://github.com/wangbobo-coder/dsh-mcp-manager