mcpField
A
agent-bom

agent-bom

本地服务
github.com/msaad00安全35今天更新

关于 agent-bom

agent-bom 是面向 AppSec 和平台工程师的开源安全扫描器与可自托管控制平面,用于评估 AI Agent、MCP 服务、软件依赖和云基础设施。它将发现结果与收集到的上下文及证据关联,辅助确定修复优先级。

主要功能

  1. 01扫描依赖、代码、容器、IaC 和云环境
  2. 02发现 Agent、MCP 服务、工具与凭据
  3. 03结合可达性证据关联发现结果
  4. 04导出 SARIF、CycloneDX、SPDX、JSON 和 HTML
  5. 05代理或拦截选定的实时 MCP 工具调用

适用场景

  1. 01发布前检查仓库中的易受攻击依赖
  2. 02追踪哪些 Agent 和服务可能触达风险项
  3. 03更新易受攻击的软件包后比较扫描结果
  4. 04监控选定 MCP 调用中的投毒工具或注入结果

MCP 相关

该服务向 MCP 客户端提供聚焦调查的工具,并可选择图谱、云、运行时或审计配置文件。其代理和网关还可检查或拦截选定的实时 MCP 工具调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"msaad00-agent-bom": {
"command": "uvx",
"args": [
"agent-bom"
],
"env": {
"NVD_API_KEY": "<NVD_API_KEY>"
}
}
}
}
启动命令uvx agent-bom
需要配置的环境变量
NVD_API_KEY密钥NVD API key for higher rate limits on vulnerability enrichment

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiagent-bom0.109.0

工具

8

收录的工具列表 · 更新于 1 周前

参数类型必填说明
imageany否要扫描的 Docker 镜像(例如 'nginx:1.25'、'ghcr.io/org/app:v1')。
limitinteger否`section` 每页的最大条目数(1-200)。
detailenum否仅输出 JSON。'summary'(默认):数量、主要发现、受影响路径,以及用于分页后续查询的 result_id。'full':完整 AI-BOM 文档;如果超过响应预算,则进行结构化缩短(仍为有效 JSON,并包含 _truncation 元数据)。summary | full
enrichboolean否启用 NVD CVSS、EPSS 概率和 CISA KEV 补充信息。
offsetinteger否`section` 中从零开始的条目偏移量。
policyany否与扫描结果一同评估的策略对象,例如 {"rules": [{"id": "no-critical", "severity_gte": "critical", "action": "fail"}]}。
offlineany否true:仅使用本地漏洞数据库,并跳过 registry、OSV、GHSA 和 NVIDIA 网络查询(需要已通过 `agent-bom db update` 填充的数据库)。false:在线查询这些来源。省略:默认在线查询,除非服务器运营方设置了 AGENT_BOM_OFFLINE 或 AGENT_BOM_VULN_DB_OFFLINE。
packageany否要扫描的直接软件包或 MCP 启动命令,例如 'npx @modelcontextprotocol/[email protected]' 或 '@modelcontextprotocol/server-filesystem'。裸的 'name@version' 规格默认视为 npm;其他生态系统请传入 ``ecosystem``。
sectionany否要分页查看的已存储结果部分,例如 'findings'、'blast_radius'、'packages'、'exposure_paths'。
repo_urlany否要克隆并扫描的公开 Git 仓库 URL,例如 'https://github.com/org/repo'。将仓库的依赖项、项目结构、机密信息、IaC 和 AI/MCP 使用情况映射到 AI-BOM。静态且只读:仓库会浅克隆到临时目录,在绝不执行其代码的情况下进行扫描,然后删除。无需本地检出即可将此工具指向目标,这是最快的方式。
ecosystemany否当规格未指定启动器时,``package`` 的生态系统:'npm'、'pypi'、'go'、'cargo'、'maven'、'nuget'、'rubygems'、'composer'、'swift'、'pub'、'hex'、'conda'、'deb'、'apk' 或 'rpm'。省略时,根据规格推断生态系统(例如,PEP 440 规格符,如 'flask==0.12.2',对应 PyPI),并在结果警告中报告任何推断。
result_idany否先前扫描响应中的 result_id。指定后不会运行新扫描:返回该结果的摘要,或 `section` 的一页内容。
sbom_pathany否要导入的现有 CycloneDX 或 SPDX JSON SBOM 文件路径。
scorecardboolean否使用 OpenSSF Scorecard 分数丰富软件包信息(需要可解析的 GitHub 仓库)。
db_sourcesany否扫描前要同步的数据库来源,以逗号分隔(例如 'nvd,ghsa,osv,epss,kev')。
transitiveboolean否解析 npx/uvx 软件包的传递依赖。
config_pathany否要扫描的本地目录——项目根目录或 MCP 客户端配置目录。若省略,自动发现已安装的 MCP 客户端,除非 no_discover=true。不能与 repo_url 同时使用。
no_discoverboolean否禁用对当前主机上 MCP 客户端的自动发现。仍会扫描显式指定的仓库/配置、镜像、SBOM 和软件包目标;CI 中需要确定性扫描时使用此选项。
fail_severityany否漏洞严重级别达到或高于此级别时返回失败状态:critical、high、medium、low。
output_formatstring否输出格式:'json'(默认)、'sarif'、'cyclonedx'、'spdx'、'junit'、'csv' 或 'markdown'。
warn_severityany否存在达到或高于此严重级别的漏洞时返回警告状态(gate_status=warn,exit 0)。与 fail_severity 配合使用可设置两级 CI 门禁,例如 warn_severity='medium'、fail_severity='critical'。
auto_update_dbboolean否扫描前,如果本地漏洞数据库早于每日新鲜度目标,则明确刷新该数据库。
verify_integrityboolean否根据 registry 验证软件包 SHA-256/SRI 哈希和 SLSA 来源证明。

