mcpField
B
BackBond Agent Scan

BackBond Agent Scan

ローカル
backbond.aiセキュリティ04 週間前に更新

BackBond Agent Scan について

BackBond Agent Scan は、MCP ツールの接続前審査に使うローカル静的スキャナーです。ツールを実行したりホステッドサービスに接続したりせず、ブロック、要レビュー、ブロック所見なしを報告します。ブロック所見なしは実行時の安全性を示すものではありません。

主な機能

  1. 01ツールマニフェストのローカル検査
  2. 02ツール名、説明、スキーマの確認
  3. 03マニフェスト内のツール構成分析
  4. 04ブロック、要レビュー、ブロック所見なしの判定
  5. 05サマリー JSON とオフライン実行

活用シーン

  1. 01MCP サーバー接続前のツール一覧の審査
  2. 02検証済みビルドを使った隔離環境でのスキャン
  3. 03大規模スキャン結果の集約
  4. 04レビュー項目をもとにした証拠確認と人手審査

MCP 対応

提供された MCP tools/list マニフェストを読み取り、ツールを呼び出さずにメタデータを検査します。結果は接続前の審査に使えますが、接続ポリシーを強制せず、実行時の安全性も証明しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"backbond-agent-scan": {
"command": "npx",
"args": [
"-y",
"@backbond/agent-scan"
]
}
}
}
起動コマンドnpx -y @backbond/agent-scan

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@backbond/agent-scan0.6.3

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
toolsarrayいいえ任意のライブ MCP またはサポート対象の関数ツール一覧。省略すると、認識可能なローカル Agent 設定をスキャンします。
emit_recordbooleanいいえ自己実行スキャンの記録を匿名化したものと簡潔なテキストのみを返します。検出パス、成果物名、ツール名は返しません。
suggest_policybooleanいいえ強制力のない無効化/ラップの提案を含めます。

詳細

BackBond Agent Scan

BackBond Agent Scan は、正確なスコープ付きパッケージ @backbond/[email protected] として公開されています。静的な検査のみを行います。お使いのマシン上にすでにあるツールのメタデータとエージェント設定を調べます。ツールの実行、稼働中のエージェントのプローブ、トレースのアップロード、ホストされたサービスへの接続、2つ目のバイナリの実行は行いません。

このスキャナーまたは BackBond の公開情報に誤りがあると思われる場合は、誤検知フォームから修正をお知らせください。72時間以内に回答します。

ブラウザーのプレビューを試す

50秒の合成ウォークスルーを見るか、合成サンプルを試してください。音声のない動画には画面上のテキストとトランスクリプトがあります。提供されたメタデータに対する、検証済みスキャナー 0.6.3 の結果を示すもので、実行時の動作は示しません。

ブラウザーで Agent Scan を試す:3つの合成 MCP サンプルに続いて、お使いの tools/list JSON をローカルでチェックします。アカウント登録もインストールも不要です。このページはマニフェストをメモリ内で処理し、アップロードしません。

ブラウザーのプレビューでは Agent Scan 0.6.3 を使用し、提供された MCP ツールのメタデータのみをチェックします。上限は200ツール、256 KiBです。実行時の動作は評価せず、ブロックしない結果は安全性の判定でも保険の判断でもありません。その他の対応形式、大きな入力、オフラインのワークフローには、以下の固定バージョンの CLI を使用してください。

MCP ツールマニフェストの静的検査

BackBond Agent Scan は、ローカルで決定論的に MCP ツールマニフェストを静的検査し、接続前にオペレーターが MCP ツールを審査できるよう支援します。提案されたツールを実行せずに、検出事項と不足している証拠を報告します。結果は実行時の安全性を証明するものではありません。

接続前に MCP ツールを審査する

提案されたサーバーの実際の tools/list 応答をエクスポートし、以下の固定バージョンの vet-tools の手順で、提供されたマニフェストを検査してください。block の結果は自動接続を停止します。review はオペレーターによる確認が必要です。no_blocking_finding は、提供されたメタデータに対して設定済みのブロックルールが適用されなかったことを意味します。スキャナー自体は接続を強制せず、保険の適用も行いません。

