agent-bom-scan — AI Supply Chain Vulnerability Scanner
Checks packages for CVEs, scans container images natively, verifies package
provenance via Sigstore, scans filesystems, and generates SBOMs.
Install
pipx install agent-bom
agent-bom scan # discover agents and scan dependencies
agent-bom check langchain==0.1.0 # check a specific package with version
agent-bom image nginx:1.25 # scan container image (native)
agent-bom fs . # scan filesystem packages
agent-bom scan . -f cyclonedx -o sbom.json # generate an SBOM
agent-bom verify agent-bom # verify Sigstore provenance
agent-bom where # show all discovery paths
As an MCP Server
{
"mcpServers": {
"agent-bom": {
"command": "uvx",
"args": ["agent-bom", "mcp", "server"]
}
}
}
When to Use
- "check package" / "is this package safe"
- "scan image" / "scan container"
- "verify" / "check provenance"
- "is this safe" / "CVE lookup"
- "scan dependencies"
- "blast radius"
- "generate SBOM"
Tools (8)
| Tool |
Description |
check |
Check a package for CVEs (OSV, NVD, EPSS, KEV) |
scan |
Full discovery + vulnerability scan pipeline |
blast_radius |
Map CVE impact chain across agents, servers, credentials |
remediate |
Prioritized remediation plan for vulnerabilities |
verify |
Package integrity + SLSA provenance check |
diff |
Compare two scan reports (new/resolved/persistent) |
where |
Show MCP client config discovery paths |
inventory |
List discovered agents, servers, packages |
Examples
# Check a package before installing
check(package="langchain", version="0.1.0", ecosystem="pypi")
# Map blast radius of a CVE
blast_radius(cve_id="CVE-2024-21538")
# Full scan
scan()
# Verify package provenance
verify(package="agent-bom")
Agentic Workflows
Use tool chains, not isolated calls, when the user asks for a decision:
| User intent |
Recommended sequence |
Output |
| "Is this MCP safe to install?" |
registry_lookup -> check -> blast_radius when a package/version is known |
concise allow/warn/block recommendation with evidence |
| "Gate this PR" |
scan with SARIF output and fail on high/critical findings |
SARIF for code scanning plus non-zero gate result |
| "Audit my fleet inventory" |
validate inventory -> scan/agents with JSON output -> context_graph |
findings plus graph-ready JSON |
| "What changed since last run?" |
current scan -> diff against prior JSON |
new/resolved/persistent findings |
| "What should I fix first?" |
scan -> blast_radius -> remediate plan |
prioritized plan only; no file writes |
Pick output by consumer: SARIF for CI, JSON for automation/graph, HTML or
Markdown for human review, CycloneDX/SPDX for SBOM consumers.
For CLI gates, prefer:
agent-bom scan --format sarif --output agent-bom.sarif --fail-on-severity high
Guardrails
- Show CVEs even when NVD analysis is pending or severity is
unknown — a CVE ID is still a real finding.
- Treat
UNKNOWN severity as unresolved, not benign — it means data is not yet available.
- Do not modify any files, install packages, or change system configuration.
- Only public package names and CVE IDs leave the machine for vulnerability database lookups.
- Ask before scanning paths outside the user's home directory.
Privacy & Data Handling
# Step 1: Install
pip install agent-bom
# Step 2: Review redaction logic BEFORE scanning
# sanitize_env_vars() redacts credential-like and sensitive env values before
# reporting; benign configuration values may remain in the in-memory model:
# https://github.com/msaad00/agent-bom/blob/main/src/agent_bom/security.py
# Step 3: Verify package provenance (Sigstore)
agent-bom verify agent-bom
# Step 4: Only then run scans
agent-bom scan
Verification
- Source: github.com/msaad00/agent-bom (Apache-2.0)
- Sigstore signed:
agent-bom verify agent-bom@0.104.0
- 7,100+ tests with CodeQL + OpenSSF Scorecard
- No telemetry: Zero tracking, zero analytics
1---2name: agent-bom-scan3description: Open security scanner for agentic infrastructure — agents, MCP, packages, blast radius, runtime, and trust for package CVEs (OSV, NVD, EPSS, KEV), container images, provenance, filesystems, and SBOMs. Use when: "check package", "scan image", "verify", "is this safe", "scan dependencies", "CVE lookup", "blast radius".4license: Apache-2.05---67# agent-bom-scan — AI Supply Chain Vulnerability Scanner89Checks packages for CVEs, scans container images natively, verifies package10provenance via Sigstore, scans filesystems, and generates SBOMs.1112## Install1314```bash15pipx install agent-bom16agent-bom scan # discover agents and scan dependencies17agent-bom check langchain==0.1.0 # check a specific package with version18agent-bom image nginx:1.25 # scan container image (native)19agent-bom fs . # scan filesystem packages20agent-bom scan . -f cyclonedx -o sbom.json # generate an SBOM21agent-bom verify agent-bom # verify Sigstore provenance22agent-bom where # show all discovery paths23```2425### As an MCP Server2627```json28{29 "mcpServers": {30 "agent-bom": {31 "command": "uvx",32 "args": ["agent-bom", "mcp", "server"]33 }34 }35}36```3738## When to Use3940- "check package" / "is this package safe"41- "scan image" / "scan container"42- "verify" / "check provenance"43- "is this safe" / "CVE lookup"44- "scan dependencies"45- "blast radius"46- "generate SBOM"4748## Tools (8)4950| Tool | Description |51|------|-------------|52| `check` | Check a package for CVEs (OSV, NVD, EPSS, KEV) |53| `scan` | Full discovery + vulnerability scan pipeline |54| `blast_radius` | Map CVE impact chain across agents, servers, credentials |55| `remediate` | Prioritized remediation plan for vulnerabilities |56| `verify` | Package integrity + SLSA provenance check |57| `diff` | Compare two scan reports (new/resolved/persistent) |58| `where` | Show MCP client config discovery paths |59| `inventory` | List discovered agents, servers, packages |6061## Examples6263```64# Check a package before installing65check(package="langchain", version="0.1.0", ecosystem="pypi")6667# Map blast radius of a CVE68blast_radius(cve_id="CVE-2024-21538")6970# Full scan71scan()7273# Verify package provenance74verify(package="agent-bom")75```7677## Agentic Workflows7879Use tool chains, not isolated calls, when the user asks for a decision:8081| User intent | Recommended sequence | Output |82|-------------|----------------------|--------|83| "Is this MCP safe to install?" | `registry_lookup` -> `check` -> `blast_radius` when a package/version is known | concise allow/warn/block recommendation with evidence |84| "Gate this PR" | `scan` with SARIF output and fail on high/critical findings | SARIF for code scanning plus non-zero gate result |85| "Audit my fleet inventory" | validate inventory -> `scan`/`agents` with JSON output -> `context_graph` | findings plus graph-ready JSON |86| "What changed since last run?" | current scan -> `diff` against prior JSON | new/resolved/persistent findings |87| "What should I fix first?" | `scan` -> `blast_radius` -> `remediate` plan | prioritized plan only; no file writes |8889Pick output by consumer: SARIF for CI, JSON for automation/graph, HTML or90Markdown for human review, CycloneDX/SPDX for SBOM consumers.9192For CLI gates, prefer:9394```bash95agent-bom scan --format sarif --output agent-bom.sarif --fail-on-severity high96```9798## Guardrails99100- Show CVEs even when NVD analysis is pending or severity is `unknown` — a CVE ID is still a real finding.101- Treat `UNKNOWN` severity as unresolved, not benign — it means data is not yet available.102- Do not modify any files, install packages, or change system configuration.103- Only public package names and CVE IDs leave the machine for vulnerability database lookups.104- Ask before scanning paths outside the user's home directory.105106## Privacy & Data Handling107108```bash109# Step 1: Install110pip install agent-bom111112# Step 2: Review redaction logic BEFORE scanning113# sanitize_env_vars() redacts credential-like and sensitive env values before114# reporting; benign configuration values may remain in the in-memory model:115# https://github.com/msaad00/agent-bom/blob/main/src/agent_bom/security.py116117# Step 3: Verify package provenance (Sigstore)118agent-bom verify agent-bom119120# Step 4: Only then run scans121agent-bom scan122```123124## Verification125126- **Source**: [github.com/msaad00/agent-bom](https://github.com/msaad00/agent-bom) (Apache-2.0)127- **Sigstore signed**: `agent-bom verify agent-bom@0.104.0`128- **7,100+ tests** with CodeQL + OpenSSF Scorecard129- **No telemetry**: Zero tracking, zero analytics