前言¶
在 DeepSeek Harness(DSH)里给 Agent 接上 MCP,配置文件往往很短:几个 server 名、一条 npx 命令、偶尔再加 allowedTools。表面看已经「配好了」,但文件根路径若是 /、工具列表若是 ["*"]、网络若是 allowedDomains: "*",Agent 一旦被提示注入牵着走,能做的事就是你写进配置里的全部能力——OWASP 把这类问题归在 LLM06 Excessive Agency。
手工翻 mcp.json、settings.json 容易漏项,也难对照最小权限或 MCP 文档里的目录限制建议。dsh-agent-scope(npm 包名 @deepwhale-cn/dsh-agent-scope,维护者 feely0208,分类 admin-security)只做一件事:扫描常见客户端里的 Agent/MCP 配置,查工具权限、文件路径、网络范围有没有显式声明,以及是否出现明显过宽的写法。
这是什么¶
一句话:Agent 权限边界检查——查 agent 的工具/文件/网络权限有没有声明、是不是过宽。
仓库:feely0208/dsh-agent-scope。插件目录页:skillhub.cn/plugins/feely0208/dsh-agent-scope。当前 package 版本为 0.1.1,许可证 MIT;运行要求 Node.js >= 18,DSH >= 0.1.0-rc.6。
它不读 Agent 业务代码,只审配置;也不判断「权限给得是否刚好够用」,只标「没声明」和「一眼过宽」的模式。
不装插件时常见的盲区¶
README 里举的典型配置如下:
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/"] },
"everything": { "command": "npx", "args": ["-y", "mcp-everything"], "allowedTools": ["*"] }
对应的风险可以概括为:
- 文件访问路径是
/→ 读写范围覆盖整机文件(含~/.ssh、~/.aws等)。 allowedTools: ["*"]→ 可调用该 MCP 暴露的全部工具。- 若出现
allowedDomains: "*"→ 被注入后数据可发往任意地址。
文档强调:没有声明通常等于默认全开,用户看到的仍可能是「很干净」的 JSON,意识不到爆炸半径。
它查什么¶
规则按严重级别归类(依据在插件 --list-rules 与文档截图中可查),核心项包括:
| 级别 | 检查内容 | 依据(文档表述) |
|---|---|---|
| 高 | 工具权限使用通配符 * |
最小权限(NIST SP 800-53 AC-6) |
| 高 | 文件访问为 /、~ 或整个用户目录 |
MCP 文档与目录限制建议 |
| 中 | 网络访问无限制 | OWASP LLM06 Excessive Agency |
| 中 | 配置中找不到任何权限相关声明 | 最小权限;权限应显式声明 |
关键词方向:Agent 权限、工具权限、权限边界、最小权限、MCP 权限、agent scope、least privilege、MCP security、excessive agency。
安装与启用¶
在 DSH Web 配置侧添加插件:
dsh plugin --profile web add @deepwhale-cn/dsh-agent-scope
不经过 DSH 包管理、仅作 CLI 时:
npx @deepwhale-cn/dsh-agent-scope
插件以当前 dsh 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证,确认符合你的合规要求。
典型用法¶
安装后可用二进制 dsh-agent-scope(见 package.json 的 bin 字段):
dsh-agent-scope --demo
dsh-agent-scope --list-rules
dsh-agent-scope --html r.html
说明:
--demo:演示模式,便于在不碰本机真实配置时看输出形态(官方 README 提供演示截图)。--list-rules:列出规则及依据,便于和团队规范对齐。--html r.html:将检查结果导出为 HTML 报告(README 中有报告示例图)。
工具会在常见路径中查找 MCP/客户端配置(如 mcp.json、.mcp.json、settings.json、claude_desktop_config.json 等);不同客户端路径不一致,以插件实际扫描逻辑为准。
边界与同系列分工¶
使用前建议把「能做什么、不能做什么」说清楚:
- 只审配置,不审 agent 实现——代码里如何消费这些权限,本工具看不到。
- 不判断权限是否「给够了」——通配符、根路径等明显过宽会标出;权限偏大但未用通配符时需人工评审。
- 沙箱是否真生效需运行时验证,不在本插件范围内。
与同维护者其它插件的分工(README 原文):
- dsh-mcp-audit:查 MCP 服务来源(未锁版本、明文端点等)。
- dsh-least-privilege:查容器/云/Web 侧权限;dsh-agent-scope 专注 Agent/MCP 配置里的权限边界。
适用谁、怎么用进流程¶
适合:已经在 DSH 或其它客户端里接 MCP、需要上线前或改配置后做一次「权限声明与过宽模式」扫雷的开发者与安全评审。
建议做法:改 MCP 配置 → 跑 dsh-agent-scope(或导出 HTML 留档)→ 对高危项先收窄路径与白名单 → 再与 dsh-mcp-audit 等供应链/来源类检查配合。DSH 社区插件目录独立于 DeepSeek/幻方官方应用商店,按需从目录页或 npm 安装即可。
更多说明与 issue:GitHub 仓库;目录页:skillhub.cn/plugins/feely0208/dsh-agent-scope。