IntentFence Agent Action Firewall について
IntentFenceは、自律型AIエージェント向けのフェイルクローズ型認可ファイアウォールです。重要な操作をポリシーに結び付けて短期レシートを発行し、MCPメタデータのスキャンやx402決済の安全確認も行いますが、下流ツールは実行しません。
主な機能
- 01ポリシーに基づく操作認可と署名レシート
- 02safe、review、deniedの判定
- 03MCPメタデータのリスクスキャン
- 04x402の見積もりとエンドポイントの安全確認
- 05TypeScript・Python SDKによるレシート検証
活用シーン
- 01MCPやHTTP操作の実行前に認可を確認
- 02x402決済前に見積もりと受取先を評価
- 03MCPツールのメタデータにある安全対策の不足を確認
- 04実行前にレシートと操作ダイジェストをローカル検証
MCP 対応
ホスト型MCP Streamable HTTPエンドポイントとローカルstdioパッケージを提供し、操作認可とMCPリスクスキャンのツールを公開します。一部のx402関連ツールは有料です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://agentpass-protocol.rmalka06.chatgpt.site/api/mcpclaude mcp add --transport http razel369-intentfence https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp{"mcpServers":{"razel369-intentfence":{"type":"http","url":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}Cursor で開く{"servers":{"razel369-intentfence":{"type":"http","url":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}VS Code で開く{"mcpServers":{"razel369-intentfence":{"type":"http","url":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}{"mcpServers":{"razel369-intentfence":{"serverUrl":"https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
10| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| action | object | はい | |
| action.type | string | はい | |
| action.method | string | いいえ | |
| action.protocol | enum | はい | mcp | http | a2a | payment | other |
| action.resource | string | はい | |
| action.payload_sha256 | string | いいえ | |
| policy | object | はい | |
| policy.max_cost | object | いいえ | |
| policy.max_cost.amount | number | はい | |
| policy.max_cost.currency | string | はい | |
| policy.allowed_resources | array | はい | |
| policy.allowed_action_types | array | はい | |
| policy.max_data_retention_hours | number | いいえ | |
| policy.require_human_approval_for | array | いいえ | |
| context | object | いいえ | |
| context.currency | string | いいえ | |
| context.quoted_cost | number | いいえ | |
| context.data_retention_hours | number | いいえ | |
| subject | string | はい | |
| approval | object | いいえ | |
| approval.proof_id | string | はい | |
| approval.expires_at | string | はい | |
| approval.approved_at | string | はい | |
| approval.approved_by | string | はい | |
| approval.action_digest | string | はい |
詳細
IntentFence
IntentFence は、自律型 AI エージェント向けのフェイルクローズ型認可ファイアウォールです。 重要な MCP、HTTP、A2A、または決済アクションを実行する直前に、 アクションとペイロードの正確なハッシュを、明示的なアクション/リソースの許可リスト、支出と保持の上限、 およびオプションのアクション固有の承認に紐付けます。5 分間有効な ES256 レシートを返します。TypeScript と Python の SDK は、呼び出し元が所有するコールバックを実行する前に、レシートとローカルのアクションダイジェストを検証します。 IntentFence は下流のツールを実行せず、認証情報やウォレットキーを受け取るべきではありません。また、MCP メタデータのスキャンと x402 決済の安全性チェックも提供します。
safe_to_proceedneeds_reviewdenied
本番環境:https://agentpass-protocol.rmalka06.chatgpt.site
x402scan:https://www.x402scan.com/server/c495c104-dba4-4764-86b1-96b8b0cda48b
公式 MCP Registry:https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.razel369%2Fintentfence
プロトコルのインターフェース
| インターフェース | エンドポイント |
|---|---|
| アクションに紐付いた認可 | POST /api/actions/authorize |
| 有料のセルフサービス型本番ポリシーパック | POST /api/policy-packs |
| 無料の MCP メタデータリスクスキャン | POST /api/agent-risk/scan |
| 無料の REST プレビュー | POST /api/preflight |
| 有料の x402 判定 | POST /api/preflight/verified |
| 有料の呼び出し元が観測した x402 見積もりの評価 | POST /api/x402-assessments |
| 有料の x402 エンドポイント稼働準備状況のライブ評価 | POST /api/x402-readiness |
| 有料の Base ウォレットリスクのライブ評価 | GET /api/wallet-risk?address=... |
| 有料の署名付き米国公式 CPI データ | GET /api/us-cpi?month=YYYY-MM |
| レシートの検証 | POST /api/receipts/verify |
| 公開 ES256 キー | GET /.well-known/jwks.json |
| MCP Streamable HTTP | /api/mcp(intentfence_verified_preflight は x402 による有料機能です) |
| A2A エージェントカード | GET /.well-known/agent-card.json |
| x402 サービスマニフェスト | GET /.well-known/x402 |
| 公開集計メトリクス | GET /api/metrics |
| OpenAPI | GET /openapi.json |
フェイルクローズ型のアクション認可
ホスト型 MCP ツールの intentfence_authorize_action と
intentfence_agent_risk_scan は API キーなしで利用でき、レート制限があります。認可では、呼び出し元が指定したアクションとポリシーのダイジェストに対して 5 分間有効な署名を行いますが、自己申告された ID や承認元の真偽は検証しません。本番環境の呼び出し元は、レシートを検証し、ローカルのアクションを再ハッシュしたうえで、拒否、レビュー、有効期限切れ、不一致、ネットワーク障害、検証失敗の場合は処理をブロックする必要があります。この境界を実行可能にするには、TypeScript の enforceAction または Python の run_authorized ヘルパーを使用してください。
スキャナーが評価するのは、呼び出し元が指定した MCP メタデータのみです。スキーマ、アノテーション、アクションに紐づく承認、金額上限の不足を指摘しますが、ツールの実行、ソースコードの検査、セキュリティやコンプライアンスの認証は行いません。
米国公式 CPI の利用料は 0.001 USDC、ライブの準備状況チェックとウォレットリスクチェックの利用料は 0.002 USDC、署名付き事前チェックと見積もりの厳密な評価の利用料は Base 上で x402 経由の 0.005 USDC です。呼び出しに成功すると、ファシリテーターの決済を示す PAYMENT-RESPONSE ヘッダーと IntentFence の ES256 compact-JWS レシートの両方が返されます。
Base の受取人に支払う前に、最初にウォレットリスクを確認することを推奨します。このチェックでは、ライブの Base RPC アクティビティと GoPlus の悪意あるアドレスに関するインテリジェンスを使用します。safe_to_proceed の結果は、評価時点で既知の悪意あるフラグが検出されず、そのアドレスが Base 上に存在していたことを意味します。身元、所有権、認可、または将来の行動を証明するものではありません。
新しい Base の受取人にこのチェックを適用するには、定期実行される支払い前スキルをインストールしてください。
npx skills add razel369/intentfence --skill screen-base-wallets
ウォレットの所有者が継続的な 0.002 USDC の審査予算をすでに承認し、ウォレットがその予算を適用している場合に限り、自律型ワークフローを中断せずにスキルを実行できます。レビュー、拒否、決済証明の欠落、無効なレシート、またはサービス障害が発生した場合、後続の支払いをブロックします。
エージェントがエンドポイント URL しか持っていない場合、ライブの準備状況チェックが最も簡単な最初の呼び出しです。認証情報を必要としない、範囲を限定したリクエストを 1 回だけ送信し、プライベートネットワークの宛先とリダイレクトを拒否して、返されたチャレンジを検証します。宛先に支払うことはなく、結果に 5 分間有効な署名を行います。
x402 の加盟店が未払いのチャレンジを返した後、エージェントが加盟店への支払いに署名する前に、見積もり評価を実施することを推奨します。エージェントは subject、target_url、省略可能な method(GET、HEAD、POST のいずれか)、base64 形式の payment_required ヘッダー(最大 16 KiB)、および max_price_usdc と省略可能な allowed_payees リストを含むポリシーを指定します。IntentFence は x402 v2、正確なスキーム、Base メインネット、正規の Base USDC、価格、受取人、リソースとの厳密な紐付けを検証します。正規の USDC EIP-712 ドメインを必須とし、Permit2、未知の送金メタデータ、有効な拡張機能はレビュー対象とします。safe_to_proceed の結果を得るには、一致する allowed_payees エントリーを明示的に指定する必要があります。リストを省略すると needs_review が返されます。IntentFence は宛先を取得したり、支払いを行ったりしません。提示されたすべての支払いオプションが、すべての自動チェックを満たす必要があります。安全なオプションと安全でないオプションが混在する場合は拒否されます。
セルフサービス型の本番ポリシーパック
アカウント、メール、ミーティング、営業への問い合わせなしで、エージェントや開発者は本番環境向けの完全なガードを購入できます。
POST /api/policy-packs
リクエストでは openai-agents-js、cloudflare-agents、coinbase-agentkit、mcp-gateway のいずれかを選択し、許可リスト、支出上限、保持期間の上限、省略可能な承認ポリシーとともに、厳密なアクションを 1 つ指定します。最初のリクエストでは、Base 上で正確に 1 USDC の x402 チャレンジが返されます。決済後、同じレスポンスで、コピーしてすぐに使える TypeScript ガード、署名済みのアクションおよびポリシーのレシート、許可・拒否・予算超過のテストベクター、フェイルクローズ型のデプロイチェックリストが提供されます。購入者は生成されたコードを確認し、すべての認証情報を自身のランタイム内で管理する必要があります。
今すぐインストール
ホスト型 MCP エンドポイントは API キーなしで利用できます。
https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp
ローカル stdio MCP パッケージをインストールする
ローカルプロセスが必要なエージェントや MCP クライアントは、不変の公開版 0.11.0 を直接実行できます。npm アカウント、リポジトリのクローン、 IntentFence API キーは不要です。
npx --yes --package https://github.com/razel369/intentfence/releases/download/mcp-v0.11.0/razel369-intentfence-mcp-0.11.0.tgz intentfence-mcp
リリース成果物は GitHub Actions によってビルドおよびテストされています。その SHA-256 ダイジェストは
f0cdf3df28da8a5c037e48193cbb4602744b5fb0b6c182d877abedb707b1e9f9 です。
クライアントが Streamable HTTP に対応している場合は、上記のホスト型エンドポイントを使用してください。
エージェントのランタイムにインストールする
- OpenAI Agents SDK のフェイルクローズガード
- Cloudflare Agents のフェイルクローズガード
- Coinbase AgentKit の固定 x402 チェックアウト
- 汎用 MCP ゲートウェイガード
すべてのアダプターは認証情報を呼び出し元のランタイム内に保持し、正確なローカルアクションダイジェストと ES256 レシートの検証後にのみ、後続のアクションを実行します。
ローカルエージェント向けのオプトイン式ワンコール決済
ローカル stdio パッケージは、特別な MCP クライアント対応を必要とせずに、x402 チャレンジを処理して署名し、ツール呼び出しを再試行して、決済済みの結果を返すことができます。以下の 3 つの値をすべて設定しない限り、自動決済は無効です。
INTENTFENCE_EVM_PRIVATE_KEY=<buyer-controlled 0x-prefixed key>
INTENTFENCE_MAX_AUTO_PAYMENT_USDC=0.005
INTENTFENCE_AUTO_PAYMENT_BUDGET_USDC=0.05
キーはエージェントのランタイムのシークレットマネージャーまたはプロセス環境変数を通じて指定し、MCP 設定ファイルには絶対にコミットしないでください。このパッケージは、公開されている IntentFence の受取人宛ての exact Base メインネット USDC 要件にのみ署名し、呼び出しごとの上限を超える決済を拒否します。また、署名する前に、試行した署名をすべてプロセスの存続期間中の予算に計上します。失敗した試行も計上されたままなので、再試行ループや並行呼び出しによって上限を超えることはありません。秘密鍵は購入者のローカルプロセス内に保持され、IntentFence に送信されることはありません。
正確なマシン用チェックアウトを作成する
エージェントが、製品に対応するエンドポイント、メソッド、ペイロード、決済上限を推測する必要はありません。カタログを読み取り、正確な製品入力を送信してください。
curl https://agentpass-protocol.rmalka06.chatgpt.site/api/checkout
curl -X POST https://agentpass-protocol.rmalka06.chatgpt.site/api/checkout \
-H "Content-Type: application/json" \
-d '{"product":"wallet-risk","input":{"address":"0x1111111111111111111111111111111111111111"}}'
チェックアウトの応答は無料で、決済を開始することはありません。検証済みの HTTP リクエスト、シェルセーフな Agentic Wallet の argv、POSIX および PowerShell のコマンド、Coinbase Agentic Wallet MCP の手順、mcpc --x402 呼び出し、対応する Agent Skill、対応する MCP ツールと引数、正確な Base USDC 上限が返されます。有料の MCP ツールは、最初のツール呼び出し前に署名できるクライアント向けに _meta.x402 を通知します。
エージェントは引き続き決済内容を確認して承認し、PAYMENT-RESPONSE による決済証明を要求する必要があります。
VS Code にインストールする
ライブインストールパネルを開き、Install IntentFence in VS Code を選択します。
インストール操作に含まれるのは、公開サーバー名、トランスポート、URL のみです。VS Code は、最初の起動前にサーバーの確認と信頼を求めます。無料のポリシープレビュー ツールは API キーなしで動作します。ホスト型サーバー経由の有料呼び出しには x402 対応クライアントが必要です。対応するクライアントがないランタイムでは、上記の予算上限付きローカル stdio モードを使用できます。
手動で .vscode/mcp.json またはユーザープロファイルに設定する場合:
{
"servers": {
"IntentFence": {
"type": "http",
"url": "https://agentpass-protocol.rmalka06.chatgpt.site/api/mcp"
}
}
}
手動で設定したサーバーを起動する前に、サーバーの詳細をご自身で確認してください。
VS Code 公式 MCP インストールドキュメントを参照してください。
クロスエージェント決済ガードをインストールする
オープンな Agent Skill を Codex、Claude Code、Cursor、Gemini CLI、GitHub Copilot、その他のスキル互換エージェントにインストールします。
npx skills add razel369/intentfence --skill guard-x402-payments
このスキルは、エージェントが x402 決済に署名しようとする際に起動します。正確な見積額を取得し、呼び出し元が定義した上限と支払先の許可リストを適用し、ウォレットの認証情報をローカルに保管し、0.005 USDC の評価手数料が承認された後にのみ IntentFence を使用するようエージェントに指示します。認証済みウォレットをすでに使用しているエージェント向けに、上限付きの Coinbase Agentic Wallet 購入者向けフローも含まれています。
公開 x402 URL しか持たないエージェントは、より対象を絞ったライブ対応状況確認スキルをインストールできます。このスキルは認証情報や対象への決済を使わずにルートをプローブし、リダイレクトとプライベートネットワークの宛先をブロックし、返されたチャレンジを検証して、0.002 USDC の IntentFence 手数料の前に明示的な承認を求めます。
npx skills add razel369/intentfence --skill inspect-x402-endpoints
公式の x402 クライアント購入者向けサンプルは、署名者を作成する前にライブの手数料チャレンジを検証し、デフォルトで決済が無効になっています。
https://github.com/razel369/intentfence/tree/main/examples/x402-buyer
Coinbase Agentic Wallet をすでに使用しているエージェントは、buyer_quickstart の GET /api/payments から上限付きのチェックアウト一式を取得できます。公開されているコマンドは、検証済み CLI バージョンに固定され、有効なポリシー本文を含み、--max-amount 5000 を設定しているため、IntentFence の 0.005 USDC 手数料を超える金額を承認することはできません。実行する前に本文を確認し、実際の決済を明示的に承認してください。
Coinbase AgentKit EVM ウォレットをすでに所有しているプロジェクトは、固定バージョンの AgentKit アダプターを使用できます。自動再試行とは異なり、このアダプターは決済を正確な IntentFence URL、Base ネットワーク、正規の USDC アセット、5000 アトミック単位の金額、受取人にひも付けてから、購入者独自の承認関数を呼び出して署名します。対応する機械可読マニフェストは https://agentpass-protocol.rmalka06.chatgpt.site/integrations/coinbase-agentkit.jsonで公開されています。
Gemini CLI は npm パッケージやギャラリーのクロールを待たずに、リポジトリを直接インストールできます。
gemini extensions install https://github.com/razel369/intentfence
この拡張機能は、依存関係のないローカル MCP ブリッジを起動し、無料プレビューに加えて、x402 課金の検証済み事前チェックおよび見積評価ツールを公開します。
呼び出し元が確認した x402 見積の評価
最初の呼び出しでは、IntentFence の手数料に対する標準の PAYMENT-REQUIRED チャレンジが返されます。
curl -i -X POST https://agentpass-protocol.rmalka06.chatgpt.site/api/x402-assessments \
-H "Content-Type: application/json" \
-d '{"subject":"agent:buyer-07","target_url":"https://merchant.example/api/paid-resource","method":"GET","payment_required":"BASE64_PAYMENT_REQUIRED_HEADER","policy":{"max_price_usdc":"0.10","allowed_payees":["0x1111111111111111111111111111111111111111"]}}'
有効な x402 v2 PAYMENT-SIGNATURE を付けて同じリクエストを再試行してください。成功すると、検証済みの呼び出し元確認済みチャレンジフィールド、合格/要確認/拒否のチェック、対象の完全な URL と正確な決済要件に対する SHA-256 バインディング、および ES256 署名付き評価レシートが返されます。この評価では保証レベル caller-observed-x402-quote-assessment、検証ティア x402-quote-assessment+x402-settled を使用します。x402 の決済が対象とするのは 0.005 USDC の IntentFence 評価手数料であり、対象への決済ではありません。
Base ウォレットのライブリスク
最初の呼び出しでは、0.002 USDC の x402 チャレンジが返されます。
curl -i "https://agentpass-protocol.rmalka06.chatgpt.site/api/wallet-risk?address=0x1111111111111111111111111111111111111111"
有効な x402 v2 PAYMENT-SIGNATURE を付けて同じ URL を再試行してください。成功すると、Base アカウントのアクティビティ、ネイティブ通貨と USDC の残高、コントラクトのコードハッシュ、最新の悪意あるアドレスのフラグ、合格/要確認/拒否のチェック、および保証レベル live-base-wallet-risk を持つ有効期間5分の ES256 レシートが返されます。必須のライブソースを利用できない場合、エンドポイントはフェイルクローズし、意図的に評価手数料の決済を行いません。
重要な信頼境界
宣言入力のレシートは、IntentFence が呼び出し元から提供されたポリシーデータを評価したことのみを証明します。見積もり評価レシートは、呼び出し元が確認した正確な PAYMENT-REQUIRED チャレンジに紐付けられますが、IntentFence が加盟店に接続したことや、加盟店の身元、配送、または後続の適用を証明するものではありません。レシート署名キーは USDC の受取ウォレットとは別のものです。IntentFence が支払者のシードフレーズやウォレットの秘密鍵を必要とすることはありません。ウォレットリスクレシートは、ある時点で確認された証拠を報告するものであり、本人確認を証明するものではありません。
ローカル開発
npm install
npm run dev
ローカルの stdio サーバーを起動する MCP クライアントでは、npm run mcp:stdio を使用してください。Glama などのコンテナベースのホストはルートの Dockerfile をビルドできます。このファイルは同じ IntentFence ポリシーエンジンを起動し、標準入力/出力経由で MCP の初期化、tools/list、tools/call リクエストに応答します。
docker build -t intentfence-mcp .
docker run --rm -i intentfence-mcp
本番環境の署名キーは Sites にシークレット INTENTFENCE_SIGNING_PRIVATE_JWK として保存されています。次のコマンドで、開発用の別のキーを生成してください。
node scripts/generate-signing-key.mjs /secure/path/intentfence-private-jwk.json
生成した秘密 JWK をコミットしないでください。公開するのは /.well-known/jwks.json 内の公開座標のみです。
検証
npm run test
npm run lint
npx tsc --noEmit
npm run sdk:check
npm run smoke:mcp:docker
npm run smoke:mcp:stdio
npm run smoke:protocol -- http://localhost:3000
署名付きレシートの検証機能を実行するローカルのスモークテストに限り、INTENTFENCE_TEST_PRIVATE_JWK_PATH を設定してください。
配布
TypeScript および Python の SDK は sdk/ にあります。ルートの server.json は、公式 MCP Registry の io.github.razel369/intentfence に登録できる状態です。公開 MCP エンドポイントは Streamable HTTP を使用し、API キーは不要です。
/.well-known/x402 のサービスマニフェストと Bazaar メタデータにより、どちらの有料エンドポイントも x402 インデックスおよび自律型ツールルーターからクロールできます。本番リソースは継続的にチェックされ、元の検証済みプリフライトルートは x402scan に登録されています。
本番環境ではデフォルトで PayAI を使用します。ホストされたランタイムで CDP_API_KEY_ID と CDP_API_KEY_SECRET の両方が設定されている場合、検証と決済は Coinbase CDP に切り替わります。これにより、Bazaar 対応ルートで正常に決済された取引が Coinbase Bazaar のインデックス登録対象になります。設定しただけではリスティングは作成されず、顧客収益として計上されることもありません。
商用化への道筋
本番環境へ最も迅速に、連絡不要で移行するには、購入、送金、予約、デプロイ、削除、その他の重大なアクションを 1 件保護するための 1 USDC のポリシーパックを利用してください。機械可読なオファーと上限付きの Agentic Wallet チェックアウトは GET /api/payments で公開されています。
プロトコルとセキュリティモデルについては、docs/PROTOCOL.md と docs/SECURITY.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。