dsh-mcp-manager:在 DSH 侧栏里管理 MCP 服务,不必手改 YAML

前言

在 DeepSeek Harness(DSH)里接 MCP(Model Context Protocol)时,常见做法是把各 server 写进 profile 的 YAML:改一行就要找配置、重启或等插件挂载,连接是否成功也要靠日志或对话里试工具。对需要经常换 server、调参数、验证握手的开发者来说,入口偏深、状态不直观。

下面介绍社区插件 dsh-mcp-manager(维护者 HalcyonAzure)。它在 DSH 左侧栏提供 MCP servers 面板,用表单增删改 server,并在保存前做 Test connection;与 Settings → MCP servers、Plugins → MCP servers → Configure 共用同一套编辑器。分类上属于 客户端 插件(client.js 注册侧栏与主区 UI),主机侧则用 @deepseek-ai/dsh-mcp-client 挂载各 server。

这是什么

dsh-mcp-manager 的定位是:在 DSH 图形界面里管理 MCP server 列表,替代反复手改 profile YAML。Server 列表保存在该插件行的 config.servers 中,由 UI 经 DSH 配置编辑器写入。

当前 package 版本为 1.1.0,许可证 MIT。DSH 社区目录页:https://www.skillhub.cn/plugins/HalcyonAzure/dsh-mcp-manager;源码与说明:https://github.com/HalcyonAzure/dsh-mcp-manager(仓库另有 README.zh.md)。

核心功能

经 README 核实,插件提供的能力包括:

  1. 侧栏入口:左侧 MCP servers 打开主栏全页,server 状态一步可达,不必只在 Settings 里翻。
  2. 两种传输:stdio(本地命令)与 streamable HTTP(URL)。
  3. 保存前测试:Test connection 执行 MCP 握手并列出 server 暴露的工具。
  4. 运行态:每行有启用开关;状态为 connected / connecting / failed / disabled;单次调用超时可设 1–600 秒,默认 60 秒。
  5. 密钥与配置分离:普通环境变量、Header 写在行配置里;密钥环境变量与 Secret Header 的值进 DSH credential store,行里只保留 credential 密钥名。
  6. 只读 Agent 工具:mcp_servers(list / test),模型可查看连接情况,不能增删改 server 配置。
  7. 工具命名:遵循 mcp__<server-name>__<tool-name>。

依赖说明:需要带 sidebar.panellist、main 槽位以及 @deepseek-ai/dsh-mcp-client 的 DSH 构建;README 写明当前 DSH 发行版均具备。

安装与启用

官方步骤如下,请按界面操作,不要自行拼接未在文档出现的 CLI 安装串。

  1. 打开 Plugins → Add plugin,粘贴仓库地址:
https://github.com/HalcyonAzure/dsh-mcp-manager
  1. 在左侧栏点 MCP servers(或 Settings → MCP servers)。
  2. 点 Add server,填写连接信息,Test connection,再 Save。

注意:Save 会重启该插件行,所有 server 会重连,进行中的 MCP 调用会被打断。

添加 server

stdio(本地程序)

字段 含义
Name 字母、数字、-、_,最多 32 字符;作为工具名前缀
Command 绝对路径或命令名,例如 npx 或 /usr/local/bin/my-server
Arguments 每行一个参数
Environment variables 非密钥的普通值
Secret environment variables credential 键名 + 值(值写入凭证库)
Working directory 可选

streamable HTTP(远程)

字段 含义
Name 规则同上
URL http:// 或 https:// 的 MCP 端点
Headers 普通请求头
Secret headers credential 键名 + 值,存入凭证库

密钥值留空表示保留已存储的值。

行状态指示

每行有点状标记与工具数量:connected(绿)、connecting(琥珀)、failed / not connected(红)、disabled(灰)。失败时会在行下显示 server 返回的错误文本。

典型配置示例

除 UI 外,也可在 profile patch 中直接写入插件行配置(与 README 一致):

- id: mcp-manager
  name: dsh-mcp-manager
  config:
    servers:
      - name: filesystem
        enabled: true
        transport: stdio
        command: npx
        args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp']

stdio 示例中,command 为 npx,args 拉起 @modelcontextprotocol/server-filesystem 并指定目录;保存后插件会为每个启用的 server 挂载一个 @deepseek-ai/dsh-mcp-client 子实例。

架构与安全

主机侧(index.js)维护 server 列表,为每个启用的 server 挂载子 client,并向 UI 提供 api/mcp-manager.servers 与 api/mcp-manager.test。客户端(client.js)注册侧栏、主面板、Settings 分区与插件行页,为通过 DSH 客户端模块加载的纯 JavaScript,无构建步骤。

使用前建议知晓:

  • stdio server 以你当前用户身份执行你配置的命令,权限等同本机账户;只添加可信来源。
  • 增删改 server 仅限用户在 UI 操作;Agent 工具不能改配置。
  • 交给 stdio 进程的环境会剔除名称匹配 *KEY*、*PASSWORD*、*SECRET*、*TOKEN* 以及 DSH_* 的变量。
  • 密钥在插件 mount 时解析;缺失时会在行上报错,不会静默用空值顶替。

适用场景与注意

适合需要在 DSH 里频繁试用、开关、调试多个 MCP server 的开发者:侧栏一键看状态、保存前握手测工具列表,比纯 YAML 迭代更快。

安装社区插件前,习惯上应自行查看源码与 MIT 许可证,并确认与当前 DSH 版本匹配。DSH 生态强调「一切皆插件」;skillhub.cn 上的插件目录为社区站点,与 DeepSeek / 幻方无官方从属关系,本文介绍的仓库亦属社区维护(HalcyonAzure)。

本地二次开发时,README 说明可将检出目录作为本地 bundle 在 Plugins → Add plugin 中选择路径安装,改文件后刷新页面即可,无需 bundler。

结尾

dsh-mcp-manager 把 MCP server 列表从 YAML 编辑搬到侧栏与 Settings 的统一 UI:支持 stdio 与 HTTP、连接测试、凭证库托管密钥,并为 Agent 提供只读的 mcp_servers 查询。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye