dsh-toolgate:在 DSH 里管理 MCP 与 Skill,并控制下一轮 prompt 带哪些工具

前言

在 DeepSeek Harness(DSH)里接多台 MCP 服务器、再叠一批 Skill 时,每个 MCP 工具都会带着完整 JSON Schema 进请求。服务器越多,schema 往往比对话本身还占上下文。常见做法是改配置、停进程或手工删工具定义,改一次往往要动文件或重启,也不方便按「这一轮对话」临时收窄工具面。

工具闸门(dsh-toolgate)把「配置 MCP / Skill」和「这一轮暴露哪些 schema」拆开:前者写进 profile 或 global 配置并由 HMR 生效;后者用预算和会话级开关,在不关 MCP 进程的前提下隐藏不需要的整组 schema。下面按安装、设置页用法和模型侧 toolgate 工具说明它能做什么、边界在哪里。

这是什么

工具闸门是 DSH 社区插件,维护者为 jidekaixin2dian,分类为工作流。一句话定位:在 DSH 中管理 MCP 服务器与 Skill,并决定下一轮 prompt 携带哪些工具 schema;预算调整无需改配置或重启(见 package.json 描述)。

  • 目录页:https://www.skillhub.cn/plugins/jidekaixin2dian/dsh-toolgate
  • 源码与文档:https://github.com/jidekaixin2dian/dsh-toolgate
  • 许可证:MIT(README 标明)

核心功能

预算:按 MCP 服务器分组隐藏 schema

在 设置 -> 工具闸门 的 预算 区域,可按 MCP 服务器分组隐藏本轮不需要的整组 schema,需要时再恢复。MCP 进程保持运行,只是本轮 prompt 组装前不再带上被隐藏的 schema。同一页提供全部显示、关闭全部 MCP、关闭最大组、精简模式等操作。

设置页上的全局预算作用于所有会话和子代理;若只想改当前会话,见下文 toolgate action=session。

MCP 服务器:增删改与启停

MCP 服务器 支持新增、编辑、删除、启停。变更写入 profile 或 global 的 cordis.patch.yml,由 HMR 应用。stdio 类型使用 command / args / env;streamable-http 使用 url / headers。

Skills:搜索、新建、删除与单 Skill 启停

Skills 支持搜索、新建、删除,以及按单个 Skill 启停。新建可落在用户目录或项目目录;删除会移到 .trash。README 注明:ZIP 或文件夹导入暂未实现;仅在 scoped provider 出现的 Skill 可能无法通过本插件隐藏。

模型可调用的 toolgate 工具

除设置页外,模型可通过 toolgate 工具查询或调整状态,例如:

toolgate action=status
toolgate action=session disabled=["mcp:github", "skills"]
toolgate action=reset

mcp 表示全部 MCP 的通配;mcp:<server> 只针对某一台服务器。disabled 里也可写 skills 等项,与 README 示例一致。

界面展示的 token 估算基于序列化后的 schema 与 Skill 描述,不是模型分词器的精确计数,适合作相对对比,不宜当作账单级数字。

安装与启用

在指定 profile 下安装:

dsh plugin --profile <profile> add github:jidekaixin2dian/dsh-toolgate

若由桌面端应用管理 profile,请在插件管理器中安装。安装或更新插件的 host 半之后,需要退出并重新打开 DSH;桌面端没有浏览器式的 Ctrl+R 硬刷新。host 半与 client 半更新后均需重开 DSH(README「边界」一节)。

当前 package.json 中版本为 0.1.0;peer 依赖 @deepseek-ai/dsh-tools 的版本区间以该文件为准。

典型用法

  1. 按上文命令安装插件,重开 DSH。
  2. 打开 设置 -> 工具闸门,在 MCP 服务器 中配置或启停服务器;在 Skills 中管理 Skill。
  3. 在 预算 中按服务器分组隐藏本轮不用的 schema,或用页内快捷操作收窄工具面。
  4. 若只需当前会话临时收窄,在对话中让模型执行 toolgate action=session disabled=[...];恢复全局行为可用 toolgate action=reset 或回到设置页调整。

手工编辑过 cordis.patch.yml 时,通过本插件保存 MCP 变更前应先查看 diff,避免覆盖无关行或注释(插件会尽量保留无关行和注释)。

原理与边界(使用前宜知)

原理(README 摘要)

  • 预算:在 agent/pre-step 中调用 ctx.tools.restrict({ deny }),在 prompt 组装前移除对应工具 schema。
  • MCP:按行编辑 cordis.patch.yml,由 HMR 应用。
  • Skill:通过 rank-0 override provider 将停用项设为 modelInvocable: false。

边界

  • 若动态 MCP 管理器把工具注册在 agent 作用域,ctx.tools.restrict 无法隐藏,需用该管理器的 unload。
  • MCP 的增删改会写 cordis.patch.yml。
  • Skill ZIP/文件夹导入未实现;部分 scoped Skill 可能无法隐藏。

插件在当前 DSH 进程权限下运行,安装前建议阅读源码与 MIT 许可证,确认 MCP 命令、环境变量与网络出口符合你的安全策略。DSH 生态强调「一切皆插件」;SkillHub 目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

工具闸门适合已经堆了多台 MCP 和多个 Skill、又需要按会话控制上下文占用的 DSH 用户:配置与暴露分离,预算改动不必重启。更多说明见 GitHub 仓库 与 SkillHub 目录页。

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

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

小夜