前言¶
在 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),点击展开下拉面板;随会话切换自动刷新。 - 分级展示:运行中 / 连接中 / 重连中 / 未连接 / 已停用 / 失败;每台显示传输方式、端点、工具数。
- 服务器管理:增删改查(可选项目级或全局)、连接 / 断开 / 重连;支持手工表单与粘贴
mcpServersJSON 导入(仅 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¶
模型应遵循两级发现:
- 调用
ws_mcp_list或ws_mcp_search找到目标服务器与工具。 - 调用
ws_mcp_detail获取该工具的完整入参 schema。 - 调用
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