agent-bom について
agent-bomは、AIエージェント、MCPサーバー、ソフトウェア依存関係、クラウド基盤を評価する、AppSec・プラットフォームエンジニア向けのオープンソースセキュリティスキャナー兼セルフホスト可能な制御プレーンです。収集した状況や証拠と検出結果を関連付け、修正の優先順位付けを支援します。
主な機能
- 01依存関係、コード、コンテナ、IaC、クラウドのスキャン
- 02エージェント、MCPサーバー、ツール、認証情報の検出
- 03到達可能性の証拠に基づく検出結果の関連付け
- 04SARIF、CycloneDX、SPDX、JSON、HTMLへの出力
- 05選択したライブMCPツール呼び出しの中継または遮断
活用シーン
- 01リリース前のリポジトリで脆弱な依存関係を確認
- 02検出項目に到達し得るエージェントやサービスを追跡
- 03脆弱なパッケージの更新後にスキャン結果を比較
- 04選択したMCP呼び出しで汚染ツールや注入結果を監視
MCP 対応
グラフ、クラウド、ランタイム、監査向けのプロファイルを選び、調査用ツールをMCPクライアントに公開します。プロキシやゲートウェイで、選択したライブMCPツール呼び出しを検査または遮断することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| image | any | いいえ | スキャンする Docker イメージ(例:'nginx:1.25'、'ghcr.io/org/app:v1')。 |
| limit | integer | いいえ | `section` の 1 ページあたりの最大項目数(1-200)。 |
| detail | enum | いいえ | JSON のみを出力します。'summary'(既定):件数、主な検出結果、影響を受けるパス、ページ形式で後続取得するための result_id。'full':AI-BOM ドキュメント全体。応答上限を超える場合は構造的に短縮します(有効な JSON を維持し、_truncation メタデータを含みます)。summary | full |
| enrich | boolean | いいえ | NVD CVSS、EPSS 確率、CISA KEV の補足情報を有効にします。 |
| offset | integer | いいえ | `section` 内の項目オフセット(0 始まり)。 |
| policy | any | いいえ | スキャン結果と併せて評価するポリシーオブジェクト。例:{"rules": [{"id": "no-critical", "severity_gte": "critical", "action": "fail"}]}。 |
| offline | any | いいえ | true:ローカル脆弱性データベースのみを使用し、registry、OSV、GHSA、NVIDIA へのネットワーク照会をスキップします(`agent-bom db update` でデータを登録済みのデータベースが必要です)。false:これらのソースをオンラインで照会します。省略時:サーバー運用者が AGENT_BOM_OFFLINE または AGENT_BOM_VULN_DB_OFFLINE を設定していない限り、オンラインで照会します。 |
| package | any | いいえ | スキャンする直接のパッケージまたは MCP 起動コマンド。例:'npx @modelcontextprotocol/[email protected]' または '@modelcontextprotocol/server-filesystem'。裸の 'name@version' 形式は npm と見なされます。それ以外の場合は ``ecosystem`` を渡してください。 |
| section | any | いいえ | ページ分割して取得する保存済み結果のセクション。例:'findings'、'blast_radius'、'packages'、'exposure_paths'。 |
| repo_url | any | いいえ | クローンしてスキャンする公開 Git リポジトリの URL。例:'https://github.com/org/repo'。リポジトリの依存関係、プロジェクト構造、シークレット、IaC、AI/MCP の使用状況を AI-BOM にマッピングします。静的かつ読み取り専用です。リポジトリを一時ディレクトリに浅くクローンし、コードを実行することなくスキャンした後、削除します。ローカルにチェックアウトせずにこのツールの対象を指定できる、最も速い方法です。 |
| ecosystem | any | いいえ | 仕様でランチャーが指定されていない場合の ``package`` のエコシステム:'npm'、'pypi'、'go'、'cargo'、'maven'、'nuget'、'rubygems'、'composer'、'swift'、'pub'、'hex'、'conda'、'deb'、'apk'、'rpm'。省略時は仕様からエコシステムを推測します('flask==0.12.2' のような PEP 440 形式の指定は PyPI と見なされます)。推測内容は結果の警告に記載されます。 |
| result_id | any | いいえ | 以前のスキャン応答に含まれる result_id。指定すると新しいスキャンは実行せず、その結果の概要または `section` の 1 ページ分を返します。 |
| sbom_path | any | いいえ | 取り込む既存の CycloneDX または SPDX JSON SBOM ファイルのパス。 |
| scorecard | boolean | いいえ | OpenSSF Scorecard のスコアでパッケージ情報を補完します(解決可能な GitHub リポジトリが必要です)。 |
| db_sources | any | いいえ | スキャン前に同期するデータベースソースをカンマ区切りで指定します(例:'nvd,ghsa,osv,epss,kev')。 |
| transitive | boolean | いいえ | npx/uvx パッケージの推移的依存関係を解決します。 |
| config_path | any | いいえ | スキャンするローカルディレクトリ(プロジェクトのルートまたは MCP クライアント設定ディレクトリ)。省略時は、no_discover=true でない限り、インストール済みの MCP クライアントを自動検出します。repo_url とは同時に指定できません。 |
| no_discover | boolean | いいえ | ホスト上の MCP クライアントの自動検出を無効にします。明示的に指定したリポジトリ/設定、イメージ、SBOM、パッケージの対象は引き続きスキャンされます。CI で結果を決定的にする場合に使用してください。 |
| fail_severity | any | いいえ | 脆弱性がこの重大度以上の場合に失敗ステータスを返します:critical、high、medium、low。 |
| output_format | string | いいえ | 出力形式:'json'(デフォルト)、'sarif'、'cyclonedx'、'spdx'、'junit'、'csv'、'markdown'。 |
| warn_severity | any | いいえ | この重大度以上の脆弱性がある場合に警告ステータス(gate_status=warn、exit 0)を返します。fail_severity と併用すると、warn_severity='medium'、fail_severity='critical' のような 2 段階の CI ゲートを設定できます。 |
| auto_update_db | boolean | いいえ | スキャン前に、ローカル脆弱性データベースが毎日の鮮度目標より古い場合、明示的に更新します。 |
| verify_integrity | boolean | いいえ | registry に対してパッケージの SHA-256/SRI ハッシュと SLSA provenance を検証します。 |
詳細
AI エージェントの背後にある脆弱なソフトウェアを見つけ、露出の証拠を追跡します。
AI、MCP、クラウドインフラストラクチャ向けのオープンソースセキュリティスキャナー兼セルフホスト可能なコントロールプレーンです。 AI エージェントと MCP サーバーを担当する AppSec およびプラットフォームエンジニア向けです。 リポジトリをスキャンし、検出結果をエージェントやインフラストラクチャのコンテキストと関連付け、 影響範囲と到達可能性の証拠に基づいて修正の優先順位を決定できます。ローカルスキャンにアカウントは不要です。
クイックスタート · インテグレーション · サンプルグラフ · セルフホスト · 製品ツアー · ドキュメント
## クイックスタートuv をインストールした状態で、調査するリポジトリから次を実行します。
uvx agent-bom scan .
検出されたエージェントと 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 は想定どおりです。サンプルがセキュリティゲートに該当しています。ゼロ以外の終了コードは、セキュリティゲートへの該当または評価の不完全を示す場合があります。レポートとカバレッジを確認してください。
終了コードをご覧ください。

