Skip to main content

MCP Blast-Radius Auditor — static blast radius extraction and CI divergence gate.

Project description

MCP Blast-Radius Auditor

Catch an MCP server that touches files it said it wouldn't — and block the merge in CI.

Statically extract what a third-party MCP server can actually reach (files, network, subprocess, env) and compare against declared boundaries when a manifest is present.

30-second scan

pipx run mcp-blast-radius  # MCP server
pip install . && mcp-blast-radius-gate --gate-mode blocking --target-dir /path/to/mcp-server
  • Red (blocking): divergence detected — code touches paths or capabilities not declared in manifest.
  • Green: no divergences (or no manifest — blast radius report only, advisory pass).

Install

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

CLI entry

mcp-blast-radius          # MCP stdio server
mcp-blast-radius-gate     # CI gate (default blocking, exit 1 on fail)

CI blocking gate

mcp-blast-radius-gate --gate-mode blocking --target-dir .
# no divergences → exit 0 / divergences or declaration violations → exit 1

MCP tools

  • aos_compliance_validate — scan one MCP server directory (target_dir required; tool_id optional label)
  • aos_compliance_self_test — wiring smoke test

Default gate_mode=advisory. Use gate_mode=blocking in CI to fail on divergences.

What is extracted

Layer Scope Confidence
Dependencies requirements.txt, pyproject.toml, package.json declared
Python AST imports, file I/O, network, env, subprocess; MCP tool attribution observed-static / cannot-determine
Divergence manifest permitted_output_paths / oracle_paths vs observed access blocking when mismatch

Limitations: Static analysis only. Dynamic imports, getattr/eval, obfuscation, and native extensions may hide capabilities. We do not claim complete coverage — every finding includes a confidence label.

Environment

Variable Purpose
AOS_VALIDATOR_TARGET_DIR Default scan root when target_dir is omitted
AOS_VALIDATOR_MCP_LOG JSONL path for local tool call log (never sent externally)
AOS_VALIDATOR_CALLER Caller label (ci, smoke_self_call, etc.)

Example

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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_blast_radius-0.2.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file mcp_blast_radius-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_blast_radius-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c7a96f1600525158ca7d6771857220f4c0375a52ed9ec892b2db267a79401bd9
MD5 6d9a0dd1be89df9c4c204d9689ea8ef1
BLAKE2b-256 b4f5d29259a3f5628e68f32c7b59f63a642df10eb5829284706c05311a4e5062

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page