dsh-mcp-manager:在 DSH 里管理 MCP 服务器

前言

在 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 文件。

典型用法

  1. 先看现状:Agent 调用 mcp_manager_list,或 node cli/mcp.js list --json。
  2. 从 registry 安装:CLI node cli/mcp.js install <registry-name> --yes,或 Agent mcp_manager_search 后 mcp_manager_add(source: "registry"),预演确认再 confirm: true。
  3. 粘贴 npm / GitHub / URL / JSON 新增:mcp_manager_add 或 node cli/mcp.js add "...",同样先预演再确认。
  4. 握手检查:mcp_manager_probe 或 node cli/mcp.js probe。
  5. 补凭据:node cli/mcp.js credential <id> set <value> 或 mcp_manager_credential;市场装完的条目常需这一步。
  6. 临时停用:mcp_manager_toggle 或 node cli/mcp.js disable <id> --yes。

写入管线在变更前做 .bak 备份;显式确认(confirm: true 或 --yes)是默认安全策略的一部分。

适用场景与注意

适合需要在 DSH 里反复增删 MCP、对照 registry 安装、批量探测连通性、轮换 API 密钥的开发者或运维,而不想每次手改 YAML 并对照官方字段文档试错。

使用前请注意:

  • 插件以当前 DSH 进程权限运行;mcp_manager_add、CLI add / 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 安装。

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

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

Xiaoye