mcpField
M
MCP Blast-Radius Auditor

MCP Blast-Radius Auditor

本地服务
raw.githubusercontent.com安全015 周前更新

关于 MCP Blast-Radius Auditor

这款静态分析工具检查 MCP 服务可能访问的文件、网络、环境变量和子进程等能力,供 MCP 服务维护者和审查者评估暴露范围。它还可将观察到的访问与声明清单进行比对。

主要功能

  1. 01静态扫描能力和依赖项
  2. 02检查清单与访问行为的偏差
  3. 03提供建议和阻断两种门禁模式
  4. 04JSON 报告标注置信度
  5. 05可选扫描整个代码库

适用场景

  1. 01安装前审查 MCP 服务
  2. 02访问超出清单时阻止 CI 通过
  3. 03检查已声明和观察到的能力

MCP 相关

通过 `aos_compliance_validate` 和 `aos_compliance_self_test` 向 MCP 客户端提供工具。stdio 服务扫描目标 MCP 服务目录,报告静态能力范围及与清单的偏差。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"aos-standard-mcp-blast-radius": {
"command": "uvx",
"args": [
"mcp-blast-radius"
]
}
}
}
启动命令uvx mcp-blast-radius

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-blast-radius0.2.8

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
mockboolean否
tool_idany否
gate_modeenum否advisory | blocking
target_dirany否

详细介绍

MCP 爆炸半径审计器

AOS audited

在将任何 MCP 服务添加到 Agent 之前,了解它实际能触及哪些内容。

没有清单?仍可获得完整的爆炸半径报告。添加清单后,还能发现偏差。

此外,如果服务声明了清单:发现 MCP 服务触及它声称不会触及的文件,并在 CI 中阻止合并。

通过表层分析,静态提取第三方 MCP 服务能够访问的内容(文件、网络、子进程、环境变量)。存在清单时,将分析结果与声明的边界进行比较。

**扫描范围(默认):**仅扫描生产包 — 排除 tests/、docs/、examples/、scripts/、benchmarks/、.github/ 和 test_*.py 模式;JSON 输出包含 scan_scope 和 excluded_file_count。传入 --include-peripheral 可扫描整个仓库。

只需 3 步即可试用

① 用一条命令扫描你的服务

pip install mcp-blast-radius==0.2.5
mcp-blast-radius-gate --gate-mode advisory --target-dir /path/to/your-mcp-server

将 --target-dir 指向你的发布包根目录(例如 src/)。默认范围会排除测试、文档和脚本。

② 阅读 JSON

字段含义
gate_pass扫描是否完成(advisory = 无论结果如何都生成报告;blocking = 出现偏差时以状态码 1 退出)
blocking_reasons以 DIVERGENCE: 开头的行 = 声明与观测结果不一致(如果你发布了清单)
blast_radius静态能力范围(网络、子进程、环境变量、文件系统)
confidence 标签declared / observed-static / cannot-determine — 仅静态分析,表示上限

未声明的能力通常是配置漂移,并非恶意行为。网络/子进程计数应视为上限,而非已确认的流量。

③ 申请审计徽章(可选,自愿申请)

已完成干净的扫描,并想获得带签名的 README 徽章?提交徽章申请 — 粘贴你的命令和 JSON。免费,有效期 90 天,无回连。标准:BADGE_CRITERIA.md。

如需独立验证任何已发布的证明:pip install cryptography,然后运行 packaging/scripts/verify_attestation.py(接受本地路径或 HTTPS URL)。参见 BADGE_CRITERIA.md §Verify。


机器可读元数据

示例演练

git clone --depth 1 https://github.com/oraios/serena.git /tmp/serena
mcp-blast-radius-gate --gate-mode advisory --target-dir /tmp/serena

检查 blast_radius 以及 blocking_reasons 中的任何 DIVERGENCE: 行。

报告扫描问题

提交 GitHub issue,并附上你的 JSON 输出(会自动加载结构化模板)。

30 秒扫描

pip install mcp-blast-radius
mcp-blast-radius-gate --gate-mode blocking --target-dir /path/to/mcp-server

pipx run mcp-blast-radius 会启动 MCP stdio 服务(用于 Claude Desktop / Cursor)。如需通过命令行扫描,请使用上文的 mcp-blast-radius-gate。

  • **红色(阻止):**检测到偏差 — 代码触及了清单中未声明的路径或能力。
  • **绿色:**未发现偏差(或没有清单 — 仅生成爆炸半径报告,并以建议模式通过)。

安装

python3 -m venv .venv
source .venv/bin/activate
pip install .

CLI 入口

mcp-blast-radius          # MCP stdio server
mcp-blast-radius-gate     # CI gate (default blocking, exit 1 on fail)
CI 阻止门
mcp-blast-radius-gate --gate-mode blocking --target-dir .
# no divergences → exit 0 / divergences or declaration violations → exit 1

MCP 工具

  • aos_compliance_validate — 扫描单个 MCP 服务目录(必须提供 target_dir;tool_id 为可选标签)
  • aos_compliance_self_test — 连线冒烟测试

默认 gate_mode=advisory。在 CI 中使用 gate_mode=blocking,以便在出现偏差时失败。

提取内容

层级范围置信度
依赖项requirements.txt、pyproject.toml、package.jsondeclared
Python AST导入、文件 I/O、网络、环境变量、子进程;MCP 工具归属observed-static / cannot-determine
差异清单中的 permitted_output_paths / oracle_paths 与观察到的访问行为不匹配时阻止

限制: 仅进行静态分析。动态导入、getattr/eval、混淆处理和原生扩展可能会隐藏功能。我们不声称覆盖全面——每项发现都包含一个 confidence 标签。

环境

变量用途
AOS_VALIDATOR_TARGET_DIR未提供 target_dir 时使用的默认扫描根目录
AOS_VALIDATOR_MCP_LOG本地工具调用日志的 JSONL 路径(绝不会对外发送)
AOS_VALIDATOR_CALLER调用方标签(ci、smoke_self_call 等)

示例

aos_compliance_validate target_dir=/path/to/my-mcp-server gate_mode=blocking

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。