まず信頼できるホストからインストールする

既存の stdio MCP 接続に対してオペレーターがチェックを強制する方法については、 別途用意されている Agent Scan stdio gate をご覧ください。これは認可済みの サーバーを起動し、ツールの接続と呼び出しをゲートします。スキャナーの npm パッケージには含まれておらず、起動時のサンドボックス化も、 実行時の動作の検証も行いません。チェックサムで検証できるスタンドアロン スキャナーと以下の固定バージョンの npm の方法は、手動チェックに引き続き 利用できます。

強化されたエージェントまたはネットワークから隔離されたエージェントの場合、オペレーターはネットワークに接続された信頼できるホストで単一ファイルのリリースアセットとチェックサムをダウンロードして検証し、組織で承認されたソフトウェア配布経路を通じて、検証済みファイルを転送してください。

curl -fLO https://github.com/BackBond/agent-scan/releases/download/v0.6.3/agent-scan.cjs
curl -fLO https://github.com/BackBond/agent-scan/releases/download/v0.6.3/agent-scan.cjs.sha256
sha256sum --check agent-scan.cjs.sha256
node agent-scan.cjs scan

提案された MCP または対応する function-tool のリストを接続する前に、実際にエクスポートしたマニフェストを、まず現在のディレクトリに tools-list.json として保存してください。vet-tools はそのファイルを読み込みます。ファイルの作成は行いません。

node agent-scan.cjs vet-tools --stdin < tools-list.json

agent-scan.cjs は、同じタグ付き CLI を非圧縮かつ監査可能な、依存関係のないビルドにしたものです。npm のインストールやネットワークアクセスなしで、scan、vet-tools、および mcp stdio エントリーポイントを実行します。

公開されたバイト列を検証する

保護されたリリースワークフローでは、パッケージレジストリの来歴情報を公開し、レジストリを正として、tarball、その SHA-256、決定論的なスタンドアロンファイル、およびその SHA-256 を対応するソースタグに添付します。レビュアーは、公開ソースから両方のアーティファクトを再ビルドできます。

git clone --depth 1 --branch v0.6.3 https://github.com/BackBond/agent-scan.git
cd agent-scan
npm pack
sha256sum backbond-agent-scan-0.6.3.tgz
node scripts/build-standalone.js agent-scan.cjs
sha256sum agent-scan.cjs

計算した両方のダイジェストを、公式の v0.6.3 リリースにある .sha256 ファイルと比較してください。不一致がある場合は、作業を中止してください。来歴情報は保護されたビルドを説明するものであり、バイト単位の再現は公開タグとリリースされたアーティファクトを独立して結び付けます。いずれも、実行時の証明でも保険の判断でもありません。

ネットワークから隔離されたエージェント

エージェントのシェルで PrivateNetwork=true が設定されている場合、ループバックのみが有効な場合、ルートがない場合、または AF_INET が無効な場合、リモートのパッケージ、ソース、サーバーのレジストリからソフトウェアをそのシェルに配布することはできません。このスキャナーのためにサンドボックスの制限を緩めないでください。固定した agent-scan.cjs とそのチェックサムをサンドボックスの外でステージングして検証し、承認済みの共有パスまたはイメージを介して転送してから、node でローカルに実行してください。ダウンロードに失敗した場合は scan_not_run とし、検出件数ゼロの結果として扱ってはいけません。

開発用ノートパソコンでの利便性

ネットワークに接続された開発マシンでは、同じ npm バージョンを使う方法も便利で、同等の結果が得られます。

npx -y @backbond/[email protected] scan
npx -y @backbond/[email protected] vet-tools --stdin < tools-list.json
npx -y @backbond/[email protected] vet-tools --stdin --summary-only < tools-list.json

2つ目と3つ目のコマンドを実行するには、既存の tools-list.json が必要です。ライブのツールマニフェストをまだエクスポートしていない場合は、最初の scan コマンドを実行してください。存在しないファイルや作成したファイルを vet-tools にパイプで渡さないでください。

バージョンを固定した Agent Skill をインストールする

互換性のあるエージェントでは、不変のリリースタグから標準スキルを直接インストールできます。

