Bomly について
Bomlyは、開発者、セキュリティエンジニア、CIパイプライン向けのオープンソースCLIで、ソフトウェアの依存関係グラフを作成・調査できます。依存元の説明やポリシー監査、Git参照の比較、標準形式での出力に対応し、MCP経由でコーディングエージェントにも操作を提供します。
主な機能
- 01ソース、SBOM、Git参照、イメージからグラフを作成
- 02パッケージが含まれる理由を説明
- 03脆弱性とライセンス情報を追加
- 04CIで判定可能な終了コードでポリシー監査
- 05JSON、SARIF、SPDX、CycloneDXで出力
- 06ターミナルで依存関係グラフを対話的に確認
活用シーン
- 01プルリクエストの依存関係変更を確認
- 02ポリシーや脆弱性の検出結果でCIを制御
- 03プロジェクトやイメージのSBOMを生成
- 04パッケージの由来と依存経路を調査
MCP 対応
`bomly mcp serve`または`bomly-mcp` npmラッパーでローカルMCPサーバーとして動作します。コーディングエージェントはスキャン、説明、差分比較のツールを呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ソフトウェアのDNAを分析しましょう。
Bomly は、ソフトウェアが何に依存しているかを把握するための、無料のオープンソースコマンドラインツールです。開発者、セキュリティエンジニア、CI パイプライン向けに作られています。Bomly は次のことができます。
- ソースツリー、SBOM、Git の参照、コンテナーイメージをスキャンし、1 つの依存関係グラフにまとめます。
- パッケージが存在する理由を説明します。
--enrichを指定すると、脆弱性とライセンスのデータを追加します。- 結果をポリシーと照合し、CI が処理できる終了コードを返します。
- JSON、SARIF、SPDX、CycloneDX 形式で出力します。
アカウントもログインも、ホストするサービスもテレメトリーも不要です。バイナリ 1 つで使えます。--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 を読み取り、1 つの依存関係グラフにまとめます。ネイティブ検出機能は、Go、npm、pnpm、Yarn、Maven、Gradle、Python、Composer、Bundler、GitHub Actions などに対応しています。その他のエコシステムやコンテナーイメージには Syft を使用します。サポートマトリックスとスキャン対象をご覧ください。
| 質問 | コマンド | 詳細 |
|---|---|---|
| 何に依存していますか? | 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 lodash | 説明 |
| このPRで何が変わりましたか? | bomly diff --base main --head HEAD --enrich --audit | diff |
| SBOMを出力する | bomly scan -o spdx=sbom.spdx.json -o cyclonedx=sbom.cdx.json | SBOM形式 |
| CIで読み取れる形式を出力する | bomly scan --json、--format sarif | 出力形式 |
到達可能性の分析は実験的機能です。「到達不能」であっても、安全が保証されるわけではありません。ユースケースには、さらに多くの活用例があります。また、リリースの保証には、各リリースで実施するチェックを記載しています。
対話的に調べる
グラフを手動で確認するときは、ターミナルUIを開きます。
bomly scan --interactive
これを使うと、パッケージをあいまい検索し、バージョンやスコープを調べ、検出結果をたどり、レポートをディスクに書き込まずに依存関係がグラフに追加された経緯を確認できます。対話型TUIを参照してください。
プルリクエストをゲートする
B意Bomly Guardアクションは、プルリクエストのマージベースに対して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での活用例があります。
AI エージェントでBomlyを使う
BomlyはModel Context Protocol(MCP)のローカルサーバーとして実行できるため、AI コーディングエージェントは、コマンドラインで使うのと同じscan、explain、diffツールを呼び出せます。
bomly mcp serve
CLIをインストールしていない場合は、bomly-mcp npmラッパーを使うと同じサーバーを起動できます。
npx -y bomly-mcp
Claude Code、Cursor、VS Codeでの設定とツールのリファレンスについては、MCPサーバーを参照してください。
設定と拡張
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
プラグインのインストールと信頼についてはプラグインを、プラグインの作成についてはプラグインの作成を参照してください。
ドキュメント
- はじめに — Bomly をインストールして、最初のスキャンを実行します
- チュートリアル — 最初のスキャンから、実際のプロジェクトでの CI ゲートまでを解説します
- ユースケース — PR ゲート、SBOM、トリアージ、ライセンス、オフラインスキャンのレシピを紹介します
- FAQ — プライバシー、アカウント、ツールの違いについて、よくある質問に簡潔に回答します
- スキャン対象とモノレポ — Bomly がスキャンできる対象を説明します
- 出力形式とSBOM 形式 — テキスト、JSON、SARIF、SPDX、CycloneDX について説明します
- CI 統合とBomly Guard — パイプラインと GitHub Action について説明します
- MCP サーバー — Bomly を Claude Code、Cursor、VS Code、または他の MCP クライアントに接続します
- 到達可能性 — コードから脆弱性に到達できるかどうかに基づく、実験的なトリアージについて説明します
- プラグイン — 外部の検出器、マッチャー、監査ツール、アナライザーについて説明します
- リリースノート — 各バージョンでの変更点を確認できます
- すべてのドキュメント — ドキュメントの全目次を確認できます
コントリビューター向けのセットアップ手順はCONTRIBUTING.mdにあります。アーキテクチャの詳細はdocs/ARCHITECTURE.mdにあります。
質問とスポンサーシップ
質問、アイデア、サポートについては、Bomly Discussionsをご利用ください。確実なバグ、リグレッション、具体的な実装作業については、このリポジトリの issue をご利用ください。
Bomly が役立った場合は、リポジトリにスターを付ける、フィードバックを共有する、貢献する、または継続的なメンテナンスを支援することで応援してください。
ライセンス
Bomly CLI はApache License 2.0のもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。