前言¶
在 DeepSeek Harness(DSH)里接入一台 MCP 服务器,常见做法是手工改 ~/.dsh/cordis.patch.yml:新条目要放在 insert: 列表里,serverName 不能重复,凭据也不能以明文写进 patch。任意一处不符合官方 @deepseek-ai/dsh-mcp-client 契约,条目可能挂不上,或配置重载直接失败。社区插件 dsh-mcp-manager(维护者 shiliu153,分类 admin-security)把登记、探测、启停、删除和凭据轮换收敛成带校验的操作,并对接官方 MCP Registry 做发现与安装。
这是什么¶
dsh-mcp-manager 是 DSH 社区 bundle:对 patch 里已登记的 MCP 服务器提供搜索、查看、探测、安装、编辑、启停、删除与凭据轮换。写入路径统一走 DSH 加载器与官方字段规则校验,通过后才原子落盘并保留 .bak;未通过校验的候选内容不会写入实际文件。同一套引擎驱动 Agent 工具(mcp_manager_*)、命令行 cli/mcp.js 与 Web 面板;市场以 MCP Registry 为唯一目录源,不引入绕过 patch 管线的路径。
目录页:https://www.skillhub.cn/plugins/shiliu153/dsh-mcp-manager
源码:https://github.com/shiliu153/dsh-mcp-manager
核心功能¶
Agent 工具¶
安装后可用九个工具。写入类工具默认只预演:先返回将要写入的内容与校验结果,确认无误后以 confirm: true 再次调用。
| 工具 | 用途 | 需确认 |
|---|---|---|
mcp_manager_list |
列出已登记服务器,凭据已掩码 | — |
mcp_manager_search |
搜索官方 MCP Registry | — |
mcp_manager_probe |
对单台或全部服务器真实握手 | — |
mcp_manager_validate |
按官方 mcp-client 规则校验条目 | — |
mcp_manager_credential |
定位、掩码显示或轮换凭据 | — |
mcp_manager_add |
从粘贴地址新增;source: "registry" 时按 registry 名解释 |
是 |
mcp_manager_update |
替换某条目的 config: 子树 |
是 |
mcp_manager_toggle |
启用或禁用 | 是 |
mcp_manager_remove |
移除条目 | 是 |
验证插件是否挂载:调用 mcp_manager_list。有返回即表示已挂载;空列表在新环境下也属正常。
支持的粘贴格式¶
mcp_manager_add 与 CLI add 接受四种形式,serverName 由输入推导,可在预演阶段调整:
| 粘贴内容 | 示例 |
|---|---|
| npm 包名 | @modelcontextprotocol/server-memory |
| GitHub 仓库 | https://github.com/modelcontextprotocol/servers |
| MCP 端点 | https://mcp.example.com/mcp |
| JSON 配置 | {"command":"npx","args":["-y","@upstash/context7-mcp"]} |
命令行¶
与 Agent 工具共用引擎,零外部依赖,无需 harness 即可运行(包内提供 dsh-mcp 入口 ./cli/mcp.js)。常用子命令示例:
node cli/mcp.js list [--json]
node cli/mcp.js probe [--id <id>] [--timeout 60]
node cli/mcp.js search <query> [--limit 20] [--json]
node cli/mcp.js install <registry-name> [--version <v>] [--yes] [--no-probe]
node cli/mcp.js add "<npm-package | github-url | mcp-url | json>" [--yes] [--no-probe]
node cli/mcp.js enable|disable <id> --yes
node cli/mcp.js remove <id> --yes
node cli/mcp.js credential <id> get|set <value>
缺省 patch 路径为 $DSH_HOME/cordis.patch.yml 或 ~/.dsh/cordis.patch.yml;可用 --file <path> 指定。退出码:0 成功,1 失败,2 用法错误。
Web 面板与市场¶
启用后,侧边栏插件页下的 DSH MCP 管理器 列出已登记服务器:状态点区分「已连接 / 已启用未连接 / 已禁用 / 无法读取实时注册表」。支持探测、编辑 config: 子树(校验并预览后再写入)、启停、删除与新增(粘贴四种格式之一解析预览后写入)。面板头部可一键并发探测全部服务器。
市场标签只读:搜索走官方 registry(仅按名称匹配,界面会说明本地重排逻辑)。stdio 条目展示完整将要执行的命令行;远程条目展示 URL。市场安装不写凭据——缺秘密字段时空缺而非占位,装完后首次探测 401 表示尚未补凭据,可用 CLI credential set 或 mcp_manager_credential 补上。面板不允许写入原始 !!js 表达式;凭据轮换仅在 Agent 工具与命令行提供。
安装与启用¶
把下面一行交给 agent,或在 Web 侧边栏插件页安装同一地址:
plugin_manager install_bundle https://github.com/shiliu153/dsh-mcp-manager
安装完成后即可使用 mcp_manager_* 工具;也可在插件目录内用 node cli/mcp.js 独立操作 patch 文件。
典型用法¶
- 先看现状:Agent 调用
mcp_manager_list,或node cli/mcp.js list --json。 - 从 registry 安装:CLI
node cli/mcp.js install <registry-name> --yes,或 Agentmcp_manager_search后mcp_manager_add(source: "registry"),预演确认再confirm: true。 - 粘贴 npm / GitHub / URL / JSON 新增:
mcp_manager_add或node cli/mcp.js add "...",同样先预演再确认。 - 握手检查:
mcp_manager_probe或node cli/mcp.js probe。 - 补凭据:
node cli/mcp.js credential <id> set <value>或mcp_manager_credential;市场装完的条目常需这一步。 - 临时停用:
mcp_manager_toggle或node cli/mcp.js disable <id> --yes。
写入管线在变更前做 .bak 备份;显式确认(confirm: true 或 --yes)是默认安全策略的一部分。
适用场景与注意¶
适合需要在 DSH 里反复增删 MCP、对照 registry 安装、批量探测连通性、轮换 API 密钥的开发者或运维,而不想每次手改 YAML 并对照官方字段文档试错。
使用前请注意:
- 插件以当前 DSH 进程权限运行;
mcp_manager_add、CLIadd/install以及 stdio 类 market 条目会触发本机命令(例如npx -y <包>),等同于在本机执行第三方代码。安装前应阅读仓库源码与许可证(包版本在资料中为 0.5.0,以仓库当前package.json为准)。 - Registry 为任何人可发布,市场不表示条目经审核;不支持
sse传输及cargo/nuget/mcpb包类型的条目不会在市场展示。 - 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本包是社区贡献的 admin-security 类工具。
结尾¶
dsh-mcp-manager 把 cordis.patch.yml 上的 MCP 生命周期操作收成一条带四重校验与原子写入的管线,并让 Agent、CLI 与 Web 共用同一实现。若你已在 DSH 里接多个 MCP,可先 mcp_manager_list 再按需探测或从 registry 安装。