详细介绍

agent-bom — 发现。扫描。关联。行动。跨代码仓库、软件供应链、AI 和 MCP、云、身份与数据的安全证据。

构建 PyPI Python 3.11 至 3.14 Docker 拉取量 Apache-2.0 许可证 OpenSSF 评分卡 Glama MCP 服务 Smithery MCP 服务

发现 AI Agent 背后的易受攻击软件,并追踪暴露证据。

面向 AI、MCP 和云基础设施的开源安全扫描器与可自托管控制平面。 适用于负责 AI Agent 和 MCP 服务的应用安全与平台工程师: 扫描代码仓库,将发现的问题与 Agent 和基础设施上下文关联, 并根据影响范围和可达性证据确定修复优先级。本地扫描无需账户。

快速开始 · 集成 · 示例图 · 自托管 · 产品导览 · 文档

## 快速开始

在要检查的代码库中,确保已安装 uv:

uvx agent-bom scan .

阅读发现的 Agent 和 MCP 服务,优先处理严重级别最高的问题,并按照受影响软件包的修复指南操作。请结合判定结果查看覆盖范围缺口:证据不完整并不代表评估结果正常。 此扫描能确认和不能确认的内容。

应用经过审核的修复,更新锁文件,然后在同一代码库中重新运行 uvx agent-bom scan .,以验证问题是否有所变化。 使用 uvx agent-bom scan . -f sarif -o findings.sarif 保存报告,然后上传报告并设置 CI 门禁。 如果设置失败,请运行 uvx agent-bom doctor。有关 pip 安装和现有 checkup 助手工作流,请参阅首次运行指南。

在 GitHub Actions 中,同一扫描会将 SARIF 上传到代码扫描,并在发现高危或严重问题时失败,与 CLI 使用相同的默认门禁:

permissions:
  contents: read
  security-events: write
