前言¶
在 DeepSeek Harness(DSH)里,技能和 MCP 服务器往往是全局可见的:同一套工具目录会跟着会话走,上下文里也会带上各 MCP 的说明。多项目、多工作区并行时,很容易出现「这个仓库根本不需要 GitHub MCP,却仍在工具列表里占位」的情况;有些场景则希望某个工作区只暴露少量技能,减少误用或上下文膨胀。
DSH 社区插件 dsh-workspace-capabilities(维护者 Fleey,分类 admin-security)做的是一件事:在侧栏每个工作区行的「…」菜单里增加 技能与 MCP,用勾选方式决定该工作区路径下会话能用哪些技能和 MCP 服务器。取消勾选项从下一轮对话起生效,无需重启 DSH。
这是什么¶
dsh-workspace-capabilities 是 DeepSeek Harness 插件,简介为:按工作区选择可用的技能(skill)和 MCP 服务器。配置按工作区路径持久化,默认全部启用,保存的是禁用列表,因此之后新装的技能、新加的 MCP 默认可用。
- 目录页:skillhub.cn 插件页
- 源码与说明:GitHub — Fleey/dsh-workspace-capabilities
- 当前 package 版本:0.1.0,许可证 MIT
社区目录站点与 DeepSeek / 幻方无官方从属关系;安装前建议自行查看源码与许可证。插件在 DSH 进程权限下运行。
核心功能¶
界面入口¶
在工作区侧栏某一行的「…」菜单中,除重命名、删除外,会出现 技能与 MCP。点击后弹出对话框,列出当前工作区路径下发现的技能与已连接的 MCP 服务器,勾选表示允许使用,取消勾选表示对该工作区禁用。
技能¶
- 取消勾选的技能会从该工作区会话的技能目录中消失。
skill工具与/技能名无法再加载被禁用的技能。- 列表按当前工作区路径发现;只在其他 agent preset 中挂载的技能可能不显示。
- 插件只能隐藏技能,不能启用在来源处已停用的技能。例如在 dsh-skills-manager 中停用的技能仍会出现在列表里,但会标为「来源已停用」且无法勾选,需先在技能管理器中重新启用。
MCP¶
- 取消勾选的 MCP 服务器,其全部
mcp__<服务器>__*工具对该工作区的会话(含子代理)隐藏。 - 服务器本身保持连接,其他工作区不受影响。
- 被禁用的 MCP 若仍返回服务器指令(instructions),该文本仍可能出现在系统提示词中;只是对应工具不可用。
持久化格式¶
选择保存在 $DSH_HOME/workspace-capabilities.json,默认路径为 ~/.dsh/workspace-capabilities.json:
{
"version": 1,
"workspaces": {
"/path/to/project": {
"disabledSkills": ["some-skill"],
"disabledMcpServers": ["github"]
}
}
}
Host 提供接口 GET /dsh-workspace-capabilities/state?workspaceId= 与 POST /dsh-workspace-capabilities/save,走 Host 自有请求鉴权。
安装与启用¶
安装命令须使用 README 原文,不要自行拼接通用 dsh plugin add。
DSH NEXT 桌面版¶
先完全退出 DSH NEXT,再执行(路径以 macOS 应用包为例,与 README 一致):
ELECTRON_RUN_AS_NODE=1 DSH_HOME="$HOME/.dsh" "/Applications/DSH NEXT.app/Contents/MacOS/DSH NEXT" --expose-internals "/Applications/DSH NEXT.app/Contents/Resources/app/lib/plugin-cli.js" desktop add github:Fleey/dsh-workspace-capabilities
重新打开 DSH NEXT。卸载时将 add github:Fleey/dsh-workspace-capabilities 换成 remove dsh-workspace-capabilities。本地开发可改用 add link:/path/to/clone。
命令行版(Web profile)¶
dsh plugin --profile web add github:Fleey/dsh-workspace-capabilities
典型用法¶
- 安装插件并重新打开 DSH(桌面版)或确保 Web profile 已加载插件。
- 在侧栏选中目标项目对应的工作区行,点击「…」→ 技能与 MCP。
- 取消不需要的技能或 MCP(例如仅文档仓库禁用 GitHub MCP),确认保存。
- 新开一轮对话或继续对话:从下一轮起,禁用项不再出现在工具与技能目录中。
README 中说明:在工作区内单独设置 skill 与 MCP,可用于规避工具上下文占用或其他特需场景。
适用场景与注意¶
适合谁
- 同一 DSH 实例管理多个仓库,希望按项目收紧工具面。
- 需要减少 MCP 工具数量、降低上下文占用,但不想全局卸载 MCP 服务器。
- 与安全、治理相关的 admin-security 类需求:按工作区最小暴露技能与 MCP。
实现与升级风险
- 依赖 DSH 0.2 内部结构(侧栏菜单 DOM、技能注册表
collectFresh)。DSH 大版本升级后,菜单项可能不出现或技能过滤失效(日志会有警告);MCP 过滤走的是公开 APIagent.ctx.tools.restrict({ deny })。 - 侧栏「…」菜单在 Host 侧无扩展 slot,浏览器端通过 DOM 注入实现(见仓库
lib/client.js)。
测试
仓库内可运行:
npm test
结尾¶
dsh-workspace-capabilities 把「全局技能 + 全局 MCP」收成「按工作区路径的可选子集」,默认全开、只记禁用,对新装技能和新 MCP 友好。若你已在用 DSH 多工作区开发,可从侧栏「技能与 MCP」试一轮,再对照 ~/.dsh/workspace-capabilities.json 是否符合预期。