この録画では、ラベル付きのサンプルデータと同梱のアドバイザリを使用しています。認証情報への参照は名前であり、シークレットの値ではありません。記録された関係性は、悪用やデータアクセスの成功を証明するものではありません。
対応範囲
| 領域 | 提供内容 |
|---|---|
| 依存関係 | Python、JavaScript、Go、Java、.NET、Rust などのロックファイルとマニフェストを、KEV と EPSS を含む OSV、GitHub アドバイザリ、NVD と照合します。保存済みのすべてのスキャンを対象に、「CVE-X の影響を受けているか」を確認できます。 |
| コード | Semgrep などの SARIF ツールによる検出結果に加え、AI コードのネイティブ分析(プロンプトインジェクションのシンク、ガードレール、ツールの公開範囲)と、コードが脆弱な関数に到達するかどうかを確認します。 |
| コンテナーと IaC | メモリと実行時間に上限を設けてイメージをスキャンします。Dockerfile、Terraform、Kubernetes、Helm、compose のリスクを SARIF 内の該当行とともに示します。 |
| AI エージェントと MCP | ローカル設定とエージェントのフレームワークからエージェント、MCP サーバー、ツール、認証情報を検出し、それらがアクセスできる対象と関連付けます。 |
| クラウド | AWS、Azure、GCP、Databricks、Snowflake などから読み取り専用で情報を収集し、同じグラフ内で CIS およびベストプラクティスに基づくチェックを行います。 |
| ランタイム | MCP プロキシとゲートウェイにより、汚染されたツールや挿入された結果を警告するか、--injection-mode enforce でブロックします。 |
対応ソース
検出とスキャンでは、現在これらのソースから読み取ります。最後の行には、エビデンスの送信先が記載されています。リストはコードに基づくマニフェスト(docs/images/integrations-manifest.json)から生成され、実装のない項目が記載されている場合、テストは失敗します。
| 分野 | インテグレーション |
|---|---|
| AI クライアント+IDE | Claude、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 ノード |
| ハイパースケーラー+Kubernetes | AWS、Azure、GCP、Kubernetes |
| データ+ベクトルストア | Snowflake、Databricks、Supabase、Pinecone、Qdrant、Weaviate、Chroma、Milvus |
| ID 管理+SaaS+開発 | Okta、GitHub Actions、Vercel、Microsoft Entra ID、Jira、ServiceNow、Slack、Jamf |
| エビデンスの送信先 | ClickHouse、BigQuery、S3、GCS、Azure Blob、Jira チケット、Slack アラート、Vanta、Drata、OCSF syslog |
製品名とロゴは各所有者の商標であり、対応するエビデンスソースを識別する目的でのみ使用しています。これらの使用は、推奨や提携を意味するものではありません。
コンテキストと露出を調査する
脆弱なコンポーネントを使用しているエージェントはどれですか? そのエージェントは何にアクセスできますか? その経路を裏付けるエビデンスは何ですか? 保持されたスキャンを、テナント単位でスコープされた正確な ID によって関連付けます。各エージェントから MCP サーバー、パッケージ、検出結果、認証情報、データストアに至るまで、記録された影響範囲を追跡します。各関係のソースとエビデンスの種類を確認し、同じスコープを再スキャンして変更点を調べます。
架空の環境のサンプルです。破線の使用、認証情報、アクセスのリンクは設定またはモデル化されたものであり、実行時に観測されたものではありません。経路分析は収集されたスナップショットのみを対象とします。 環境グラフをフルサイズで開く。
エージェントから修正の検証まで: Document Intake Agentを選択 → CVE-2023-4863(重大度:高、KEV掲載)と各矢印のエビデンスを確認 → 提案された修復を実施 → 変更されたピンを再スキャンしてスナップショットを比較します。この比較で検証されるのは変更された入力であり、実行中のデプロイではありません。
補足エビデンス:1つのパッケージ、3つの解析済み入力。 リポジトリのピン、イメージのSBOM、モデル化されたKubernetesワークロードは、1つの[email protected]に解決されます。イメージのインベントリとデプロイの出現箇所は別々のノードとして維持され、アドバイザリの受領記録は開いた状態です。
実際のパーサーとモデル化されたインフラストラクチャを使用しています。グラフ上の経路は、悪用されたことを証明するものではありません。 関係グラフをフルサイズで開く。 コンテキスト、相関関係、到達可能性を調べる · リファレンスラボを実行する · このスクリーンショットを再現する
調査結果をチームに説明するには、影響ブリーフを作成します。 影響を受けるアセット、ソースの根拠、エビデンスの不足、次に確認すべきアクションをまとめます。
新しい CVE の影響を受けていますか? 新しい CVE に対応する: 保存済みスキャンと照合します。NVD のみが公開している CVE も対象です。影響を受けるアセットと修正対象、確認が必要な影響を受ける可能性のあるディストリビューションパッケージ、影響範囲を確認できます。
リポジトリとクラウドの調査
ソースのインポート、デプロイ設定、CI をたどり、公開済みコンテナとその脆弱なパッケージを確認します:
公開 API ゲートウェイから、脆弱なワークロード、そのロール、PII バケットまでをたどります:
サンプルグラフを開く
ブラウザーでデモを試す:ラベル付きのサンプルデータを使った UI の読み取り専用コピーです。インストールもバックエンドも不要です。スキャン、設定、サインインは無効になっています。同じグラフをローカルで開くには:
pip install 'agent-bom[ui]==0.110.0'
agent-bom quickstart --run --offline
表示されたサーバーコマンドを実行し、グラフの URL を開きます。オフラインのクイックスタートではパッケージの CVE 検索を省略するため、CVE がゼロでも安全とは判断できません。アドバイザリに基づく調査結果を確認するには、同梱のデモを使用するか、アドバイザリデータベースにデータを登録してください。
環境内でセルフホストする
お客様自身のインフラストラクチャ、ID、データベース、監査境界で運用できます。 公開リリースのチェックアウトからローカルのパイロットを開始します。
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を実行します。
デフォルトのプロファイルでは、用途を絞った8つのツールから始められます。
グラフ、クラウド、実行時、監査の作業に合わせてMCPプロファイルを選択してください。
3つの調査を試す:影響を受けるエージェント、エクスポージャーの証跡、スキャンの前後比較。
既存のスキャナーレポートは、元のエビデンスを置き換えることなくインポートできます。
依存関係をインストールする前に、uvx agent-bom check [email protected] --ecosystem pypiで確認します。
繰り返し確認するには、pre-commitとCIの設定を追加します。
プロキシ、ゲートウェイ、フリート · 連携機能マトリックス · MCPクライアントの設定 · Smitheryの設定とマニフェスト
連携
Claude CodeとCodexのプラグイン:レポートを読む代わりにコーディングエージェントに質問
レポートを読む代わりに、コーディングエージェントに質問します。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:判定と、最も重要な3つの修正点 |
| 「CVE-2025-29927の影響を受けますか?」 | affected:スキャン対象で影響あり、または見つからなかったと回答し、「安全」とは決して回答しません |
| 「私のエージェントは何をしてきましたか?」 | activity:MCPの使用状況、未使用のサーバー、ローカルセッション履歴からのリスクのあるコマンド |
| 「エージェントの設定は許可しすぎていませんか?」 | audit-mcpとaudit-skills |
| 「AI-BOMを作成してください」 | bom:このマシン、プロジェクト、イメージ、またはクラウドアカウント向けのCycloneDXまたはSPDX |
/plugin install agent-bom-guard@agent-bomを追加すると、Claudeが実行する前に、悪意のあるパッケージやタイポスクワッティングされたパッケージのインストールをブロックできます。
すべてのスキルとその権限 ·
Guardの詳細
検出では、デフォルトで読み取り専用アクセスを使用します。明示的なディスクのサイドスキャンでは、一時的なクラウドリソースが作成されます。エビデンスが不足している場合は、利用不可または部分的な状態のままになります。制御マッピングは監査認証ではありません。
永続化されたランタイム、プロキシ、ゲートウェイのアクティビティは、ソースの証跡と制限付きの時間枠をグラフに保持します。正確なインベントリ参照をレコードに紐付けられます。不明な ID や収集の欠落は明示されたままになります。記録されたアクティビティは、実行の証明にもアクセス権の付与にもなりません。ランタイムエビデンスの境界をご覧ください。
MITRE の手法との関連付けは調査の文脈を提供するものであり、攻撃の証明ではありません。ATLAS マッピングの証跡には、脆弱性との関連付けとソースカタログのハッシュが保持されます。モデル化されたグラフパスは、実際に観測された実行や有効なアクセスを立証するものではありません。
測定済みマッチャーの証明 · 製品の境界 · 権限 · 脅威モデル · リリースの検証 · グラフデータモデル
コントリビュートとサポート
初めての方へ。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 · 変更履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。