npx -y [email protected] add https://github.com/BackBond/agent-scan/tree/v0.6.3 --skill agent-scan --yes

このインストーラーは別のソフトウェアであり、タグ付けされた公開リポジトリを取得します。制限された環境で使用する前に、インストーラー自体のネットワーク動作とテレメトリ動作を確認してください。スキルをインストールしてもスキャンは実行されません。このリポジトリはスキルのみの Agent Plugin でもあり、フック、コマンド、プラグインレベルの MCP 設定はありません。

手動でインストールするには、skills/agent-scan フォルダー全体を次の場所にコピーします。

.agents/skills/agent-scan/

インストールされたファイルは .agents/skills/agent-scan/SKILL.md である必要があります。コマンドのバージョンを 0.6.3 に固定し、カバレッジの不足は安全ではなく不明として扱い、エージェントに生のマニフェスト、トレース、プロンプト、完全な JSON レポート、パスを含む証跡を決して投稿しないよう指示します。集計作業では、個人を特定できないサマリーのみの出力を許可します。プラグインの注意事項と、再利用可能な AGENTS.md ポリシーブロックを参照してください。

distribution ディレクトリには、正式なローンチメッセージ、クロスプラットフォームのインストールカード、サニタイズ済みのデモ、プライバシーに配慮したアウトリーチ、最初の5回の実行に対するローンチゲートが含まれています。公開向けの文面は、@latest やより強い主張を使って書き直すのではなく、このキットを元にしてください。

vet-tools は、block(終了コード 1)、中程度の検出結果、または不完全/曖昧な証拠によりオペレーターの確認が必要な場合の review(終了コード 3)、または no_blocking_finding(終了コード 0)を返します。指定されたツールの識別情報、説明、入力スキーマ、および同一マニフェスト内での構成をチェックします。ブロック対象の検出結果がないという結果を得るには、ツール名が曖昧でないこと、説明またはタイトルがあること、ツールごとに解析可能なオブジェクト型の入力スキーマが1つあることが必要です。解析できない分岐、競合するスキーマの別名、複数のマニフェスト形式の混在、ASCII 以外の識別情報、見間違えやすい名前の衝突、例として示されたディレクティブ風のテキスト、またはローカル解析の上限を超えるスキーマがある場合、ブロック対象の検出結果がないという結果にはなりません。完全な JSON には、正規化されたプロファイルダイジェストと、実行可能な review_items 配列が含まれます。各項目には、安定したコード、確認可能な場合は影響を受けるツールの数、理由、必要な証拠、次のステップが記載され、判定の変更や修正の適用は行いません。ランタイム時の強制、承認、監査動作、トレース、実際の実行は評価しません。no_blocking_finding は、安全性の判定でもランタイムの証明でもありません。

オペレーターが事前に用意した大規模な実行では、--summary-only を指定すると、呼び出しごとにコンパクトな backbond-vet-summary/v1 JSON オブジェクトが1つ出力され、JSONL での収集に適しています。判定、バージョンの組み合わせ、検出件数、ルールとカバレッジコードのヒストグラム、実行可能な確認項目、プロンプトテンプレートの出現回数が含まれます。通常の 0/1/3 の判定終了コードは維持されますが、ツールとサーバーの識別情報、ツールの説明、アーティファクト名、証拠へのポインター、テンプレートハッシュは省略されます。--json、--sarif、または --suggest-policy とは併用できません。テンプレート識別子が省略されるため、サマリーのみの行から、異なるマニフェストに同じテンプレートが含まれていたかどうかを確認することはできません。出現回数は、指定された1つのマニフェスト内でのものです。スキャナーは引き続きローカルのマニフェストのみを受け付け、Registry から収集したり、スキャン対象のツールを呼び出したりしません。

このリポジトリから、次の2つのフィクスチャを使ってルールパック全体を検証します。

node bin/agent-scan.js scan --tool-schema fixtures/vulnerable/tool-schema.json --permissions fixtures/vulnerable/permissions.json --trace fixtures/vulnerable/trace.json
node bin/agent-scan.js scan --tool-schema fixtures/hardened/tool-schema.json --permissions fixtures/hardened/permissions.json --trace fixtures/hardened/trace.json

