用途
mcp-dependency-review 用于审查 MCP 配置中的包引用,判断这些引用是否可能在配置本身获批之后解析到不同的代码。这是一个静态审查工作流:只把配置当作文本/JSON 读取,不执行发现的 MCP 服务器命令。
主要能力
该技能对 npm/npx 风格包选择器、Python 包选择器和 Docker 镜像引用进行静态分类:
- package@1.2.3:SAFE,直接选择器是精确的,但不证明完整依赖树可复现。
- package、@scope/package、package@latest、package@beta、package@next 或其他分发标签:HIGH,未来解析可能选中不同代码。
- package@^1.2.0、package@~1.2.0、通配符/不等式/其他范围:MEDIUM,解析可在范围内移动。
- 本地路径/脚本/未知二进制:REVIEW。
Docker 与 Python 的补充结果:
- Docker 镜像以 @sha256:DIGEST 固定:SAFE。
- Docker 镜像带标签或无标签且无摘要:HIGH。
- Python 精确版本(package==1.2.3 或 uvx package@1.2.3):SAFE;通配符等值不算精确固定。
- Python 无版本或 uvx package@latest:HIGH。
- Python 版本范围或通配符:MEDIUM。
- Python 可编辑安装/直接 URL/VCS 引用:REVIEW。
- 不支持或有歧义的 Docker/Python 调用或选择器:REVIEW。
SAFE 仅适用于直接选择器或镜像摘要,不建立包完整性、来源或完整传递依赖可复现性,也不是完整安全结论。-y / --yes 仅作为上下文,它抑制交互确认,本身不是漏洞。
使用方式
-
定位仓库范围内的配置:先检查常见工作区路径,例如 .mcp.json、.github/mcp.json、.cursor/mcp.json、.vscode/mcp.json、.windsurf/mcp.json、.kiro/settings/mcp.json、.kiro/settings/mcp.json.example,然后在请求的仓库/工作区内做有界发现。默认不检查主目录或机器级 MCP 配置,除非用户明确要求。
-
不执行地解析:读取 JSON 或配置文本,识别每个配置的 MCP 服务器。对 npx、npm exec、bunx、bun x、pnpm dlx、yarn dlx 等包运行器调用,从命令行标志中分离出每个包选择器。包值标志也算包选择器,例如 npx --package ecc-universal ecc 中 ecc-universal 是包选择器,ecc 是可执行文件。对 docker run 和 docker container run,将镜像与 Docker 选项及容器内命令分开。对 uvx(含 uv tool run)从 --from 分类包,对 pipx run 从 --spec 分类包。若调用、选项边界或选择器语法不支持或有歧义,报告 REVIEW,绝不省略配置的服务器、猜测选中的包或执行命令来消除不确定性。
-
分类选择器:应用上述静态分类表。任何 npm 分发标签(不只是 latest)都视为 HIGH。语法有歧义时返回 REVIEW 而非猜测。
-
建议可复现的修复:对可变选择器,建议团队实际审查过的精确包版本。不要用今天的注册表最新版本代替固定。若审查版本未知,说明这一点。注册表历史查询是单独的网络操作,仅在用户要求时执行。
-
生成有边界的报告:使用紧凑表格,列为 Config、MCP server、Package/reference、Result、Why、Next step。结尾说明边界:本次审查未执行任何 MCP 服务器;可变依赖引用是复现性/审查信号,不是入侵声明;SAFE 意味着直接选择器精确,不建立完整传递依赖可复现性;此处干净结果不是完整的 MCP 安全评估。
适用场景
- 在批准新的或变更的 MCP 配置之前。
- 审查 .mcp.json、.github/mcp.json、.cursor/mcp.json、.vscode/mcp.json 或等效工作区配置时。
- 为 CI 添加确定性 MCP 配置检查时。
- MCP 包引用使用 @latest、其他 npm 分发标签、裸包名或版本范围时。
- 团队想了解先前审查过的配置是否可能静默解析到更新的包代码时。
限制
默认限定在用户询问的仓库或工作区,不检查主目录或机器级 MCP 配置,除非用户明确要求更广范围。不运行配置中的命令或参数;不启动 MCP 服务器确认静态发现;不安装或解析引用的包来分类版本选择器;不把凭据、标头、令牌或秘密值复制到报告中;不把依赖可变性单独描述为漏洞、入侵或恶意包。SAFE 仅针对直接选择器或镜像摘要,不证明包完整性、来源或完整传递依赖可复现性,不是完整安全结论。
相关技能
mcp-server-patterns、security-review、security-scan。