steps:
  - uses: actions/checkout@v4
  - uses: koda-ai-studio/agent-bom@v0
    with:
      upload-sarif: 'true'

手边没有项目?运行 uvx agent-bom scan --demo --offline,查看捆绑的示例。 预期退出码为 1:该示例会触发安全门禁。非零退出码可能表示触发了安全门禁,也可能表示评估不完整;请检查报告和覆盖范围。 请参阅退出码。

录制的 agent-bom CLI,展示示例问题和修复指南;未执行修复

录屏使用带标签的示例数据和捆绑的安全公告。凭据引用是名称,而非机密值。录制中展示的关系不能证明发生了利用攻击或成功访问数据。

覆盖范围

领域可获取的内容
依赖项检查 Python、JavaScript、Go、Java、.NET、Rust 等语言的锁文件和清单,并与 OSV、GitHub 安全公告和 NVD 进行匹配,同时纳入 KEV 和 EPSS。可针对所有已存储的扫描结果询问“我是否受到 CVE-X 的影响”。
代码Semgrep 或任何 SARIF 工具发现的问题,以及对 AI 代码的原生分析(提示词注入接收点、防护措施、工具暴露情况),并判断你的代码是否会调用易受攻击的函数。
容器和 IaC在受限的内存和时间范围内扫描映像;检测 Dockerfile、Terraform、Kubernetes、Helm 和 compose 风险,并在 SARIF 中标注确切行号。
AI Agent 和 MCP从本地配置和 Agent 框架中发现 Agent、MCP 服务、工具和凭据,并关联它们可访问的内容。
云以只读方式从 AWS、Azure、GCP、Databricks、Snowflake 等平台收集信息,并在同一张图中执行 CIS 和最佳实践检查。
运行时提供 MCP 代理和网关,用于对被污染的工具和注入的结果发出警报,或使用 --injection-mode enforce 阻止它们。
支持的来源

目前,发现和扫描会读取以下来源;最后一行列出可发送证据的位置。该列表由代码支持的清单生成(docs/images/integrations-manifest.json);如果清单列出的项目没有实现,测试就会失败。

类别集成
AI 客户端 + IDEClaude、Codex、Cursor、GitHub Copilot、Windsurf、Cortex Code、Gemini CLI、JetBrains AI、Junie、Amazon Q、Cline、Roo Code、Continue、Zed、Goose、Snowflake CLI、Docker MCP Toolkit、Tabnine、Sourcegraph Cody、Aider、Void、Aide、Trae、Pieces、OpenClaw、mcp-cli
AI 平台 + 模型中心OpenAI、Hugging Face、Ollama、MLflow、W&B、Langfuse、LangSmith
GPU + 新兴云服务商CoreWeave、Nebius、Lambda、RunPod、Vast.ai、Crusoe、GPU 容器 + K8s GPU 节点
超大规模云服务商 + KubernetesAWS、Azure、GCP、Kubernetes
数据 + 向量存储Snowflake、Databricks、Supabase、Pinecone、Qdrant、Weaviate、Chroma、Milvus
身份 + SaaS + 开发Okta、GitHub Actions、Vercel、Microsoft Entra ID、Jira、ServiceNow、Slack、Jamf
证据输出ClickHouse、BigQuery、S3、GCS、Azure Blob、Jira 工单、Slack 警报、Vanta、Drata、OCSF syslog

产品名称和徽标是其所有者的商标,仅用于标识受支持的证据来源。使用这些名称和徽标并不意味着获得背书或建立合作关系。

调查上下文和暴露面

哪个 Agent 使用了易受攻击的组件?它能访问什么?有哪些证据支持这条路径? 按精确且限定租户范围的身份关联保留的扫描结果;追踪每个 Agent 的记录影响范围,查看其 MCP 服务、软件包、发现项、凭据和数据存储。检查每种关系的来源和证据类型,然后重新扫描相同范围以确认变化。

