Skip to main content
Glama
mcp-blast-radius

mcp-blast-radius

by aos-standard

MCP Blast-Radius Auditor

AOS audited

See what any MCP server can actually touch — before you add it to your agent.

No manifest? You still get the full blast-radius report. Add a manifest to also catch divergences.

Also, if the server declares a manifest: 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 reach (files, network, subprocess, env) via surface-level analysis. Compare against declared boundaries when a manifest is present.

Scan scope (default): production package only — excludes tests/, docs/, examples/, scripts/, benchmarks/, .github/, and test_*.py patterns; JSON output includes scan_scope and excluded_file_count. Pass --include-peripheral to scan the full repo.

Try it in 3 steps

① Scan your server in one command

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

Point --target-dir at your shipping package root (e.g. src/). Default scope excludes tests, docs, and scripts.

② Read the JSON

Field

What it means

gate_pass

Scan finished (advisory = report either way; blocking = exit 1 on divergences)

blocking_reasons

Lines starting with DIVERGENCE: = declared vs. observed mismatch (if you ship a manifest)

blast_radius

Static capability surface (network, subprocess, env, filesystem)

confidence labels

declared / observed-static / cannot-determine — static only, upper bounds

Undeclared capability is usually drift, not malice. Treat network/subprocess counts as upper bounds, not confirmed traffic.

③ Apply for an audit badge (optional, opt-in)

Ran a clean scan and want a signed README badge? Open a badge application — paste your command and JSON. Free, 90-day attestation, no phone-home. Criteria: BADGE_CRITERIA.md.

To verify any published attestation independently: pip install cryptography, then run packaging/scripts/verify_attestation.py (accepts local paths or HTTPS URLs). See BADGE_CRITERIA.md §Verify.


Related MCP server: mcpaudit

Machine-readable metadata

Example walkthrough

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

Inspect blast_radius and any DIVERGENCE: lines in blocking_reasons.

Report a scan question

Open a GitHub issue with your JSON output (structured template loads automatically).

30-second scan

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

pipx run mcp-blast-radius starts the MCP stdio server (for Claude Desktop / Cursor). For CLI scanning, use mcp-blast-radius-gate as above.

  • 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

Available Tools

2 tools
aos_compliance_self_testC

Self-connectivity check for MCP wiring.

Inputs: mock. Returns: object

aos_compliance_validateA

Validate one agent directory and return pass/fail with blocking_reasons.

gate_mode=advisory (default): returns pass/fail info, does NOT block next steps. gate_mode=blocking: pass=false sets blocks_next_step=true for CI enforcement.

Inputs: tool_id, target_dir, gate_mode, mock. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clear distinct purposes: one checks connectivity (self-test) and the other validates agent directories. No overlap in functionality.

    Naming Consistency5/5

    Both tools use the consistent prefix 'aos_compliance_' followed by a verb in snake_case, creating a predictable naming pattern.

    Tool Count3/5

    With only 2 tools, the surface feels thin for a compliance validation server. However, it may be acceptable if the domain is narrow.

    Completeness2/5

    The server lacks common operations such as listing directories, retrieving past validations, or managing configurations, making it incomplete for typical compliance workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Local-first MCP audit and cleanup tool that scans MCP configs to find stale servers, abandoned packages, duplicates, context-heavy tools, risky permissions, and major upgrades, generating reversible patch plans.
      59 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Audits MCP server configurations and packages for security risks such as typosquats, credential exposure, and malicious code, with zero dependencies and no execution.
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Read-only CLI and stdio MCP server that inventories the MCP servers an agent can reach, compiles a least-privilege policy with a reason for every allow/approve/deny verdict, and emits a delivery the recipient re-verifies in their own browser using a sha256 manifest.
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      Enables users to deterministically audit MCP servers for security issues across manifests, source, runtime responses, multi-call state, identity, and install scripts, and to run an inline gateway that gates tool calls and scans responses before returning them.
      3
      17 PyPI
      1
      Apache 2.0