dsh-skill-mcp-manager:DeepSeek Harness 的 SKILL & MCP 一站式管理

前言

DeepSeek Harness (DSH) 是一个基于插件的智能体开发框架。在开发复杂工作流时,管理大量的 SKILL 和 MCP (Model Context Protocol) 服务器往往面临两个痛点:一是配置分散,难以在统一的界面中查看和管理;二是 MCP 服务器的工具定义会直接占用 Token 上下文,导致上下文膨胀或启动延迟。dsh-skill-mcp-manager 是一个宿主级插件,旨在解决上述问题,提供可视化的 SKILL 与 MCP 管理,并实现 MCP 的按需加载。

插件概览

  • 名称:dsh-skill-mcp-manager
  • 功能:One-stop SKILL & MCP manager — a host-level plugin for DeepSeek Harness with MCP on-demand loading.
  • 所有者:alone-tree
  • 许可证:MIT
  • GitHub:https://github.com/alone-tree/dsh-skill-mcp-manager
  • 版本:1.1.7

核心功能

1. One-stop 视觉管理

插件将 SKILL 和 MCP 的管理集成到 DSH 的设置页面中,无需层层深入配置文件。用户可以直接在界面中启用/禁用 SKILL 和 MCP,查看每个工具的描述,甚至直接打开 SKILL 的源码进行编辑。对于 MCP,可以独立控制单个工具的启用/禁用状态,被禁用的工具对 AI 不可见,且不影响同一服务器上的其他工具。

2. MCP 按需加载

这是插件的核心特性。在会话开始时,MCP 服务器仅暴露其 名称 + 简短工具描述,而不发送完整的工具 Schema。
* 平衡 Token 消耗与功能:避免发送冗长的 Schema 导致上下文膨胀,同时保留 AI 探索可用工具的能力。
* 无启动延迟:服务器仅在 AI 实际需要时才建立连接。
* 非致命错误:按需加载失败不会阻塞会话,允许后续重试或手动重载。

3. 每会话独立实例与热重载

  • 独立实例:每个 DSH 会话(包括子代理)都会创建自己独立的 MCP 实例。这确保了并发会话之间不会互相干扰,特别是对于需要状态的工具(如 Playwright 浏览器实例)。
  • 热重载:在当前会话中运行 /mcp_load 命令即可重新连接 MCP 服务器并刷新工具列表,无需重启 DSH 或开启新会话,极大便利了本地开发调试。

4. SKILL 深度扫描与隐藏

  • 深度扫描:插件会递归扫描目录中的 <dir>/SKILL.md 文件,支持连接任意深度的外部技能库目录。
  • 临时隐藏:隐藏 SKILL 会在配置中写入 disable-model-invocation,使其对模型不可见,但保留 /name 等命令接口,方便开发者调试或临时屏蔽特定技能。

安装与启用

安装

使用官方 CLI 安装插件到指定 Profile:

dsh plugin --profile <profile> add dsh-skill-mcp-manager

配置

安装后,需要在 Profile 的 cordis.patch.yml 中添加配置条目。示例配置如下:

- insert:
    - id: skill-mcp-manager
      name: 'dsh-skill-mcp-manager'
      config:
        dataDir: ''            # 空字符串则使用默认路径 ~/.dsh/skill-mcp-manager
        profile: web           # 指定要管理的 Profile 名称
        trialTimeoutMs: 30000
        toolCallTimeoutMs: 60000
        catalogDescriptionMaxLength: 500
        toolDescriptionMaxLength: 150   # 目录中工具描述的截断长度(可调整)
        importNativeMcp: true           # 启动时自动接管原生 dsh-mcp-client 配置

配置完成后重启 Profile。插件运行在宿主层,因此 mcp_register、mcp_load 等工具对所有会话可见。

使用方法

UI 管理界面

打开 Settings → Capability:
* SKILL 标签页:显示所有管理的 SKILL(按路径排序)。支持切换模型可见性、在编辑器中打开、跨平台删除。系统内置的 SKILL(位于 node_modules 或 app.asar)为只读。
* MCP 标签页:显示已注册的服务器,包含 Tier 标记和工具计数。支持切换 Tier、查看详细配置(命令、环境变量、头部信息)、启用/禁用单个工具、查看或隐藏密钥、刷新快照。

模型工具接口

插件为模型提供了三个管理工具。

1. mcp_register

添加或修改 MCP 配置。该工具会先进行试连接(Trial-connect)并列举工具,只有配置正确才会持久化。

mcp_register { name, tier?, transport, command?, args?, env?, cwd?, url?, headers?, notes? }
  • tier:eager | on-demand | disabled(默认 on-demand)。
  • notes:用户备注,不会被服务器更新覆盖。

2. mcp_load

在当前会话中加载或热重载指定的 MCP 服务器实例。

/mcp_load { name, peek? }
  • 不带 peek 时:连接服务器,获取完整工具定义并刷新会话快照。
  • 带 peek: true 时:仅读取快照,不进行实际连接,适合在不改变连接状态的情况下查看描述。

3. /mcp prepare-uninstall

在卸载插件前执行此命令。它将所有由插件接管并标记为禁用的 MCP 配置重新启用,并将其完整配置交还给原生 dsh-mcp-client。这确保了移除插件后不会丢失 MCP 配置。

设计与注意事项

  • Profile 范围:插件仅管理其安装所在的 Profile,不会越权管理其他配置。
  • 原生配置接管:安装时,插件会将 Profile 中的原生 dsh-mcp-client 行导入到能力库中,并在原生层默认禁用。卸载前务必执行 /mcp prepare-uninstall。
  • 安全性:插件以宿主进程权限运行,请确保安装来源可信(GitHub 链接:https://github.com/alone-tree/dsh-skill-mcp-manager)。
  • Token 节省:由于 MCP 仅在 AI 需要时加载且默认不暴露完整 Schema,建议根据实际需求调整 toolDescriptionMaxLength 以平衡功能可见性与上下文占用。

结语

dsh-skill-mcp-manager 通过按需加载和会话隔离机制,帮助开发者在不牺牲功能完整性的前提下,有效控制 DSH 的上下文成本和启动开销。对于需要频繁开发调试 MCP 服务的场景,其热重载功能尤为实用。

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

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

小夜