生产 AI 环境示例:Document Intake Agent 使用依赖 pillow 9.0.0 的 document-tools MCP 服务,该软件包关联至列入 KEV 的 CVE-2023-4863;Support Triage Agent 使用引用 TICKETING_API_KEY 的 ticketing MCP 服务,该密钥可访问客户工单存档

虚构的示例环境。虚线表示使用、凭据和访问关系,这些关系是已配置或建模的,并非运行时观测结果;路径分析仅涵盖已收集的快照。 打开完整尺寸的环境关系图。

**从 Agent 到已验证的修复:**选择 Document Intake Agent → 检查 CVE-2023-4863(高危,列入 KEV)以及每条箭头上的证据 → 采用建议的修复方案 → 重新扫描已更改的固定版本,并比较快照。该比较验证的是更改后的输入,而不是正在运行的部署。

**支持证据:一个软件包,三个已解析输入。**仓库固定版本、镜像 SBOM 和建模的 Kubernetes 工作负载都解析为同一个 [email protected]。镜像清单和部署实例仍是独立节点;公告回执处于打开状态。

仓库固定版本、镜像清单和 Kubernetes 部署实例都解析为同一个 pillow 软件包,并关联至列入 KEV 的 CVE-2023-4863;同时显示以通俗语言说明的关系证据

使用真实解析器和建模基础设施;图中的路径不能证明发生了漏洞利用。 打开完整尺寸的关系图。 探索上下文、关联关系和可达性 · 运行参考实验 · 重现这些截图

向团队说明一项发现:创建影响简报, 其中包含受影响的资产、来源凭据、证据缺口和待审核的后续行动。

我是否会受到新 CVE 的影响?响应新 CVE: 将其与已存储的扫描结果进行匹配,包括仅由 NVD 发布的 CVE,并获取 受影响资产及其修复目标、可能受影响且需验证的发行版软件包,以及影响范围。

代码库和云环境调查

追踪源代码导入、部署配置和 CI,直至已发布的容器及其易受攻击的软件包:

示例代码库:将源代码、部署配置和 CI 作业关联到容器、易受攻击的 npm 和 PyPI 软件包、相关公告以及 CI 配置错误

沿着公共 API 网关追踪到易受攻击的工作负载、其角色和 PII 存储桶:

示例云账户:公共 API 网关暴露了一个包含严重级别公告的工作负载,该工作负载以有权读取 PII 存储桶的角色进行身份验证

打开示例图谱

在浏览器中试用演示:在带标签的示例数据上运行的只读 UI 副本,无需安装,也不需要后端。扫描、设置和登录功能均已关闭。如需在本地打开相同的图谱:

pip install 'agent-bom[ui]==0.110.0'
agent-bom quickstart --run --offline

运行它输出的服务命令,然后打开图谱 URL。离线快速入门会跳过软件包 CVE 查询,因此 CVE 数量为零并不代表没有问题;如需查看有公告支持的发现,请使用内置演示,或填充公告数据库。

在你的环境中自托管

你的基础设施、身份、数据库和审计边界。 从已发布版本的检出内容启动本地试点:

git clone --depth 1 --branch v0.110.0 https://github.com/koda-ai-studio/agent-bom.git && cd agent-bom
AGENT_BOM_IMAGE_TAG=0.110.0 docker compose up -d

打开 **http://localhost:3000**,然后进入 Connections 或 New Scan。试点服务绑定到回环地址,并将状态保留在 Docker 卷中。对于云账户,添加范围受限的只读连接,验证访问权限,然后开始扫描。使用经过身份验证的部署。

  • 使用 CLI 或 CI 扫描;导出发现结果、SBOM 和报告。
  • 在你自己的控制平面中集中管理清单、图谱证据、修复和合规性。
  • 通过代理或网关,对选定的实时 MCP 工具调用执行策略。

Docker 试点指南 · 使用 PostgreSQL 的 Compose · 选择部署方式 · 企业控制 · 连接云账户