脆弱なケースは BB001~BB013 を検出して終了コード 1 で終了します。強化済みのケースは検出結果なし、完全なカバレッジで終了コード 0 となります。

スキャナーの実行はローカルで行われ、ネットワークリクエストは発生しません。npx を初めてインストールする際は、この正確なバージョンがすでにキャッシュされていない限り、設定済みの npm レジストリへの接続が必要です。

npm が利用できない場合

スキャナーの起動前に、EAI_AGAIN、ENETUNREACH、レジストリのタイムアウトが発生することがあります。インストールに1回失敗した時点で中止し、スキャンは実行されなかったと報告してください。@latest に切り替えたり、npm レジストリを変更したり、TLS チェックを無効にしたり、チャットで送られたパッケージパスを受け入れたりしないでください。

スタンドアロンアセットを使う方法が、最も簡単なオフライン手段です。代わりに、担当者が公式の v0.6.3 ソースリリースから backbond-agent-scan-0.6.3.tgz とその .sha256 ファイルをダウンロードし、組織の信頼できるソフトウェア配布経路を通じて両方を転送してもかまいません。実行直前に、転送先で転送されたバイト列を検証してください。

sha256sum --check backbond-agent-scan-0.6.3.tgz.sha256
npm exec --yes --offline --package=./backbond-agent-scan-0.6.3.tgz -- agent-scan scan

Windows PowerShell では、(Get-FileHash .\backbond-agent-scan-0.6.3.tgz -Algorithm SHA256).Hash を .sha256 ファイルの最初の値と比較し、不一致があれば中止してください。

ソースリリースの tarball は、パッケージレジストリに公開されているものと同じ tarball です。固定バージョンのパッケージも、担当者から提供された検証済み tarball も入手できない場合、正しい結果は scan_not_run であり、検出件数ゼロのレポートではありません。

設定不要の初回実行

アーティファクト引数なしで scan を実行すると、範囲を限定した検出が行われます。プロジェクトの親ディレクトリと既知のユーザーパスを確認し、対応するデスクトップアプリやコーディングエージェントの MCP 設定、ポータブルな .mcp.json ファイル、近くにある AGENTS.md または SKILL.md の指示ファイルを探します。指示ファイルは一覧表示されますが、セキュリティ制御として解釈されることはありません。

検出では、既知のファイルを正確に読み取ります。ホームディレクトリを再帰的に走査することはありません。エクスポートされた実行中のツール一覧がない MCP サーバーが設定されている場合、暗黙に問題なしとするのではなく、BB-COV-MCP-TOOLS-NOT-EXPORTED が出力されます。

設定アダプターは、起動せずに MCP サーバー名、コマンド、引数から大まかな機能も導き出します。そのため、一般的なシェル、フェッチ/ブラウザー、ファイルシステム、データベース、認証情報サーバーは、tools/list が見つからない場合でも確認できます。コマンド実行、ルートファイルアクセス、制限なしのウェブ取得に関する認識済みのワイルドカードルールは、導出された権限スコープにマッピングされます。これらはヒューリスティックな観察結果であり、引き続き [derived] とラベル付けされます。

引数なしのスキャンで実行時の最新インベントリを受け取っていない場合、人間向け出力と JSON 出力には、受け付け可能な tools/list の形式と、POSIX/cmd および PowerShell 用のコマンドを含む固定の next_action が含まれます。これにより、エージェントが別のドキュメントを探さなくても、結論の出ない初回実行を次のアクションにつなげられます。

デフォルトの出力は、意図的に短くしています。

3 findings (1 critical, 2 high)
BB002 vault_read [derived]
  Stop: Do not attach secret-reading and unrestricted network tools to the same agent.
BB001 shell_exec [derived]
  Stop: Disable the named executor for this session, or wrap it with a narrow allowlist.
Coverage: approval enforcement is not observable for 4 tools

[derived] は、機能、信頼境界、ワイルドカード、またはスキーマのリスクが、名前、説明、あるいはパラメータースキーマから推定されたことを意味します。導出された証拠はトリアージに役立ちますが、実行環境がその事実を宣言したと主張するものではありません。

