@it-glen/dsh-mcp-manager:在 DSH Web 里统一管理 MCP 服务器

前言

在 DeepSeek Harness(DSH)里接 MCP,常见做法是手写 mcpServers 配置、重启进程,再在会话里面对一长串 mcp__<id>__<tool> 工具名。服务器一多,系统提示词里的工具清单会迅速膨胀,项目目录和全局常连也难以分开维护。

@it-glen/dsh-mcp-manager 是社区维护者 it-glen 发布的 DSH 插件(npm 包名 @it-glen/dsh-mcp-manager,SkillHub 分类为工作流)。它在 Web 会话界面提供右上角浮窗与分级面板,负责 MCP 的增删改查、连接监控与配置导入;实际连接与协议由官方 @deepseek-ai/dsh-mcp-client 承担(宿主 cordis loader 按包名装载到 dsh 安装内的副本,不随本包分发,也无需额外安装)。模型侧只暴露四个中间层原子工具,用两级发现控制上下文成本。

这是什么

一句话:DSH 的 MCP 服务器管理插件——浮窗 + 分级面板 + 表单 / JSON 导入接入,不预设任何服务器。

维护者:it-glen。源码与文档:GitHub - it-glen/dsh-mcp-manager。社区目录页:SkillHub 插件页。

核心功能

界面与运维

  • 右上角浮窗:状态点与计数摘要(例如 MCP 2/3),点击展开下拉面板;随会话切换自动刷新。
  • 分级展示:运行中 / 连接中 / 重连中 / 未连接 / 已停用 / 失败;每台显示传输方式、端点、工具数。
  • 服务器管理:增删改查(可选项目级或全局)、连接 / 断开 / 重连;支持手工表单与粘贴 mcpServers JSON 导入(仅 JSON,不扫描其他应用配置)。
  • 两种传输:stdio(本地子进程,env 支持 ${ENV} 引用)与 streamable-http(远程,header 支持 ${ENV},自动回传 Mcp-Session-Id)。
  • 断线重连:有界指数退避(500ms 起、30s 上限、10 次后停止后台重试;手动连接或 ws_mcp_call 可再试)。

配置分级与工作空间

级别 路径 用途
项目级 <项目根>/.dsh/@it-glen/dsh-mcp-manager/mcp.json 随仓库走,可提交 git 团队共享
全局 <DSH_HOME>/@it-glen/dsh-mcp-manager/mcp.json 常连服务器;storePath 留空时即此默认路径

两级配置文件中的服务器列表支持热加载,增删、启停、改配置即时生效,无需重启 DSH。切换会话工作目录时,自动加载当前目录对应的 MCP 集。

中间层按调用方会话当前 cwd 路由到对应连接池;服务器全名 @<root>/<server> 做一致性校验,防止跨工作空间串台。cwd 无项目时回落全局虚拟 root @global。

模型可见的四个原子工具

全部 MCP(项目级、全局、运行时注入)一律经中间层访问,宿主虽会注册 mcp__<id>__<tool>(id 为按工作空间与服务器名分配的不透明短串),但这些名字会从模型工具列表中摘除,不得直呼。

工具 作用
ws_mcp_list 完整盘点当前工作空间服务器与工具清单(可先 list 再 detail)
ws_mcp_detail 按 @<root>/<server> + 工具名拉取完整 inputSchema
ws_mcp_search 关键词检索,先搜后调
ws_mcp_call 按全名调用;参数须用 ws_mcp_detail 核对 schema

这样接多台服务器、多个工具也不会挤爆系统提示词里的工具位。

安全与默认值

  • 配置只存 ${ENV} 引用,密钥本身不落盘(0600 权限 + 原子写入)。
  • stdio 子进程环境净化,宿主凭据形状变量不透传;目录摘要与错误路径经 redactor 脱敏。

已废除的配置键 middleware、middlewarePolicy(#767):旧配置里写了不生效,本插件也不会改写。

安装与启用

前提:本机已安装 DeepSeek Harness,且 dsh web 能正常启动。

一键安装(Web profile):

dsh plugin --profile web add @it-glen/dsh-mcp-manager

未全局安装 dsh 时,可用 npx(底层仍调用 pnpm,需本机已装 pnpm 与 Node.js):

npx @deepseek-ai/dsh plugin --profile web add @it-glen/dsh-mcp-manager

更新与卸载:

dsh plugin --profile web update @it-glen/dsh-mcp-manager
dsh plugin --profile web remove @it-glen/dsh-mcp-manager

安装、卸载或更新后需重启一次 dsh web(bundle 层只在启动时组合)。需要固定版本时,在包名后追加 @<版本号>。

典型用法

1. 用浮窗接入服务器

启动 dsh web 并打开会话后,点击右上角 MCP 胶囊,在面板里新增服务器:选项目级或全局,填 stdio 命令或 streamable-http 端点,环境变量与 header 用 ${ENV} 引用。也可直接粘贴与 Cursor 等工具兼容的 mcpServers JSON 文本导入。

2. 在 Agent 会话里调用 MCP

模型应遵循两级发现:

  1. 调用 ws_mcp_list 或 ws_mcp_search 找到目标服务器与工具。
  2. 调用 ws_mcp_detail 获取该工具的完整入参 schema。
  3. 调用 ws_mcp_call,server 使用 @<root>/<server> 全名传入参数。

当前目录无项目时,list / search / detail 会合并「项目 root + @global」;call 放行 @global 下的全局服务器。

3. 调整浮窗位置

入口:Plugin Manager → dsh-mcp-manager → Configure。可改 position(默认 top-right)、offset.x / offset.y、zIndexBase 等;保存后通过 SSE 即时生效,无需重启 dsh web。

非回环 LAN 地址下,按 DSH 安全策略 Configure 可能隐藏;宜从 127.0.0.1 或 SSH 回环隧道管理。

适用场景与注意

适合谁:在 DSH Web 里长期维护多套 MCP、需要项目级与全局分离、又希望控制 Agent 上下文里工具描述体积的开发者与团队。

权限与安全:插件以当前 dsh 进程权限运行 stdio 子进程与网络连接;安装前请阅读 仓库源码 与许可证,只接入可信的 MCP 服务器。

升级边界:当前版本只生成 producer-owned V4 source;升级后若历史会话打不开,需按上游 README「升级与历史会话边界」用 monorepo 维护脚本一次性处理旧 source。

生态说明:DSH 主张「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

@it-glen/dsh-mcp-manager 把 MCP 的配置面、状态面与模型访问面拆开:人用浮窗管连接,Agent 用四个 ws_mcp_* 工具按需发现与调用,项目配置可进 git,全局常连单独存放。若你正在 DSH Web 上堆 MCP,可从目录页或 GitHub 按官方命令安装,重启 dsh web 后即可在会话右上角开始配置。

  • 目录页:https://www.skillhub.cn/plugins/it-glen/dsh-mcp-manager
  • GitHub:https://github.com/it-glen/dsh-mcp-manager
羽毛球分组比赛记分
小程序二维码

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

Xiaoye