dsh-mcp-manager:在 DSH 桌面版里图形化管理 MCP 服务器

前言

DeepSeek Harness(DSH)官方 base bundle 已包含 MCP 客户端 @deepseek-ai/dsh-mcp-client,但每台 MCP 服务器仍要作为一条 insert 条目手工写进 profile 用户层的 cordis.patch.yml。该文件同时是 boot 阶段的输入:顶层必须是 YAML 数组,解析失败会导致应用无法启动,界面上也没有修复入口;手工编辑还容易误伤同文件里的其它 patch。

下面介绍社区插件 dsh-mcp-manager(维护者 VCPr0j3k7,分类:客户端):为 DSH 桌面外壳提供 MCP 服务器的图形化管理界面,支持列出、添加、删除、启用停用、测试连接,以及从本机已有 MCP 配置扫描导入。插件以独立 bundle 装入 profile,不修改官方源码。

这是什么

dsh-mcp-manager 是 DeepSeek Harness 的 Cordis 插件(当前版本 0.1.0,许可证 MIT)。宿主半边在 Node.js 中注册 API 并读写 profile;客户端半边在桌面外壳内的 SPA 中提供侧边栏「MCP 连接器」入口。真正的 MCP 连接仍由官方 @deepseek-ai/dsh-mcp-client 完成,本插件只负责把条目写入 profile 用户层 patch,并在写入前用与 boot 相同的 js-yaml 做校验。

核心功能

已接入

展示当前 profile 中的 MCP 服务器卡片:传输方式、命令或地址、条目 id、连接状态、工具数量、原始配置。支持测试连接、启用停用、删除。连接状态来自宿主:只有 mcp__<serverName>__* 的工具出现在宿主工具注册表中才显示「已连接」;配置已写入但未重启时显示「待重启生效」。

发现

分组展示可一键接入的服务器:其它 AI 客户端配置、其它 DSH 家目录、内置常用目录。内置目录收录可用 npx 一条命令启动的服务器,例如文件系统、长期记忆、顺序思考、Everything 演示、Playwright 浏览器、Context7 文档等。点击「接入」会把已填参数带入添加表单。

添加

支持粘贴导入(mcpServers JSON 片段或一行 npx / uvx 启动命令)与手动表单(stdio / streamable-http)。可先测试再写入,避免重启后才发现连不上。

配置写入约定

本插件只修改 cordis.patch.yml 中由成对标记注释围起的区块(# >>> dsh-desktop:mcp … # <<< dsh-desktop:mcp)。区块外手工编写的 MCP 条目会在界面以「手工条目」只读展示,不能通过本插件修改或删除。profile 的 patchReload 为 startup,因此所有写操作都会提示需要重启 DSH 桌面版后生效;插件无法代为重启宿主进程。

环境要求

项 要求
Node.js ^22.19.0 \|\| >=24
DeepSeek Harness 官方桌面版(Windows),依赖 dsh-desktop-host 的 process.argv 布局与随包 Node / pnpm
官方 base bundle 需包含 @deepseek-ai/dsh-mcp-client
可选 运行时 node_modules 中存在 @modelcontextprotocol/sdk 时,「测试连接」可用

安装与启用

安装分两步;只执行 pnpm add 而不登记 bundle 时,侧边栏不会出现「MCP 连接器」,这是最常见的安装问题。

第一步:把包装进 profile

进入官方桌面版使用的 desktop profile 目录,用随包 pnpm 安装(随包 pnpm 位于 <安装目录>/resources/runtime/pnpm/bin/pnpm.cjs,可用随包 node 执行):

cd ~/.dsh/profiles/desktop
pnpm add "github:VCPr0j3k7/dsh-mcp-manager"

若使用本地目录,将 "github:VCPr0j3k7/dsh-mcp-manager" 换为 "file:<插件目录绝对路径>"。

第二步:登记进 bundle 层栈

编辑 profile 目录下的 package.json,把包名加入 dsh.profile.bundles 数组,例如:

{
  "name": "dsh-profile-desktop",
  "private": true,
  "dependencies": {
    "dsh-mcp-manager": "github:VCPr0j3k7/dsh-mcp-manager"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-mcp-manager"
      ]
    }
  }
}

第三步:重启

修改 package.json 或 cordis.patch.yml 后必须重启 DSH 桌面版;运行中的实例不会热更新。重启后侧边栏应出现「MCP 连接器」。

卸载时可在 profile 目录执行 pnpm remove dsh-mcp-manager,并从 dsh.profile.bundles 中删除对应项后重启。卸载不会自动删除已写入标记区块内的 MCP 条目;如需清除,需手工删除该区块(含起止标记行)。

典型用法

  1. 重启 DSH 后打开侧边栏「MCP 连接器」。
  2. 在「发现」页选择内置或扫描到的服务器,确认参数后接入;或在「添加」页粘贴 JSON / 一行启动命令,先「测试连接」再保存。
  3. 按界面重启提示退出并重新打开 DSH。
  4. 在「已接入」页确认状态为「已连接 · N 个工具」(N 为宿主侧工具数量)。

若需对照手工 YAML 的结构,官方 README 中的示例如下(实际路径与参数以你的环境为准):

- insert:
    - id: mcp-filesystem
      name: "@deepseek-ai/dsh-mcp-client"
      config:
        serverName: filesystem
        transport: stdio
        command: npx
        args: ["-y", "@modelcontextprotocol/server-filesystem", "D:\\work"]

本插件会把等价配置写入标记区块,并在落盘前做 YAML 校验与原子写入。

宿主 API 统一挂在 /dsh-mcp-manager/api 下,例如 GET /mcp/list、POST /mcp/add、POST /mcp/test、GET /mcp/scan 等;客户端通过 /info 的 data.plugin 校验 API 基址。

适用场景与注意

适合谁: 在 DSH 官方 Windows 桌面版上使用 MCP、希望避免直接编辑 cordis.patch.yml 的开发者;需要从 Cursor 等其它客户端或本机其它 DSH 家目录扫描导入配置的用户。

权限与安全: 插件在 DSH 宿主进程权限下运行,读写 profile 与调用 MCP 测试连接均受该权限约束。安装前应阅读 GitHub 仓库 源码与 MIT 许可证,自行评估是否满足你的环境要求。

已知限制(摘要):

  • 修改 MCP 配置必须重启宿主才生效;POST /restart-host 始终返回错误,需手动重启 DSH。
  • serverName 仅允许 [A-Za-z0-9_-]{1,32},与官方 dsh-mcp-client 一致。
  • 首次通过 npx 启动部分内置服务器需要联网拉包。

DSH 生态强调「一切皆插件」;社区目录站点 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,本文信息以仓库 README 与 package 声明为准。

结尾

dsh-mcp-manager 补上了官方 MCP 客户端缺少的管理界面:结构化读写 profile patch、写入前校验、扫描导入与连接测试,并把改动限制在标记区块内,降低 boot 因 YAML 错误而无法启动的风险。

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

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

小夜