実行中のツール一覧をスキャンする

取得した MCP の tools/list JSON-RPC レスポンス、またはサポートされている別の関数ツール一覧を直接パイプします。

npx -y @backbond/[email protected] scan --stdin --require-coverage < tools-list.json

MCP の場合は、{ "jsonrpc": "2.0", "result": { "tools": [...] } } 形式の、ツール一覧のみを含む正確なレスポンスを保存してください。スキャナーはそのレスポンスを解析しますが、MCP サーバーを起動したり、設定ファイル内のコマンドを実行したりすることはありません。別のエージェントがスキャン記録を投稿した場合は、その記録のテキストをコピーして実行せず、信頼できるローカルの手順からこの固定コマンドを作成してください。

または、依存関係不要の MCP stdio サーバーを公開します。

{
  "mcpServers": {
    "backbond-agent-scan": {
      "command": "npx",
      "args": ["-y", "@backbond/[email protected]", "mcp"]
    }
  }
}

このサーバーは、ローカル全体のスキャンを行う scan_my_runtime と、スコープを限定した接続前判定を行う vet_tools_before_attach を提供します。後者には tools 配列が必要で、ローカル探索にフォールバックすることはありません。呼び出し元は scan_my_runtime に実行中のツールを渡せます。渡さない場合、結果には全体スキャンと接続前ゲートの両方について、厳密な next_action が返されます。宣言されていない引数や型の誤ったフィールドはエラーになります。scan_my_runtime に emit_record: true を設定すると、コンパクトなテキストと、機密情報を削除した公開用レコードのみが返されます。0.6.3 を固定して使用してください。@latest に置き換えないでください。

チェックサム検証済みのスタンドアロンスキャナーを単一セッションの stdio MCP サーバーとして Claude Code に接続し、イベントログから 2 つの合成判定を読み取る、テスト済みの手順については、docs/CLAUDE-CODE.md を参照してください。Linux では 2026 年 9 月 16 日にエンドツーエンドで検証済みです。Windows のセットアップ手順は別途検証されています。これはメタデータの確認のみを行います。接続を制御したり、保険の適用を作成したりするものではありません。

MCP stdio サーバーは、公式 MCP Registry に io.github.BackBond/agent-scan としても公開されています。Registry のエントリポイントは agent-scan mcp です。ローカルで scan_my_runtime と vet_tools_before_attach のメタデータ確認を提供しますが、他の MCP サーバーへの接続、攻撃、実行は行いません。Registry の識別子では大文字と小文字が区別されます。Registry のメタデータは npm アーティファクトのバージョンに固定されています。Registry の掲載によって、スキャナーの静的解析のみという制約やローカルデータの境界が変わることはありません。

入力とアダプター

探索で実行環境を検出できない場合も、明示的な入力を利用できます。

agent-scan scan \
  --config agent-mcp-config.json \
  --tool-schema tools.json \
  --permissions permissions.json \
  --trace otel-export.json \
  --fail-on high

サポートされているツール入力は、backbond-tool-schema/v1、MCP tools/list、サポート対象の関数ツール配列、OpenAPI 3.x JSON です。サポートされているトレースは、backbond-trace/v1 と OpenTelemetry OTLP JSON です。生のスパン属性、プロンプト、ツール引数、環境変数の値、設定内容が結果やレシートにコピーされることはありません。

このパッケージを介して、生のエビデンス本文がマシンの外部に送信されることはありません。

エージェントフレームワークは、実行時のツール一覧を汎用形式のいずれか、または標準入力にエクスポートすることで、現在スキャナーを利用できます。バージョン 0.6.3 は、ツールを検出するために任意のフレームワークコードを実行またはインポートしません。フレームワーク固有のコード抽出機能には専用の隔離が必要であり、この決定論的な取り込み処理の後に配置する必要があります。

検出結果

