DeepSeek Harness (DSH) Web GUI 的 MCP 服务器管理面板

DSH(DeepSeek Harness)的核心理念是“一切皆插件”。在本地开发或使用 Web GUI (dsh web) 时,管理 MCP 服务器连接状态、启停配置以及本地技能,通常需要直接编辑配置文件。dsh-mcp-skill-control 是一个第三方插件,它在 Web GUI 的会话头部提供了一个管理面板,包含 MCP 服务器页签和 Skills 页签,用于替代手动编辑配置文件的操作。

定位与安装

该插件为 DSH Web GUI 提供了 MCP 服务器与本地技能的图形化管理界面。它是一个单包双面插件(Host 半 + Browser 半),独立分发,无需修改 DSH 源码。

  1. 安装插件
    使用官方 CLI 将插件安装到 web profile:
    dsh plugin --profile web add https://github.com/shuaihaoV/dsh-mcp-skill-control
  1. 访问面板
    安装并重启 DSH 进程后,在 Web GUI 会话头部(Session log 左侧)点击 “MCP” 胶囊按钮即可打开管理面板。

  2. 卸载
    如需移除插件:

    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。
  • 重启:执行先停后启的操作,用于崩溃恢复或刷新工具列表。此操作为纯运行时动作,不改写持久状态。

新增与删除

  • 新增:支持两种方式:
    1. 表单录入(支持 stdio / streamable-http,可配置 env、headers、cwd、超时、reconnect)。
    2. 粘贴 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 时启用。

注意事项

  1. 版本兼容与构建:
    插件当前对齐 DSH 0.1.7-alpha.2(React 18)。UI 符号来自 dsh-client-ui-primitives,跨版本可能改名。升级 dsh 后必须重新构建 lib/,否则会出现浏览器半静默失效(面板消失但接口正常)。

  2. 生效方式:

    • Browser 半(UI):刷新页面生效。
    • Host 半(服务):重启 DSH 进程生效。
  3. 数据展示:
    为避免密钥泄漏,面板不展示 env / headers 的具体值。

  4. 状态更新:
    状态是轮询快照而非推送。页面可见时每 5s 轮询一次,存在 connecting 行时加速至 2s,页面隐藏时暂停。

  5. 开发与安装:
    使用 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 连接或管理本地技能的开发者,该插件能有效减少手动编辑配置文件的工作量。

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

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

小夜