agent-bom
agent-bom is a comprehensive AI supply chain security scanner and runtime enforcement MCP server for discovering, assessing, and remediating vulnerabilities across AI agent infrastructure, MCP servers, and dependencies.
Core Scanning & Discovery
scan– Full AI supply chain scan: auto-discovers MCP configs (Claude Desktop, Cursor, Windsurf, VS Code Copilot, etc.), extracts packages, queries OSV.dev for CVEs, assesses credential exposure, computes blast radius, and returns a structured report. Supports Docker image scanning, policy evaluation, SBOM ingestion, and NVD/EPSS/CISA KEV enrichment.inventory– Fast discovery and package extraction without CVE scanning; quick inventory of MCP configs, servers, packages, and transport types.where– List all MCP client config discovery paths and show which files exist on the current system.check– Check a specific package (npm, PyPI, Go, Cargo, Maven, NuGet) for known CVEs before installing, with severity, CVSS score, and fix version.
Risk Analysis
blast_radius– Map the full attack chain for a CVE: affected packages → MCP servers → agents → exposed credentials and tools.context_graph– Build an agent context graph with lateral movement analysis (BFS paths) to answer "if agent X is compromised, what else is reachable?"runtime_correlate– Cross-reference scan results with proxy runtime audit logs to identify which vulnerable tools were actually called in production.
Policy, Compliance & Remediation
policy_check– Evaluate security policy rules (severity thresholds, CISA KEV, AI risk flags, denied packages) against scan results; returns pass/fail with violations.compliance– Map findings to 47 controls across OWASP LLM Top 10, OWASP MCP Top 10, MITRE ATLAS, and NIST AI RMF with per-control status and an overall score.remediate– Generate actionable fix commands (npm/pip upgrades), credential scope reduction guidance, and flag unfixable vulnerabilities.cis_benchmark– Run CIS Foundations Benchmark checks against AWS (18 checks) or Snowflake (12 checks) with per-check pass/fail results.
Trust & Integrity
skill_trust– Assess SKILL.md/instruction files across 5 trust categories with a benign/suspicious/malicious verdict.verify– Verify package integrity via SHA-256/SRI hashes and SLSA build provenance attestations against npm/PyPI registries.marketplace_check– Pre-install trust check for an MCP server package: download count, CVE status, registry verification, and trust signals.registry_lookup– Query the built-in threat intelligence registry (109+ MCP servers) for risk level, known tools, credential requirements, and verification status.
Advanced Capabilities
generate_sbom– Generate a standards-compliant SBOM in CycloneDX 1.6 or SPDX 3.0 format.diff– Compare a fresh scan against a baseline to identify new/resolved vulnerabilities and package inventory changes.code_scan– Run SAST via Semgrep on source code to detect SQL injection, XSS, command injection, hardcoded credentials, and more.fleet_scan– Batch-scan a list of MCP server names against the security registry for fleet-wide risk assessment.analytics_query– Query vulnerability trends, posture history, and runtime event summaries from ClickHouse.
Additional features: real-time runtime enforcement proxy with behavioral attack pattern detection, MCP config drift watching, SIEM integration (Splunk, Datadog, Elasticsearch), output in JSON/SARIF/HTML/Mermaid formats, and AI-specific scanning for GPU/ML packages and model provenance (HuggingFace, Ollama, MLflow, W&B).
Scans AWS cloud infrastructure and Amazon Q configurations to identify security vulnerabilities and ensure compliance with CIS benchmarks.
Integrates with ClickHouse to provide security scan analytics, visualization, and posture scoring for AI infrastructure.
Performs security scanning of Databricks environments to detect misconfigurations and dependency vulnerabilities.
Scans Docker images and Docker-based MCP servers for security risks, tool poisoning, and dependency vulnerabilities.
Integrates as a CI/CD gate to automate security scans and enforce compliance policies during the development lifecycle.
Supports deployment and fleet-wide security scanning of AI agent infrastructure within Kubernetes using Helm charts.
Discovers and analyzes JetBrains AI configurations to identify potential credential leaks and security risks.
Enables dispatching security alerts and vulnerability findings to Jira for incident management and remediation tracking.
Scans Kubernetes clusters to map vulnerability propagation and assess the security posture of AI agent deployments.
Discovers and scans MLflow platforms to identify security risks and verify the provenance of AI models.
Provides integration with OpenTelemetry for monitoring and tracing the security scan pipeline and execution.
Dispatches real-time security alerts and scan reports to Slack channels via webhooks for immediate notification.
Provides governance and security scanning for Snowflake instances, including compliance checks against CIS Snowflake benchmarks.
Generates standardized Software Bill of Materials (SBOM) reports in the SPDX format for security compliance and transparency.
Analyzes security risks and maps the blast radius for AI agent tools and MCP servers utilizing SQLite databases.
From evidence source to verified action
Security teams rarely lack scanners. They lack one trustworthy view of what was scanned, what was discovered, which findings are actually connected to critical systems, who owns the fix, and whether the fix held.
agent-bom closes that loop with two honest entry paths:
Start from | First action | What produces inventory |
A repository, image, SBOM, workstation, or MCP config | Run a local or CI scan—no connection required | The scanner reads the target and emits inventory, findings, provenance, and graph evidence together |
AWS, Azure, GCP, Snowflake, Kubernetes, or another managed source | Add a read-only connection in the self-hosted control plane, then run or schedule a scan | The connection defines scope and credentials; the scan collects the source and creates the inventory snapshot |
Both paths converge after collection: normalize evidence into the same Finding + UnifiedGraph contracts, correlate reachable risk, assign an owner and SLA, then re-scan to verify the result. Inventory is always the output of a named target or connected source—never unexplained preloaded data.
The product promise: start with one useful artifact today; keep the same evidence model as you add CI, connected sources, history, assignments, compliance exports, and runtime enforcement in your own environment.
Quick start · Evidence workflow · Integration capability matrix · Measured matcher proof · Control-plane architecture
Product proof: independent evidence, one verifiable path
The views below come from the committed Reference evidence lab — modeled
local infrastructure. The credential-free run uses the real repository parser
and bundled advisory scanner for pillow@9.0.0 / CVE-2023-4863, then
correlates exact OCI digest, Kubernetes UID, MCP tool, workload identity, and
runtime receipts. It is not customer evidence or a live-cloud claim.
The resulting path is confirmed only because every directed hop is traversable
and provenance-backed: exposed service → workload → digest-pinned container →
pillow@9.0.0 / CVE-2023-4863 → MCP capability → workload identity →
modeled sensitive object store. The same lab records an observed gateway call
and a separate strict opt-in block before the remediation handoff.
Regenerate the reference lab · Open the full product gallery · See the capture protocol
Related MCP server: agent-audit
Value by role
Role | Start here | Primary outcome |
Developer / AI engineer |
| See dependencies, secrets, IaC, agents, MCP, and whether Click, Flask, or FastAPI entry points can reach vulnerable packages before shipping |
AppSec / product security |
| Inventory remote actions and reusable workflows with their refs, source provenance, and CI-hardening findings |
Cloud security | Add a read-only connection, then run a scan | Build scoped cloud, identity, and posture inventory with explicit coverage and provenance |
Platform / DevOps |
| Schedule scans, centralize evidence, assign owners and SLAs, and verify remediation |
GRC / audit |
| Export mapped evidence while preserving unavailable, partial, and not-assessed states |
CISO / engineering leader | Open Architecture in the self-hosted graph | Compare observed Current state with modeled Proposed and Difference views; proposals remain labeled as not observed or deployed |
Security engineering and GRC remain separate workflows: findings and reachability are not presented as audit certification. See product boundaries. GitHub Actions collection and credential requirements are documented in permissions; scenario truth boundaries are defined by the graph contract.
Quick start
Choose the smallest path that proves value. No account or control plane is required for repository, image, SBOM, workstation, or MCP configuration scans.
Path A — scan now, no connection
The offline sample completes without downloading an advisory database and shows the inventory, finding, reachable path, and remediation output shape.
pip install agent-bom
agent-bom scan --demo --offlineThe sample intentionally contains a known-malicious package, so exit status 1 is expected
and the printed report is complete. Scan a repository next:
agent-bom scan .The repository scan shows inventory, findings, and reachable impact.
agent-bom scan . and agent-bom scan -p . are the same command; PATH is an
alias for --project.
Path B — connect a source, then scan
Use this path when the source is an account or platform rather than a local target. Start the customer-controlled control plane, open Connections, add the provider's read-only grant, and run the first scan. The browser flow defaults to an explicit first scan after verification; scheduled scans are an explicit operator opt-in.
pip install 'agent-bom[ui]'
AGENT_BOM_NO_AUTH_ROLE=analyst agent-bom serve --persist ~/.agent-bom/control-plane.dbThe explicit SQLite path keeps scan jobs, findings, compliance history, and
graph inventory available together after a restart. Omit --persist only for
an intentionally ephemeral process. The explicit local analyst role permits
this loopback operator to run scans; the server's default anonymous role remains
read-only.
For headless onboarding, agent-bom connect <provider> prints the exact grant,
credential boundary, verification step, and next scan command. The
cloud connection guide documents AWS, Azure, GCP, and
Snowflake, including organization scope and scheduler behavior.
Need a disconnected scan? Seed the smallest package-advisory database first:
agent-bom db update --osv-ecosystem PyPI
agent-bom scan . --offlineIf that database is missing or unreadable, the scan writes a partial artifact
when -o is set and exits 1; CI therefore cannot mistake unavailable
advisory coverage for a clean scan.
On a fresh database, that command covers only the selected ecosystem; packages
from other ecosystems remain explicit offline coverage gaps. Repeat
--osv-ecosystem for a polyglot repository, or use
agent-bom db update --source osv for OSV's all-ecosystems archive. The full
archive can exceed 1 GB, may take several minutes, and shows live progress with
the exact total when the server supplies it. Run the broader
agent-bom db update when you also need distro, exploit-probability, and
known-exploited-vulnerability feeds.
A non-zero exit is a verdict, not a crash. scan exits 0 when nothing
matched a gate, and 1 when one did — a --fail-on-* threshold you set, a
known-malicious package, or a scan that did not complete. The report is printed
in full either way, and the last line names the gate that matched. Full
exit-code contract.
Save an artifact with agent-bom scan . -f sarif -o findings.sarif, or follow
the first-run guide for formats and CI use.
Daily developer loop
Try the scanner without installing it, then check a package before adding it:
uvx agent-bom scan .
uvx agent-bom check requests@2.33.0 --ecosystem pypicheck returns an allow/unsafe/incomplete pre-install verdict; scan covers the
repository plus discovered AI/MCP configuration. To make both dependency and
secret gates automatic for a team, pin the shipped consumer hooks:
repos:
- repo: https://github.com/msaad00/agent-bom
rev: v0.103.1
hooks:
- id: agent-bom-secrets
- id: agent-bom-scanRun pre-commit install once. The hooks install agent-bom into their own
isolated environment, so contributors do not need a separate global install.
Hook behavior and CI examples.
You want to | Go to |
Scan your repository |
|
A dashboard on your laptop | |
A shared deployment (Docker, Helm, EKS, Snowflake) | Self-host table |
Gate a pull request | |
Give an AI agent the tools |
|
Connect a cloud account |
|
Use the curated, explicitly synthetic sample when you only want to inspect the output shape:
agent-bom scan --demo --offlineThe sample intentionally contains a known-malicious package, which fails closed.
Self-host
The control plane is the growth path, not a prerequisite. Use it when one-off artifacts need to become a durable team workflow: registered sources, scheduled scans, history, inventory snapshots, finding ownership, graph investigation, compliance evidence, and runtime policy—all inside the customer's cloud, cluster, database, identity, and audit boundary.
Start the loopback evaluation profile:
pip install 'agent-bom[ui]'
AGENT_BOM_NO_AUTH_ROLE=analyst agent-bom serve --persist ~/.agent-bom/control-plane.dbThen open Connections to add a source or New Scan to target a repository, image, SBOM, MCP configuration, or IaC path. A scan produces the inventory; inventory is not populated merely by starting the server.
For a shared deployment, use the production-shaped Docker or Helm path and configure real identity, TLS, PostgreSQL, encryption, and audit keys before exposing it.
Target | Start here |
Docker Compose | Platform compose — PostgreSQL, split secrets, migration job |
Docker Compose (evaluation) | Pilot compose — loopback only, SQLite, no auth |
Helm / Kubernetes |
|
EKS | |
Snowflake SPCS / Native App |
|
Air-gapped |
Examples target this release candidate; confirm release availability before copying an exact pin. Otherwise, use the latest version shown on PyPI.
Deployment overview · Enterprise configuration · Cloud connections
Need | First action | Artifact or next step |
GitHub CI |
| SARIF, PR summary, and a policy exit code |
Cloud evidence |
| Deploy the read-only grant, then connect and scan |
Runtime gateway |
| Allow, warn, and block audit events |
Agent interface |
| 86 MCP tools, 6 resources, and 8 workflow prompts |
Agent distribution | Registry-specific installation metadata |
MCP server mode exposes 86 MCP tools, 6 resources, and 8 workflow prompts, all read-first: discovery and analysis never mutate a scanned target.
Set YDC_API_KEY to enable the optional youcom_search MCP tool for live web
and news context alongside the local threat-intel database. It is the only tool
that sends your query to a third party, it is off unless the key is set, and the
request is pinned to the You.com origin over TLS — so the key cannot be
redirected to another host by configuration.
The CLI, Docker, API, Helm chart, MCP server, gateway, and SDK are distribution surfaces of the same product. The Snowflake SPCS / Native App lane runs inside the customer's Snowflake account; it is a customer-owned deployment target, not an agent-bom-hosted service. Snowflake and Snowpark also remain connector and runtime integrations for the other deployment profiles.
Surface | Get it |
Python package |
|
Container |
|
Kubernetes |
|
GitHub Action | |
MCP server |
|
MCP registries | |
SDKs | Python · TypeScript · Go |
Trust
Read-only discovery by default; runtime write decisions are separate and explicit.
Credentials are write-only where stored, encrypted at rest, and never returned by API responses.
API and control-plane routes are tenant scoped and auth protected outside explicit local mode.
Missing evidence is shown as unavailable or partial, never converted into a factual zero.
Public examples and screenshots use deterministic synthetic identifiers only.
Threat model · Release verification · Security policy · MCP security model
Contributing and support
Stuck, or not sure where a question belongs? SUPPORT.md has the routing and an honest statement of what response to expect.
To contribute, start with CONTRIBUTING.md, AGENTS.md, and the open issues.
Apache-2.0 licensed.
Maintenance
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
AWS cloud security scanners for AI agents — S3, IAM, EC2, EKS, RDS, CloudTrail, CloudWatch Logs
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
Related MCP Servers
- AlicenseAqualityDmaintenanceA security scanner that evaluates installed MCP servers for vulnerabilities by aggregating findings from 16 scanning engines into detailed trust scores. It enables users to scan their local AI agent configurations or specific repository URLs for potential security risks.42Apache 2.0
- AlicenseNot gradedqualityCmaintenanceSecurity scanner for MCP servers. Detects prompt injection, command injection, auth bypass, and excessive permissions across tools, resources, and prompts.262MIT
- FlicenseAqualityCmaintenanceScan for AI tools and agents - MCP servers & CLIs for scanning, auditing, and managing your AI environment1
- AlicenseAqualityFmaintenanceSecurity scanner for AI agent packages that enables AI agents to audit MCP servers and packages for vulnerabilities, prompt injection, and supply chain attacks.5293AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/msaad00/agent-bom'
If you have feedback or need assistance with the MCP directory API, please join our Discord server