dsh-mcp-manager:在 DSH 里运行时管理 MCP 服务,无需重启宿主

前言

在 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_status
  • mcp_manager_list
  • mcp_manager_add
  • mcp_manager_update
  • mcp_manager_remove(默认预览,需 confirm: true 才执行)
  • mcp_manager_test
  • mcp_manager_import
  • mcp_manager_reload

各 MCP server 暴露的工具在会话中命名为 mcp__<serverName>__<toolName>。禁用或移除 server 时,其工具会立即注销,无需重启 DSH。

两种 transport

  1. stdio:本地子进程,配置 command、args、env、cwd。
  2. 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye