DSH(DeepSeek Harness)的核心理念是“一切皆插件”。在本地开发或使用 Web GUI (dsh web) 时,管理 MCP 服务器连接状态、启停配置以及本地技能,通常需要直接编辑配置文件。dsh-mcp-skill-control 是一个第三方插件,它在 Web GUI 的会话头部提供了一个管理面板,包含 MCP 服务器页签和 Skills 页签,用于替代手动编辑配置文件的操作。
定位与安装¶
该插件为 DSH Web GUI 提供了 MCP 服务器与本地技能的图形化管理界面。它是一个单包双面插件(Host 半 + Browser 半),独立分发,无需修改 DSH 源码。
- 安装插件
使用官方 CLI 将插件安装到 web profile:
dsh plugin --profile web add https://github.com/shuaihaoV/dsh-mcp-skill-control
-
访问面板
安装并重启 DSH 进程后,在 Web GUI 会话头部(Session log 左侧)点击 “MCP” 胶囊按钮即可打开管理面板。 -
卸载
如需移除插件:
dsh plugin --profile web remove @shuaihaov/dsh-mcp-skill-control
MCP 服务器管理¶
插件在 Web 界面列出了 @deepseek-ai/dsh-mcp-client 相关的所有配置行,并提供状态查看与操作。
状态查看¶
面板列出所有 MCP 服务器行,显示 serverName、传输方式、端点、连接状态、已注册工具数与清单。状态分为 connected(活跃且注册工具)、connecting(正在建立,20s 内)、unreachable(本插件判定:活跃但 20s 无工具,或 streamable-http 不可达时自动探测)、failed(fiber 进入失败)以及 disabled(已停用)。
启停与重启¶
- 停用 / 启用:通过写入或移除
disabled覆盖来实现。本插件插入的行就地改写,其他层的行使用顶层 override。 - 重启:执行先停后启的操作,用于崩溃恢复或刷新工具列表。此操作为纯运行时动作,不改写持久状态。
新增与删除¶
- 新增:支持两种方式:
- 表单录入(支持 stdio / streamable-http,可配置 env、headers、cwd、超时、reconnect)。
- 粘贴 JSON 导入(支持 Claude Desktop / Cursor / OpenCode 格式,自动处理名称 slug 化、SSE 拦截与源文档标记停用)。
- 删除:从
cordis.patch.yml摘除对应行。注意:删除仅对本插件 patch 层插入的行可用;bundle 层定义的行只能停用,无法删除。
诊断探测¶
对于 streamable-http 行,若插件判定不可达,会自动发起一次 MCP initialize 探测(30s 限频),将“零工具”等状态翻译为可读的诊断文本。
本地技能控制¶
在 “Skills” 页签下,插件列出用户 skill root 下的本地技能(~/.dsh/skills、~/.agents/skills)。
- 启停控制:支持一键启用/禁用本地技能。操作通过写入或移除 frontmatter 中的
disable-model-invocation实现,Markdown 正文逐字节保留。 - 文件管理:支持将技能文件定位到文件管理器中。
架构与持久化¶
配置写入¶
所有变更写入 profile 的 cordis.patch.yml,由 watchUserPatches 经 HMR 事务应用。这意味着当前进程立即生效,且重启后保持。
YAML 编辑¶
配置写入使用 YAML Document AST 编辑(与 DSH 自身的 settings-file 同一手法),确保用户注释、键序、[...] 内联格式在增删组合撤销后与原文字节级一致。
通信通道¶
- 主通道:
ctx.connection.rpc.call('/api', 'mcpManager/<method>')。 - 兜底通道:
POST /mcp-manager/api/<method>。当 RPC 返回invocation-unavailable时启用。
注意事项¶
-
版本兼容与构建:
插件当前对齐 DSH0.1.7-alpha.2(React 18)。UI 符号来自dsh-client-ui-primitives,跨版本可能改名。升级 dsh 后必须重新构建lib/,否则会出现浏览器半静默失效(面板消失但接口正常)。 -
生效方式:
- Browser 半(UI):刷新页面生效。
- Host 半(服务):重启 DSH 进程生效。
-
数据展示:
为避免密钥泄漏,面板不展示env/headers的具体值。 -
状态更新:
状态是轮询快照而非推送。页面可见时每 5s 轮询一次,存在connecting行时加速至 2s,页面隐藏时暂停。 -
开发与安装:
使用pnpm 11构建时,git 直装依赖的prepare钩子可能被 supply-chain 保护拦截。首次安装时需在 profile 目录运行pnpm approve-builds --all。从源码开发时,需注意dev-link与全局 dsh 的写穿风险,需按build.sh指引操作。
结语¶
dsh-mcp-skill-control 为 DSH 用户提供了一个直观的 MCP 服务器与本地技能管理入口,通过 YAML AST 编辑保证了配置的完整性。对于需要频繁调整 MCP 连接或管理本地技能的开发者,该插件能有效减少手动编辑配置文件的工作量。