Skip to main content

Agentic AI Bill of Materials scanner — discover and risk-assess the AI agents, models, tools, and MCP servers in a codebase.

Project description

aibom — Agentic AI Bill of Materials scanner

Discover, inventory, and risk-assess the AI agents, models, tools, and MCP servers in a codebase — without running it. aibom produces an AI-BOM (the AI equivalent of an SBOM) plus posture findings mapped to the OWASP LLM Top 10, and gates your CI on new critical/high findings.

Zero dependencies (Python stdlib only). Part of ScopeSafe.

pip install scopesafe-aibom   # installs the `aibom` command

aibom .            # human-readable report, exit 1 on CRITICAL/HIGH
aibom . --json     # raw AI-BOM JSON (SBOM export)

What it finds

  • Agents — LangChain, LangGraph, CrewAI, AutoGen, LlamaIndex constructors and graph idioms (StateGraph().compile(), .bind_tools(), factory functions), with cross-file resolution of imported tools/models
  • Models — client instantiation across frameworks + direct SDKs, including config-default model names (model: str = field(default="provider/model"))
  • Tools@tool decorators, Tool() constructors, TOOLS = [...] lists, with capability tags (filesystem/exec/network/delete/...)
  • MCP servers.mcp.json / claude_desktop_config.json, scope classification (broad/scoped/unknown)
  • Posture findings — broadly-scoped MCP servers, exec-capable servers, destructive tools without human-in-the-loop, hardcoded provider keys — each mapped to an OWASP LLM Top 10 category

Continuous monitoring (ScopeSafe platform)

Upload scans to track finding lifecycle (new / recurring / resolved) across your projects and gate PRs:

export AIBOM_TOKEN=aibom_...          # workspace API token from settings
export AIBOM_API_URL=https://api.scopesafe.net

aibom . --upload --project my-repo
# aibom: uploaded scan 3f2a... (project 'my-repo')
#   findings: 1 new, 4 recurring, 2 resolved
#   gate: fail — 1 new high finding(s), e.g. AGENT-001: ...

Exit codes with --upload: 0 gate passed/skipped · 1 gate failed · 2 upload error.

GitHub Action

# .github/workflows/aibom.yml
name: aibom
on: [pull_request]
permissions:
  contents: read
  pull-requests: write   # required for the PR comment
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: sandhipveera/aibom@v0.2.0
        with:
          api-token: ${{ secrets.AIBOM_TOKEN }}   # optional — omit for a local gate scan
          api-url: https://api.scopesafe.net       # optional

On every pull request the action posts a sticky comment with the AI-BOM summary, findings, and a link to track/gate them on ScopeSafe (updated in place on each push, not duplicated). It fails the build on new critical/high risk. Omit api-token/api-url to run a local gate scan with a signup-oriented comment. Set comment: "false" to disable the comment. The comment needs pull-requests: write in the workflow's permissions.

Development

pip install -e ".[dev]"
pytest -q
ruff check src/

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 Distribution

scopesafe_aibom-0.2.0.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

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

scopesafe_aibom-0.2.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file scopesafe_aibom-0.2.0.tar.gz.

File metadata

  • Download URL: scopesafe_aibom-0.2.0.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scopesafe_aibom-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ad1c729997c3de6187cf8b940107ac28990687a6e459b0e5cb0c453f2983aed9
MD5 0122e38a5a1967f9c8514137faef9677
BLAKE2b-256 be1f48f7ec4e362246bd620ffba723e089257edc3706ba6324457ae2a6bef2a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for scopesafe_aibom-0.2.0.tar.gz:

Publisher: release.yml on sandhipveera/aibom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for scopesafe_aibom-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da30f9dd1657c2358776576d8d5a64aedde528afe5cad5408f007f4684e13c3d
MD5 61581f5982af6a6309953e4e3e6b0476
BLAKE2b-256 750596eb54ccbf76b00f6181811937e9ac79e85b291fa2b6bcf6facf5e4c4771

See more details on using hashes here.

Provenance

The following attestation bundles were made for scopesafe_aibom-0.2.0-py3-none-any.whl:

Publisher: release.yml on sandhipveera/aibom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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