前言¶
在 DeepSeek Harness(DSH)里接入 Model Context Protocol(MCP)服务时,常见做法是把每个 MCP server 写进 harness 的组合配置里。改一个 server 往往意味着改配置并重启宿主进程,调试 transport、命令行参数或远程 URL 时成本偏高。
@zhengjunyao/dsh-mcp-manager(GitHub:zhengjy01/dsh-mcp-manager)把「当前有哪些 MCP server」收敛成一份 JSON 配置文件,并在 Web 设置页与 Agent 工具里提供增删改、启用禁用与连通性测试;连接与断开发生在运行时,文档明确说明全程不需要重启 DSH。
这是什么¶
维护者 zhengjy01,npm 包名 @zhengjunyao/dsh-mcp-manager,当前版本 0.1.2(见仓库 package.json),许可证 MIT。分类上属于 DSH 社区目录中的工作流类插件;目录页独立于 DeepSeek / 幻方,并非官方应用商店。
插件定位:MCP server manager for DeepSeek Harness——在 Web GUI 与 Agent 侧管理 stdio、Streamable HTTP 两类 transport 的 MCP server,运行时挂载与卸载,不自行实现 MCP 协议,而是驱动 harness 自带的 @deepseek-ai/dsh-mcp-client 桥接。
运行环境要求(资料原文):
- DSH
>= 0.1.5-rc.1 - Node
^22.19.0 || >=24.0.0
核心功能¶
下面介绍插件在资料中明确列出的能力。
Web 侧:「MCP 管理」卡片¶
刷新 Web GUI 后,在左侧 Settings 中找到 MCP 管理 卡片。卡片提供总开关、server 列表,以及每个 server 的阶段标识(如 active / starting / waiting / error / stopped;界面文案也会用 ● connected / ◌ no tools / ✖ failed / ○ not loaded 等状态描述)。
对单个 server 可以 添加 / 编辑 / 启用 / 测试 / 移除。添加时需指定名称(成为工具前缀 mcp__<name>__)、transport 类型,以及 stdio 的 command / args / env / cwd,或 Streamable HTTP 的 url / headers。保存后 server 应立刻出现在列表中;成功时 badge 从 starting 变为 active,失败则停在 error 并展示原因。Test 会真实连一次;对未落盘的草稿配置也可以试连,避免 typo 写进磁盘。
Agent 工具:mcp_manager_*¶
与 Web 卡片等价的管理能力可通过 Agent 工具调用:
mcp_manager_statusmcp_manager_listmcp_manager_addmcp_manager_updatemcp_manager_remove(默认预览,需confirm: true才执行)mcp_manager_testmcp_manager_importmcp_manager_reload
各 MCP server 暴露的工具在会话中命名为 mcp__<serverName>__<toolName>。禁用或移除 server 时,其工具会立即注销,无需重启 DSH。
两种 transport¶
- stdio:本地子进程,配置
command、args、env、cwd。 - Streamable HTTP:远程端点,配置
url、headers。
两层开关¶
| 开关 | 位置 | 关闭时的效果 |
|---|---|---|
| installation | profile bundle(cordis.patch.yml 所在行) |
插件不挂载:无工具、无面板 |
| runtime | 配置文件或面板上的 disable | 所有 MCP server 断开,所有 mcp__* 工具注销;面板与 mcp_manager_* 仍保留,可再打开 |
安装与启用¶
文档强调:任意步骤都不需要重启 DSH。把插件加入 profile 后,宿主会自行重载插件树(此处未设置 dsh.profile.patchReload,即 live reload);你只需刷新浏览器即可看到面板。
1、安装插件(官方命令):
dsh plugin --profile web add @zhengjunyao/dsh-mcp-manager
# 从本地 checkout:dsh plugin --profile web add link:/path/to/dsh-mcp-manager
预期:命令末尾出现 + @zhengjunyao/dsh-mcp-manager,且 profile 的 dependencies 与 load list 均包含该包。
2、打开 Settings → MCP 管理,确认总开关、列表与各 server 的 phase badge 可见。
典型用法¶
添加并确认工具已注册¶
在卡片中点击 Add,填写名称与 transport 相关字段后保存。可通过 server 的 tool count、展开的工具名,或让 Agent 调用 mcp_manager_list 确认:tool count > 0,且名称形如 mcp__<name>__<tool>,Agent 可立即调用。
可选:探测连通性¶
对某 server 点击 Test,或调用 mcp_manager_test。成功则给出成功信息;失败会指明原因(如 command not found、端口未开、鉴权失败等)。
配置文件¶
默认路径:$DSH_HOME/dsh-mcp-manager.json(默认即 ~/.dsh/dsh-mcp-manager.json,权限 mode 0600)。尊重 DSH_HOME 环境变量。手改 JSON 后,在面板执行 reload config。
示例结构(摘自 README):
{
"version": 1,
"config": { "enabled": true, "announceToAgent": true },
"servers": [
{
"name": "garmin",
"transport": "stdio",
"enabled": true,
"command": "/opt/homebrew/bin/uvx",
"args": ["garmin-mcp"],
"env": {}, "cwd": "",
"url": "", "headers": {},
"toolCallTimeoutMs": 60000,
"reconnect": {}
}
]
}
name 须匹配 [A-Za-z0-9_-]{1,32}(与 harness bridge 一致)。上例会发布 mcp__garmin__<tool>。
适用场景与注意¶
适合谁:需要在 DSH Web 会话里频繁增减、切换或调试 MCP server(本地 stdio 或远程 HTTP)的开发者;希望 Agent 通过 mcp_manager_* 自动化同一套配置的场景。
权限与安全:MCP server 以当前 DSH 进程的用户与权限启动(stdio 会执行你配置的 command)。安装插件前请阅读仓库源码与 MIT 许可证,自行评估要连接的 MCP 包与远程 URL;配置文件可能含环境变量、Header 等敏感信息,默认 0600 仅降低误读风险,不能替代对命令与 URL 的审查。
设计说明(便于排错):插件通过「解析 ladder」优先使用运行中 harness 自带的 @deepseek-ai/dsh-mcp-client,避免插件自带客户端版本与宿主不一致。实现上不调用 tools.restrict() 做批量 reconciling,而是依赖 bridge 在连接/断开时注册与注销工具,以避免在高工具数场景下对宿主 event loop 造成过高开销(README 中有与旧实现的对比说明)。
社区信息:GitHub 仓库 zhengjy01/dsh-mcp-manager;插件目录页 skillhub.cn/plugins/zhengjy01/dsh-mcp-manager。DSH 生态理念是「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
若你的痛点是「改 MCP 就要重启 DSH」,可以把 server 列表交给 dsh-mcp-manager:Web MCP 管理 与 mcp_manager_* 工具统一管理 stdio / Streamable HTTP,工具以 mcp__<server>__<tool> 进入当前会话,禁用即卸载。安装命令见上文;细节以 README 与仓库为准。
- 目录页:https://www.skillhub.cn/plugins/zhengjy01/dsh-mcp-manager
- GitHub:https://github.com/zhengjy01/dsh-mcp-manager