前言¶
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 条目;如需清除,需手工删除该区块(含起止标记行)。
典型用法¶
- 重启 DSH 后打开侧边栏「MCP 连接器」。
- 在「发现」页选择内置或扫描到的服务器,确认参数后接入;或在「添加」页粘贴 JSON / 一行启动命令,先「测试连接」再保存。
- 按界面重启提示退出并重新打开 DSH。
- 在「已接入」页确认状态为「已连接 · 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 错误而无法启动的风险。