公開されている backbond-local-rules/2.0.2 パックには、次の項目が含まれています。

  • BB001 — 信頼できない入力がコードまたはシェルの実行につながる可能性があります。
  • BB002 — シークレットへのアクセスが、制限のない外部送信と組み合わされています。
  • BB003 — 重大な影響を伴うアクションに、必須の承認がありません。
  • BB004 — 永続的な書き込みで信頼できないコンテンツが受け入れられます。同一インベントリ内にネットワークからの取り込みがある場合、検出結果の深刻度はレビュー対象の中から高に引き上げられます。
  • BB005 — 特権アクションに、確認可能な監査証跡がありません。
  • BB006 — ファイルシステム、サブプロセス、認証情報、またはネットワークのスコープにワイルドカードが含まれています。
  • BB007 — 実行可能なツールが、制約のないシェル、コード、評価器、またはデータベースインタープリターへの入力を受け入れます。
  • BB008 — アクティブなネットワークツールが、許可リストにない URL 形式の宛先を受け入れます。
  • BB009 — ツールの説明が、保護された指示を上書きするようエージェントに直接指示しています。
  • BB010 — ツールの説明が、ツールの動作を隠すようエージェントに直接求めています。
  • BB011 — ツールの説明が、機密データを直接要求しています。
  • BB012 — 信頼できない取得系ツールが、明示的な証拠、破壊的な操作を示唆する証拠、OpenAPI の DELETE、またはアクション形式の特権に関する証拠を含むエージェントインベントリを共有しています。
  • BB013 — ツールの説明が、グローバルな選択または呼び出しを強制しようとしています。

各検出結果には、安定した ID、深刻度、影響を受けるツール、証拠へのポインター、証拠の品質、finding_class、数値ではない precision_note、即時の Stop 指示、および修正方法が含まれています。人間向けの出力と JSON 出力では、機能の露出とプロンプトインジェクションの指標を個別に集計し、単一のリスク分類として示すことはありません。プロンプトのコピーに関する検出結果には、オフラインで重複を除去できるよう、正規化されたメタデータテンプレートのハッシュと出現回数も完全なローカル JSON に含まれます。レシートと公開記録には、これらのハッシュは含まれません。docs/RULES.md、または /agent-scan/rules/#BB001 配下の安定したウェブパーマリンクを参照してください。

既存の検出結果が識別可能な組み合わせを形成する場合、出力には潜在的な露出経路 EP001~EP003 も含まれます。これらは同じ BB 検出結果をまとめた表示用の要約であり、新しいルール、深刻度、しきい値を追加するものではありません。これらが示すのは静的な同居であり、観測された汚染、サニタイズ、または実行時のデータフローではありません。

fixtures/wild にある匿名化済みの BackBond 以外の例 4 件では、正規のフィクスチャだけでなく、MCP、ツール説明のポイズニング、ワイルドカードを含むサンドボックススコープ、信頼済みツールの設定ファイルでも検出結果が発生することを確認できます。fixtures/corpus-regression にある 18 件(合成した境界条件 10 件と、保存出力の差分監査から派生した BB001 の墨消し済みケース 8 件)は、2026-08-31 のコーパスレビューで判明した BLOCK/REVIEW/blocking なしの区別を固定します。これらにはサーバー名や URL は保持されません。コーパス回帰テストと公開の境界を参照してください。

レビュー可能な修正提案

--suggest-policy を指定すると、機械可読な backbond-policy-suggestion/v1 オブジェクトが追加されます。

agent-scan scan --suggest-policy --json
agent-scan vet-tools --stdin --suggest-policy --json < tools-list.json

無効化またはラップすべきツールを特定し、対応している検出結果について、レビューが必要な JSON Patch テンプレートを出力します。添付前プロファイルでは、BB007 に不完全な許可リストのテンプレートを、BB013 に事実に基づく説明への書き換えテンプレートを適用します。スキャナーが環境固有の許可操作を創作したり、ツールの動作を黙って書き換えたりすることはありません。提案が自動的に適用されることはなく、適用が強制されていると主張することもありません。プレースホルダーのパッチでは、safe_to_apply_automatically: false および review_required: true が設定されています。

CI と SARIF

