Agent Passport について
Agent Passportは、AIエージェントの身元パスポートと署名付き意思決定レシートを発行・独立検証するMCPサーバーです。FractalAIの実稼働レジストリやAPIに接続し、ML-DSA-65によるオフライン検証と、エージェント検索、マニフェスト、証明のツールを提供します。
主な機能
- 01エージェントパスポートの発行
- 02ML-DSA-65によるレシートのオフライン検証
- 03エージェント登録情報の参照
- 04エージェントマニフェストの検出と検証
- 05有料の証明ツール
活用シーン
- 01信頼する前にパスポートを検証
- 02エージェントの登録状態を確認
- 03署名付きAI判断の監査
- 04エージェントマニフェストのオフライン検証
MCP 対応
stdio経由で、パスポート、レジストリ、マニフェスト、証明のツールをMCPクライアントに公開します。MCP対応クライアントやフレームワークに接続でき、一部の証明ツールはx402決済を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @fractalai/agent-passport-mcpFRACTALAI_BASE_URLOverride the FractalAI web endpoint base (defaults to https://fractalai.net.co).FRACTALAI_RPC_URLOverride the FractalAI JSON-RPC node URL (defaults to https://api.fractalai.net.co).FRACTALAI_PINNED_RECEIPT_KEYシークレットPin a specific base64 ML-DSA-65 receipt-signing public key instead of resolving it from the published key directory.AGENT_PASSPORT_AUTODEMOSet to 0 to skip the live demo call made on first start.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| receipt | object | いいえ | 任意:発行時に渡されたレシート JSON。`ml_dsa65` { signature, public_key, signed_payload_sha256 } オブジェクトが含まれている場合、公開済みのレシート鍵を使って ML-DSA-65 署名を完全オフラインで検証します。 |
| attestation | string | はい | アテステーションのパーマリンク(…/attestation/0x…)または 0x アテステーションハッシュのみ。 |
詳細
Agent Passport — MCP サーバー
AI エージェントの検証可能なパスポートを発行し、独立して検証するために、開発者が約5行で導入できる無料ツールです。Model Context Protocol上で動作するため、MCPに対応するLangChain、CrewAI、AutoGen、OpenAI Agents、Claude Desktopなど、あらゆる環境で利用できます。
実際の公開 FractalAI デプロイメントと通信します。稼働中の L1 JSON-RPC ノード https://api.fractalai.net.co(FRC-55 エージェントレジストリ)と、ウェブエンドポイント https://fractalai.net.co(アテステーション、レシートキー、x402)を利用します。ここにモックはありません。
npx @fractalai/agent-passport-mcp
ツール
| ツール | 費用 | 現在、実際に行うこと |
|---|---|---|
verify_passport | 無料 | アテステーションのパーマリンク/0x ハッシュ(および任意でレシート JSON)を受け取り、コンテンツハッシュを再計算し、正確な正規署名メッセージを再構築して、公開されている /api/x402/receipt-key に対する ML-DSA-65(NIST FIPS 204) 署名を 完全オフラインで検証し、改ざんを検出するネガティブコントロール付きで Dilithium-2 署名をサーバー支援で検証し、エージェントの FRC-55 オンチェーン状態を読み取ります。{ valid, algorithm, checks[], anchored, decision, agent } を返します。 |
issue_passport | x402($0.05 USDC) | agent_id と 署名済みアサーションを、再検証可能なパーマリンクに紐付けます。FRC-55 レジストリ上でエージェントを解決し(オンチェーン ID の場合)、実際の x402 attest-decision フローを通じてアサーションを封印します(Dilithium-2 署名、Black-Box チェーン、L1 にアンカー)。payment_tx_hash がない場合は支払いチャレンジを返します。パスポートを捏造することはありません。 |
lookup_agent | 無料 | 稼働中のノードから公開 FRC-55 レジストリを読み取ります。1つのエージェントについては fractal_getAgent(名前、所有者、ステータス、モデル、total_calls、rating、total_ratings、created_at)、全エージェントについては fractal_listAgents を呼び出し、常に fractal_getAgentStats も取得します。 |
list_fractalai_proofs | 無料 | 自己記述型の検出機能です。稼働中の正規 /.well-known/x402.json を読み取り、証明カタログ全体(価格、アルゴリズム、エンドポイント、各項目で証明する内容)を返します。1回の呼び出しで x402 の全体像を把握でき、ハードコードされたコピーではなく稼働中の信頼できる情報源を反映するため、変更があった場合も自動的に最新の状態になります。 |
list_agents | 無料 | Fractal Agent Commons:登録済みエージェントの ML-DSA-65 署名付きインデックス(/.well-known/agents.json。最新のマニフェストが現行であるエージェントのみを対象:キーがノード上のエージェントの現在のキーと一致し、パスポートが検証済みで、FRC-55 のステータスが Active、かつ有効期限内)を取得し、パッケージにピン留めされた公証キーに対してインデックス署名をオフラインで検証します。include_all を指定すると、現行ではないエージェントとその理由も含めます。region(ISO 3166-1 alpha-2、例:CO)を指定すると、別途署名された地域別インデックス(?region=CO)を取得し、署名済みの scope.region がリクエストと一致することを必須とします。地域別リクエストに対してグローバルインデックスが返された場合は index_scope_mismatch となり、フォールバックは行いません。 |
get_agent_manifest | 無料 | エージェントの fractalai-agent-manifest/1(現行、または不変の version)を取得し、manifest_id(JCS)を再計算して、エージェントの ML-DSA-65 署名を、レジストリ/ノードがエージェントの現在のキーとして報告するキーのみで検証します。マニフェストに埋め込まれたキーだけで検証することはありません。 |
verify_agent_manifest | 無料 | 渡されたマニフェスト JSON をオフラインで検証します。alg は ML-DSA-65 に紐付けて確認します(1952バイトのキー/3309バイトの署名。サイズから推測することはありません)。JCS manifest_id と、有効期間が30日以内であることも検証します。検証キーには、指定された pubkey_b64url(完全オフライン)を使用します。それがない場合は、レジストリ/ノードから取得したエージェントの現在のキーを使用しますが、埋め込みキーと一致する場合に限ります。 |
x402 有料ツール(v0.2.0)— 耐量子証明、呼び出しごとの支払い
サポートされている 8 つの FractalAI x402 ルートを、自動支払い可能な MCP ツールとして提供します。x402 対応のウォレットクライアントは EIP-3009 認証に署名し、標準の _meta["x402/payment"] 規約を使用して、Base 上の USDC で支払います。提供される各署名は ML-DSA-65/Dilithium-3(NIST FIPS 204) で、オフラインで検証できます。またそれぞれ、FractalAI の L1 へのオンチェーンアンカーを試みます(アンカー署名は、合意形成の段階的な切り替えが保留されているため、Dilithium-2/ML-DSA-44 クラスです。「適用範囲についての正直な説明」を参照してください)。監査済みの @noble/post-quantum を通じて、FIPS-204 標準化アルゴリズムを使用します(FIPS 検証済み CMVP モジュールではありません)。まず支払いなしでいずれかのツールを呼び出すと、正確な価格と支払い要求が返されます。
| ツール | 価格 | 機能 |
|---|---|---|
seal_ml_dsa | $0.02 | 任意のメッセージ/ハッシュに対する耐量子署名 — 長期保存に適し、量子安全で、オフライン検証が可能です。 |
verify_proof | $0.01 | 署名を検証します(ML-DSA-65 または Dilithium-2 を自動検出)。あらゆる証明ワークフローの基本プリミティブです。 |
verify_agent_kya | $0.03 | Know-Your-Agent:信頼して支払う前に、別のエージェントの認証情報と最新の FRC-55 レピュテーションを検証します。 |
notarize_decision | $0.05 | AI の判断(入力、出力、モデル)を公証します → 監査可能で、否認できず、オンチェーンに記録されます(EU AI Act 第 12 条)。 |
prove_provenance | $0.05 | データセット/コンテンツのハッシュに対する来歴シールに、drand タイムスタンプとオンチェーンアンカーを付与します。 |
attest_training | $0.05 | モデルの C2PA 学習来歴マニフェストに、耐量子署名を付与します。 |
seal_cbom | $0.05 | CycloneDX CBOM(暗号インベントリ)にシールを付与します — CNSA 2.0/調達における PQC 対応状況の開示に利用できます。 |
支払いに関する注記:有料ツールは、標準の _meta["x402/payment"](自動支払い)に加えて、汎用フォールバックとしてプレーンな payment 文字列引数(base64 X-PAYMENT)も受け付けます。内容を捏造することはありません。ツールは実際のルートにプロキシし、適用範囲についての正直な説明も含めて、返された内容をそのまま中継します。
適用範囲についての正直な説明(お読みください — プロジェクト Regla 4)
有効なパスポートによって、ID と特定の証明済みアサーションが、署名対象のバイト列と照らして暗号学的に完全であること、記録に内部矛盾がないこと、そして FractalAI の L1 にアンカーされていることが証明されます。以下については証明しません。
- アサーションが真実であること、またはエージェントの判断/アクションが正しいこと。
- 分散型/合意スコア方式のレピュテーション。
issue_passportはレピュテーションを登録しません。 lookup_agentの評価は、ノードから報告されるレジストリ独自のカウンターであり、独立した監査結果ではありません。
署名チェックには、信頼モデルを明記しています。[independent] = FractalAI サーバーを信頼せずにローカルで計算します(オフラインの ML-DSA-65 チェック、コンテンツハッシュ)。[server-assisted] = FractalAI エンドポイントを呼び出します(Dilithium-2 の /api/proofmind/verify チェック)。ML-DSA-65 の検証では、監査済みの @noble/post-quantum ライブラリを通じて FIPS-204 標準化アルゴリズムを使用します。これは FIPS 検証済み(CMVP)モジュールではありません。
現在実現していることとロードマップ
- 現在実現していること: 公開鍵を使ったオフライン ML-DSA-65 検証、サーバー支援による Dilithium-2 検証と改ざん検知、FRC-55 のオンチェーンエージェント読み取り、発行用の実際の x402 402→支払い→シールのフロー。
- ロードマップ(完了したとは主張していません): サーバー発行の証明は現在、サーバー鍵で自己署名され、FractalAI 独自の L1 にアンカーされています。完全なオンチェーン合意検証と、分散型の合意スコア方式レピュテーションは今後のマイルストーンです。
ml_dsa65の分離署名は、現在パイロット導入先に提供されており(receipt引数で渡してください)、公開 API への組み込みが進められています。
使い方
インストールやビルドは不要です。npx が公開済みパッケージを直接取得して実行します(上記の設定ブロックを参照してください)。アカウントも API キーも必要ありません。
コントリビューション(ソースからビルド)
FractalAI モノレポ内でサーバー自体を扱う場合にのみ必要です。
cd integrations/agent-passport-mcp
npm install
npm run build # tsc → dist/
npm test # handshake: server stands up, tools respond, ML-DSA-65 round-trips
MCP クライアントでの設定
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"agent-passport": { "command": "npx", "args": ["-y", "@fractalai/agent-passport-mcp"] }
}
}
環境
FRACTALAI_BASE_URL— Web エンドポイントのベース URL(デフォルトはhttps://fractalai.net.co)。FRACTALAI_RPC_URL— L1 JSON-RPC ノード(デフォルトはhttps://api.fractalai.net.co)。AGENT_PASSPORT_AUTODEMO— 接続時に、サーバーはライブノードに対して実際の無料呼び出しを1回実行し (fractal_getAgentStats)、結果を stderr に記録するため、モックではないことをすぐに確認できます。ファイア・アンド・フォーゲット方式のため、MCP ハンドシェイクが遅延したりブロックされたりすることはありません。無効にするには0に設定してください。
フレームワーク別の5行の例
以下はすべて、同じ MCP サーバー(npx @fractalai/agent-passport-mcp)を stdio 経由で実行し、ツールを呼び出します。
LangChain(Python) — langchain-mcp-adapters:
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({"agent_passport": {"command": "npx", "args": ["-y", "@fractalai/agent-passport-mcp"], "transport": "stdio"}})
tools = await client.get_tools() # verify_passport, issue_passport, lookup_agent
agent = create_react_agent(model, tools)
await agent.ainvoke({"messages": "Verify passport https://fractalai.net.co/attestation/0x…"})
CrewAI(Python) — crewai-tools MCP アダプター:
from crewai_tools import MCPServerAdapter
from mcp import StdioServerParameters
params = StdioServerParameters(command="npx", args=["-y", "@fractalai/agent-passport-mcp"])
with MCPServerAdapter(params) as tools:
Agent(role="Auditor", tools=tools, goal="Verify agent passports", backstory="...")
AutoGen(Python) — autogen-ext MCP ワークベンチ:
from autogen_ext.tools.mcp import StdioServerParams, mcp_server_tools
params = StdioServerParams(command="npx", args=["-y", "@fractalai/agent-passport-mcp"])
tools = await mcp_server_tools(params) # verify_passport / issue_passport / lookup_agent
agent = AssistantAgent("auditor", model_client=client, tools=tools)
OpenAI Agents SDK(Python):
from agents import Agent
from agents.mcp import MCPServerStdio
async with MCPServerStdio(params={"command": "npx", "args": ["-y", "@fractalai/agent-passport-mcp"]}) as server:
agent = Agent(name="Auditor", instructions="Verify and issue agent passports.", mcp_servers=[server])
フレームワーク不要の独立した検証
レシートは第三者による検証を想定して設計されているため、このサーバー(または FractalAI のコード)は不要です。@noble/post-quantum と公開鍵ディレクトリだけで検証できます。
import { ml_dsa65 } from '@noble/post-quantum/ml-dsa.js';
// 1. Pin the trusted key(s) from the signed, ML-DSA-65-governed directory (fetch once, cache):
const dir = await (await fetch('https://fractalai.net.co/.well-known/x402-receipt-keys')).json();
// (dir.signature / dir.directory_public_key let you verify the directory itself is unmodified —
// see @fractalai/pqc-agent-receipts-conformance for a full conformance-checked example.)
// 2. Given ANY served receipt — e.g. the response of a paid /api/x402/* call — verify offline:
const { signature, signed_message, public_key } = receipt; // fields returned by every x402 route
const valid = ml_dsa65.verify(
Buffer.from(signature, 'base64'),
new TextEncoder().encode(signed_message),
Buffer.from(public_key, 'base64'),
);
console.log('receipt valid:', valid); // true only if the exact bytes were signed by that key
同じ検証を実運用向けに強化し、敵対的なベクトル(x402/SAR/ACP/JOSE/W3C-VC プロファイルにおける真正なもの、改ざんされたもの、誤った鍵による偽造)に対応したものについては、
@fractalai/pqc-agent-receipts-conformance
(npx pqc-receipt-check)を参照してください。
ライセンス
MIT
自動コマースオンボーディング(0.2.5)
最初に list_fractalai_proofs を呼び出してください。ライブカタログ、支払い要件、入力スキーマ、および対応する MCP ツールか、明示的な HTTP 統合手段が返されます。ディスカバリーに表示される価格は参考情報です。購入を承認する前に、新しいチャレンジをリクエストしてください。MCP サーバーは購入者の資金を保有しません。自動支払いには、支出ポリシーを設定した互換性のあるウォレットクライアントが必要です。
witness_payment は seal_body、省略可能な request_binding と settlement_tx、および標準の x402 支払いメタデータを受け付けます。witness SDK を使ってリクエストをバインドし、送信前にリクエストと認証情報を永続化してください。ブリッジは一度だけ転送し、タイムアウト後に代替の認証情報を作成することはありません。受信した証拠は、独立して信頼できる鍵を使って検証してください。このツールは、購入者向けの永続的な復旧用ストアの代わりにはなりません。
ネットワークや支払いを使わない決定論的な MCP トランスポートテストを実行するには、npm run test:commerce を実行してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。