mcpField
B
Bomly

Bomly

本地服务
bomly.dev开发工具143 天前更新

关于 Bomly

Bomly 是面向开发者、安全工程师和 CI 流水线的开源命令行工具,用于构建和检查软件依赖图。它可追溯依赖来源、审核策略、比较 Git 引用并生成标准报告,也通过 MCP 向编码 Agent 提供扫描、解释和差异比较操作。

主要功能

  1. 01从源码、SBOM、Git 引用和镜像构建依赖图
  2. 02解释软件包的引入原因
  3. 03补充漏洞与许可证数据
  4. 04按策略审核并返回 CI 可用的退出码
  5. 05导出 JSON、SARIF、SPDX 和 CycloneDX
  6. 06在终端交互式检查依赖图

适用场景

  1. 01检查拉取请求中的依赖变化
  2. 02根据策略或漏洞发现阻断 CI 构建
  3. 03为项目或镜像生成 SBOM
  4. 04调查软件包来源及依赖路径

MCP 相关

Bomly 可通过 `bomly mcp serve` 或 `bomly-mcp` npm 封装程序作为本地 MCP 服务运行。编码 Agent 可调用其扫描、解释和差异比较工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"bomly-dev-bomly-cli": {
"command": "npx",
"args": [
"-y",
"bomly-mcp"
]
}
}
}
启动命令npx -y bomly-mcp

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

安装包
npmbomly-mcp0.30.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Bomly CLI

分析你的软件 DNA。

CI OpenSSF Scorecard 最新版本 GitHub 版本下载量 许可证:Apache-2.0 Go 参考文档

Bomly 是一款免费、开源的命令行工具,可帮助你了解软件依赖项。它面向开发者、安全工程师和 CI 流水线构建。Bomly 可以:

  • 将源代码树、SBOM、Git 引用和容器镜像扫描并整合为一张依赖关系图;
  • 说明软件包为何存在;
  • 在你使用 --enrich 请求时,添加漏洞和许可证数据;
  • 根据策略检查结果,并返回 CI 可据此采取操作的退出码;
  • 写入 JSON、SARIF、SPDX 和 CycloneDX 格式的输出。

无需账户,无需登录,无需托管服务,也没有遥测。只有一个二进制文件。除非你传入 --enrich,否则 Bomly 不会联系任何漏洞或许可证服务。网络与隐私列出了所有网络访问触发条件,你可以自行核实这一说法。

安装

# macOS / Linuxbrew
brew install bomly-dev/tap/bomly

# Linux / macOS install script
curl -fsSL https://bomly.dev/install.sh | sh

# Windows
winget install Bomly.BomlyCLI

使用 bomly version 检查安装是否成功。安装说明介绍了 Linux 软件包、Scoop、go install、使用你自己的 Syft 和 Grype 的精简版 bomly-lite 二进制文件、校验和以及卸载方法。

开始扫描

# Scan the current project
bomly scan

# Scan a specific directory
bomly scan --path ./services/api

# Scan a container image
bomly scan --image ghcr.io/example/app:latest

# Scan a remote Git ref
bomly scan --url https://github.com/owner/repo --ref v1.2.3

# Read an existing SPDX or CycloneDX SBOM
bomly scan --sbom --path ./sbom.cdx.json

Bomly 会读取清单、锁文件、软件包管理器输出、容器层或现有 SBOM,并将其整合为一张依赖关系图。原生检测器支持 Go、npm、pnpm、Yarn、Maven、Gradle、Python、Composer、Bundler、GitHub Actions 等。Syft 则覆盖其余生态系统和容器镜像。请参阅支持矩阵和扫描目标。

Bomly 扫描进度,显示已索引的子项目、检测到的依赖项、已增强的数据包以及已解析的依赖关系图

## Bomly 能回答的问题
问题命令了解更多
我们依赖哪些组件?bomly scan入门指南
哪些软件包存在已知漏洞,是否有修复方案?bomly scan --enrich匹配器
此构建应该失败吗?bomly scan --enrich --audit --fail-on high审计器、退出代码
我的代码能触达哪些发现?(实验性功能)bomly scan --enrich --audit --analyze --fail-on high --fail-on reachable可达性
为什么会有这个软件包?bomly explain lodashexplain
此 PR 中有哪些更改?bomly diff --base main --head HEAD --enrich --auditdiff
为我生成 SBOMbomly scan -o spdx=sbom.spdx.json -o cyclonedx=sbom.cdx.jsonSBOM 格式
给我一份 CI 可读取的内容bomly scan --json、--format sarif输出格式

可达性是实验性功能:“不可达”并不保证安全。用例中还有更多示例,发布保障列出了每个版本发布前都会进行的检查。

交互式探索

想要手动检查依赖图时,可以打开终端 UI:

bomly scan --interactive

你可以用它模糊查找软件包、检查版本和作用域、在发现之间切换,并查看依赖项如何进入依赖图,无需将报告写入磁盘。请参阅交互式 TUI。

Bomly 交互式 TUI 概览,显示组件、漏洞、许可证、目标和分布面板

为拉取请求设置门禁

B​​omly Guard action 会针对拉取请求的合并基点运行 bomly diff,并将结果作为检查和 PR 评论发布。只会审计 PR 更改过的软件包,因此其他位置已有的发现不会阻止 PR:

# .github/workflows/bomly.yml
- uses: actions/checkout@v5
  with:
    fetch-depth: 0
- uses: bomly-dev/bomly-guard@v1
  with:
    fail-on: high

请参阅 Bomly Guard。CI 集成中提供了适用于 GitLab、Jenkins、Azure DevOps 和 CircleCI 的示例。

GitHub 拉取请求检查显示 Bomly Guard 未通过必需的依赖项检查

将 Bomly 与 AI Agent 配合使用

Bomly 可以作为 Model Context Protocol (MCP) 的本地服务运行,让 AI 编码 Agent 调用你在命令行中使用的同一组 scan、explain 和 diff 工具:

bomly mcp serve

如果尚未安装 CLI,bomly-mcp npm 包装器也会启动同一服务:

npx -y bomly-mcp

请参阅 MCP 服务,了解 Claude Code、Cursor 和 VS Code 的配置方法以及工具参考。

配置和扩展

Bomly 依次从 ~/.bomly/config.yaml、--config 或 BOMLY_CONFIG 指定的文件、BOMLY_* 环境变量和命令行标志中读取设置,后面的来源优先级更高。仓库中的配置文件不会自动加载:要使用该文件,请传入 --config .bomly/config.yaml。请参阅配置参考。

插件可以添加检测器、匹配器、审计器和分析器,无需分叉 Bomly:

bomly plugins install github:bomly-dev/[email protected]
bomly plugins enable bomly.examples.detector.bun-lock
bomly plugins verify bomly.examples.detector.bun-lock

请参阅插件,了解如何安装和信任插件;请参阅插件编写,了解如何编写插件。

文档

贡献者设置说明见 CONTRIBUTING.md。架构详情见 docs/ARCHITECTURE.md。

问题与赞助

如有问题、想法或需要帮助,请使用 Bomly Discussions。请使用此仓库的 issues 报告已确认的 Bug、回归问题和具体的实现工作。

如果 Bomly 对你有帮助,可以为仓库加星、分享反馈、参与贡献,或赞助持续维护。

许可证

Bomly CLI 根据 Apache License 2.0 授权。

评论

支持 Markdown

第一次接触 MCP?

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

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