終了コードは安定しています。

  • 0:--fail-on のしきい値に達する検出事項はありません。
  • 1:しきい値に達する検出事項があります(カバレッジの不完全さより優先されます)。
  • 2:入力が無効、またはスキャナーの実行に失敗しました。
  • 3:--require-coverage が指定され、カバレッジが不完全で、終了コード 1 の原因となる検出事項がありませんでした。

--fail-on では critical、high、medium、low、none を指定できます。デフォルトは high で、実行時の露出に関する検出事項 BB001~BB008 と BB012 が対象です。ツールの説明に関する検出事項 BB009~BB011 と BB013 は表示されますが、このしきい値の判定には影響しません。リポジトリでプロンプトの文面チェックを CI の失敗条件にする場合は、別途 --fail-on-prompt のしきい値を使用してください。CI データには --json を、SARIF 2.1.0 互換のコードスキャンや IDE の利用者には --sarif を使用してください。

Action の厳格な vet-tools モードでは、任意のリポジトリ相対パスを sarif-path に設定すると、安定したルールヘルプリンクを含む同じ検出事項を書き出せます。Action はファイルをアップロードしません。アップロードやコードスキャンのステップは、別途明示的にワークフローで決定してください。

証跡と権限ゲート

--receipt receipt.json は入力ハッシュ、ルールセットの識別情報、検出事項、カバレッジの欠落を記録します。--signing-key を指定すると、任意で Ed25519 による証跡への署名を行います。署名はその鍵に基づく完全性を証明しますが、推定された検出事項が真実であることや、環境が安全であることを証明するものではありません。

ゲートキーパーが検出事項ゼロの証跡を受け入れるのは、カバレッジが complete であり、入力セットが要求されたアクションに一致し、使用するスキャナーとルールセットが正確に許可され、署名鍵が独立して信頼されている場合に限るべきです。カバレッジが不完全で検出事項がゼロの場合は、no_findings ではなく inconclusive として報告されます。厳格な CI や権限ゲートには --require-coverage を使用してください。

agent-scan verify-receipt --input receipt.json

共有可能な公開記録

パス、ベース名、説明、パラメーター、証拠へのポインター、ツール名、入力ハッシュを公開せずに、秘匿情報を削除した貼り付け可能な記録を書き出します。

npx -y @backbond/[email protected] scan --record-public scan-record.json

CLI は 8 行のコンパクトな記録を出力し、保証レベルが self-run_unverified の backbond-scan-record/v1 を書き出します。これは証明書でも、コマンドが実行された証明でも、BackBond による証明でもありません。ツール名と入力フィンガープリントは、どちらも内部トポロジーやファイルの同一性を明らかにする可能性があるため、別途明示的なフラグが必要です。

--record-commit を指定すると、呼び出し元が提示したソース参照が追加されます。参照を含む記録は backbond-scan-record/v2 を使用し、コンパクトカードに完全なコミットを含めます。ただし、CLI は Git を調査しないため、ファイルがそのコミットに由来することを検証できません。

npx -y @backbond/[email protected] scan --record-public scan-record.json --record-commit "$GITHUB_SHA"

コミットを検証する CI 実行には、公式 Action と明示的なリポジトリアーティファクトを使用してください。この Action は HEAD == github.sha を検証し、各入力が追跡対象であり、そのコミット時点から変更されていないことを必須とします。また、npx を使用せず、選択された Action のバージョンに同梱されたスキャナーコードを実行し、スキャナーの終了コードを保持して、秘匿情報を削除した記録とジョブサマリーを書き出します。

permissions:
  contents: read

steps:
  - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
  - id: agent-scan
    uses: BackBond/[email protected]
    with:
      tool-schema: security/tools.json
      permissions: security/permissions.json
      trace: security/trace.json

Action の出力 record-path は、別途バージョンを固定したアーティファクトアップロードのステップに渡せます。CI の実行がそのワークフローで何を実行したかを証明するのは、リポジトリ、ワークフロー、Action の参照先、実行を独立して信頼する利用者に対してのみです。ダウンロード可能な記録は意図的に self-run_unverified のままです。これは BackBond による証明ではありません。

厳密なスキーマチェックとステータスバッジ

