dsh-mcp-manager:为 DSH 增加运行时 MCP 服务器管理

前言

在 DSH 中使用 MCP 服务器时,如果只在配置里静态接入,增删服务器、启停连接或重连通常都需要改配置并重启。dsh-mcp-manager 为 DSH 提供运行时 MCP 服务器管理能力,把添加、删除、启停和重连放到插件内完成,并把服务器注册表持久化到本地 JSON 文件。

下面介绍它的功能、安装方式、典型用法和需要注意的边界。

这是什么

dsh-mcp-manager 是一个 DeepSeek Harness(DSH)插件组合包,用于为 dsh 提供运行时 MCP 服务器管理能力。

它支持两种传输方式:

stdio
streamable-http

桥接工具沿用以下命名契约:

mcp__<serverName>__<rawName>

这与 @deepseek-ai/dsh-mcp-client 保持一致。

许可证为 MIT。package.json 声明 engines 要求:

node >=20

核心功能

运行时管理

插件支持在运行过程中添加、删除、启停和重连 MCP 服务器。

服务器注册表使用持久化 JSON,默认路径为:

$DSH_HOME/mcp-manage/servers.json

重启后会自动重连。

智能体工具

插件提供六个智能体工具:

mcp_manage_list
mcp_manage_add
mcp_manage_remove
mcp_manage_set_enabled
mcp_manage_reload
mcp_manage_tools

这些工具用于在会话中对 MCP 服务器做管理操作。

Web UI

Web UI 提供:

设置 → MCP 服务器

页面可以可视化添加、编辑、启停、重连和删除服务器,并查看状态、错误与工具列表。

运行细节

  • envheadersurl 支持 ${VAR} 展开。
  • 注册表文件采用原子写入。
  • 断线后按指数退避重连。
  • 监听 MCP tools/list_changed,进行工具列表热同步。
  • stdio 子进程环境会剔除凭据形状变量与全部 DSH_* 变量,再合并显式 env

安装与启用

安装命令如下:

dsh plugin --profile <name> add github:HenC49/dsh-mcp-manager

安装后,重启该 profile(例如 dsh web 等)生效。当前生产 Web profile 的 HMR 默认关闭,新增或更新插件包后需要重启宿主。

卸载命令:

dsh plugin --profile <name> remove dsh-mcp-manager

注意,卸载不会删除:

$DSH_HOME/mcp-manage/servers.json

其中可能包含 env/headers 等敏感信息。如果不再需要该配置,彻底清理时手动删除:

$DSH_HOME/mcp-manage/

典型用法

在会话中添加服务器

可以直接在会话中描述需求:

帮我添加一个 filesystem MCP 服务器,命令 npx -y @modelcontextprotocol/server-filesystem /Users/me/project

模型会调用 mcp_manage_add 来添加该服务器。

在 Web UI 中维护

进入 Web UI 的:

设置 → MCP 服务器

可以添加、编辑、启停、重连或删除服务器,并查看连接状态、错误信息和已注册工具。

手工编辑注册表

手工编辑:

$DSH_HOME/mcp-manage/servers.json

改动会在下一次宿主重启或 mcp_manage_reload 后生效。该注册表文件没有文件监听。

运行测试

pnpm install
pnpm test

适用场景与注意

dsh-mcp-manager 适合需要在会话或 Web UI 中维护 MCP 服务器、并尽量减少改配置和重启的场景。它也适合希望保持 @deepseek-ai/dsh-mcp-client 工具命名一致的 DSH 部署。

使用前需要明确:该插件会运行在当前 dsh 宿主进程中。安装前应检查源码与许可证,确认其权限模型符合本机安全要求。

具体注意:

  • mcp_manage_add 可以让智能体在宿主进程中 spawn 任意命令,与 bash 工具权限同级。如果部署上需要收紧,建议通过权限预设启用审批。
  • ${VAR} 展开读取 dsh 宿主进程环境变量。不要把宿主敏感凭据变量名透传给不可信 MCP 服务器。
  • 当前仅桥接 tools。MCP resources 与 prompts 与 dsh-mcp-client 一样暂缓。
  • HTTP 传输的可达性错误按请求逐次暴露,不触发 stdio 式进程守护重启。
  • 配置页当前每次打开时读取一次列表,操作成功后刷新,不主动订阅其它浏览器标签页的实时变化。

链接

仓库地址:

https://github.com/HenC49/dsh-mcp-manager
羽毛球分组比赛记分
小程序二维码

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

Xiaoye