前言¶
DeepSeek Harness (DSH) 采用插件化架构,MCP 服务器的接入通常需要编辑配置文件(如 cordis.patch.yml)。手动维护这些配置行容易出错,且难以实时查看服务状态。dsh-mcp-setting 插件在 DSH 的设置界面中新增了「MCP 服务器」页面,允许用户直接通过 Web 界面进行增删改查。
这是什么¶
这是一个 DeepSeek Harness 客户端插件,由 belowthetree 维护。它通过注入设置页面,提供对 DSH 配置文件中 @deepseek-ai/dsh-mcp-client 配置行的直接管理能力。插件不仅实现了可视化的配置编辑,还集成了状态监控与配置校验机制。
核心功能¶
-
服务器列表与概览
展示主配置文件($DSH_HOME/cordis.patch.yml)与各 profile 补丁文件中的全部 MCP 服务器,标注来源与端点摘要。 -
实时连接状态
页面每 5 秒静默刷新,通过加载器 fiber 与工具注册表(mcp__<serverName>__*前缀)推断状态。显示内容为:已连接 · 工具数 / 未连接 / 启动失败 / 加载中。注意:在断线重连的退避窗口内,状态可能短暂显示为「已连接」。 -
启用/停用控制
每台服务器自带开关,通过写入 loader 行的disabled标志控制。DSH 的配置热加载机制会即时生效,无需重启进程。 -
配置编辑与删除
支持修改服务器参数或删除条目。编辑时会保留表单未展示的字段(如reconnect、toolCallTimeoutMs)。删除操作会一并移除所在文件中空掉的insert补丁条目。 -
新增服务器
在主配置文件中新增条目,并自动补齐自描述的头注释。 -
配置校验
遵循@deepseek-ai/dsh-mcp-client的配置契约。校验规则包括:id和serverName唯一性command必填(针对 stdio 传输)url必填(针对 streamable-http 传输)- 命名规则匹配。校验失败会拒绝写入并返回中文提示。
-
安全机制
- 所有写操作仅允许本机回环访问。
- 每次写入前保留
.bak备份文件。 - 使用临时文件 + 原子落盘方式修改 YAML 文档,确保未触碰的注释与
!!js表达式原样保留。
-
重启 DSH
页面顶部提供「重启 DSH」按钮(需两次点击确认),用于重新拉起 DSH 进程以应用完整重载。
安装与启用¶
推荐通过 npm 安装到指定的 DSH profile(例如 web profile):
pnpm dsh plugin --profile web add dsh-mcp-setting
安装后,DSH 进程会自动装配该插件。浏览器打开设置 -> MCP 服务器即可看到新增的管理界面。
若需移除:
pnpm dsh plugin --profile web remove dsh-mcp-setting
典型用法¶
- 安装插件并重启 DSH。
- 打开浏览器,进入 DSH 设置页面的「MCP 服务器」选项卡。
- 点击「重启 DSH」按钮确认应用更改(如果修改了配置)。
- 在列表中观察服务器的实时连接状态,通过开关快速启用或停用特定服务器。
技术细节与注意事项¶
- 热加载生效:启停操作利用 DSH 的配置热加载,即时生效;增删改会写入配置文件,建议配合「重启 DSH」按钮使用。
- 开发环境:开发者可通过
pnpm install && pnpm build编译,或使用dev_build_plugin -> dev_install_package注入器生产线进行本地开发挂载。 - 测试与构建:项目包含单元测试(
pnpm test)、类型检查(pnpm typecheck)与构建脚本(pnpm build)。 - 环境要求:Node.js 版本需 >= 20。