MCP サーバーの作成者は、同じ Action を固定のアタッチ前マニフェストゲートとして使用できます。mode: vet-tools は、コミット済みの tool-schema 入力をちょうど 1 つ受け取り、プロンプトの lint をブロッキングとして扱い、不完全または曖昧なメタデータに対して終了コード 3 を返し、公開レコードを作成しません:

name: BackBond Schema Check

on:
  pull_request:
    paths:
      - 'tools-list.json'
      - '**/tools-list.json'
      - 'mcp.json'
      - '**/mcp.json'
      - '.mcp.json'
      - '**/.mcp.json'
  push:
    branches: [main]
    paths:
      - 'tools-list.json'
      - '**/tools-list.json'
      - 'mcp.json'
      - '**/mcp.json'
      - '.mcp.json'
      - '**/.mcp.json'

permissions:
  contents: read

jobs:
  schema-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
      - id: backbond
        uses: BackBond/[email protected]
        with:
          mode: vet-tools
          tool-schema: tools-list.json
          sarif-path: artifacts/backbond-agent-scan.sarif

リポジトリで検出箇所を含むファイルが不要な場合は、sarif-path を省略してください。ジョブのサマリーは簡潔なままで、ツール名の生データは含みません。

このワークフローを .github/workflows/backbond-schema.yml として保存すると、リポジトリにデフォルトブランチのワークフローのステータスを表示できます:

[![BackBond Schema Check](https://github.com/OWNER/REPOSITORY/actions/workflows/backbond-schema.yml/badge.svg?branch=main)](https://github.com/OWNER/REPOSITORY/actions/workflows/backbond-schema.yml)

これはスキーマチェックと呼び、検証や認定とは呼ばないでください。バッジはワークフローの証跡にリンクする必要があります。合格バッジが示すのは、SHA のコミット済みファイルが、固定された静的アタッチ前プロファイルのもとで no_blocking_finding を生成したことだけです。本番環境の状態、ランタイム検証、保険の補償範囲、またはデプロイ済みサーバーがマニフェストと一致することを証明するものではありません。バッジが検証済み、認定済み、または本番環境で安全であると繰り返し表現される場合は、バッジを削除してください。

このチェックを実行しても、補償は発生せず、適格性も判定されません。より詳細な評価、継続的なランタイム証跡、または承認済みの金銭的保護に関する情報が必要ですか?[email protected] までお問い合わせください。

docs/RECORDS.md を参照してください。

このパッケージは @backbond/agent-scan です。似た名前のパッケージに置き換えられないよう、エージェントの指示にはスコープ付きの完全なパッケージ名とバージョンを固定してください。

任意の外部実行レポート

Agent Scan は利用状況のテレメトリを収集しません。直接問い合わせることなくエージェントが固定されたコマンドを見つけて実行を試みた場合は、プライバシーに配慮した外部実行フォームから報告できます。報告するのは、固定したコマンドが起動したか、判定結果、アタッチに変更があったか、OS/Node、サニタイズ済みの誤検知だけにしてください。生のマニフェスト、プロンプト、トレース、設定、JSON レポート、パス、ツール名、シークレット、個人名、組織名は絶対に送信しないでください。

この無料スキャンでできることと、BackBond が提供するもの

このパッケージは、無料のローカル認識・トリアージツールです。ツールをアタッチしたり、ツールセットを構成したりする前に、エージェントやオペレーターが名前付きのエクスポージャーパターンを確認できるようにします。ポリシー、補償範囲の判定、リスナーではなく、BackBond の完全なシステムの代替にもなりません。

BackBond は、より詳細な評価、継続的なランタイム証跡、そして承認された場合は金銭的保護を組み合わせています。このパッケージを実行しても、保険の補償は発生せず、適格性も判定されず、BackBond が環境を検証したことにもなりません。詳しくは backbond.ai/agent-scan をご覧ください。

0.6.3 の意図的な制限

スコア、ホストされたアップロード、自動修正モード、ランタイムミドルウェア、アクティブプローブはありません。アクティブチャレンジは分離されたハーネス内で実行し、モデルの自己申告ではなくランタイムトレースを評価する必要があります。この信頼境界は、今回の静的スキャナーリリースの対象外です。

ライセンス

MIT。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。