前言¶
在 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 的版本区间以该文件为准。
典型用法¶
- 按上文命令安装插件,重开 DSH。
- 打开 设置 -> 工具闸门,在 MCP 服务器 中配置或启停服务器;在 Skills 中管理 Skill。
- 在 预算 中按服务器分组隐藏本轮不用的 schema,或用页内快捷操作收窄工具面。
- 若只需当前会话临时收窄,在对话中让模型执行
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 目录页。