配合你现有的工具使用

使用 CLI 或 GitHub Action、REST API 或 MCP;导出 SARIF、CycloneDX、 SPDX、JSON 和 HTML。云连接器和机群同步会收集清单; 代理和网关部署会补充运行时证据。

对于其他 MCP 客户端,请运行 agent-bom mcp server。 从默认配置文件中的八个专用工具开始。 针对图谱、云、运行时或审计工作,选择一个 MCP 配置文件。 尝试三种调查:受影响的 Agent、暴露凭据回执以及扫描前后对比。 导入现有扫描器报告,无需替换其来源证据。

安装前,使用 uvx agent-bom check [email protected] --ecosystem pypi 检查依赖项。添加 pre-commit 和 CI 设置,以便重复检查。

代理、网关和机群 · 集成能力矩阵 · MCP 客户端设置 · Smithery 设置和清单

集成

Claude Code 和 Codex 插件:直接询问你的编码 Agent,而不是阅读报告

直接询问你的编码 Agent,而不是阅读报告。在 Claude Code 中:

/plugin marketplace add koda-ai-studio/agent-bom
/plugin install agent-bom@agent-bom

在 Codex 中,运行 codex plugin marketplace add koda-ai-studio/agent-bom,然后 从 Plugins Directory 安装 agent-bom-local。两个插件都会在本地运行固定版本的 agent-bom,不会向 agent-bom 服务发送任何内容。

询问技能
“这个项目可以安全发布吗?”checkup:给出一个结论,以及最重要的三项修复建议
“我是否受到 CVE-2025-29927 的影响?”affected:说明在已扫描内容中是否受影响或未发现,绝不会称其为“安全”
“我的 Agent 都做过什么?”activity:从本地会话历史记录中查看 MCP 使用情况、未使用的服务和高风险命令
“我的 Agent 设置权限是否过于宽松?”audit-mcp 和 audit-skills
“给我一份 AI-BOM。”bom:为这台机器、一个项目、一个映像或一个云账户生成 CycloneDX 或 SPDX 格式的清单

添加 /plugin install agent-bom-guard@agent-bom,即可在 Claude 执行恶意软件包和仿冒名称的软件包安装前将其拦截。 所有技能及其权限 · Guard 详情

## 信任与证据

默认情况下,发现过程使用只读访问权限。显式磁盘侧扫描会创建临时云资源;缺失的证据仍不可用或不完整,控制项映射不等同于审计认证。

持久化的运行时、代理和网关活动会在图中保留来源凭据和有界时间窗口。精确的清单引用可以绑定记录;未解析的身份和采集缺口会明确标示。记录的活动不能证明执行情况,也不会授予访问权限。请参阅运行时证据边界。

MITRE 技术关联提供调查背景,而非攻击证据。ATLAS 映射凭据保留弱点关联和源目录哈希;建模的图路径不能证明观察到的执行或有效访问。

已测量的匹配器证明 · 产品边界 · 权限 · 威胁模型 · 发布验证 · 图数据模型

贡献与支持

在 GitHub Codespaces 中打开

刚加入?30 分钟完成第一个 PR指南和预先配置好的 Codespace,无需本地设置,就能带你从零开始通过测试。可以从good first issue或贡献者路线图开始,并在 Discord 的 #contributors 频道提问。

agent-bom 欢迎更多维护者:GOVERNANCE.md介绍了从贡献者到问题分诊者、审阅者和维护者的成长路径,MAINTAINERS.md列出了各项内容的审阅负责人。如果 agent-bom 提供了有用的证据,欢迎点星或在反馈中留下简短说明,帮助其他安全团队发现并信任它。

贡献 · 功能与路线图 · 支持 · 报告不准确的发现 · Apache-2.0

源代码版本:v0.111.0 · 最新发布版本:v0.110.0 · 更新日志

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。