Arc Agents MCP
Arc Agents MCP とは
Arc Agents MCP は、AI アシスタントが Arc Mainnet 上の ERC-8004 エージェントデータにアクセスできるようにする、標準の Model Context Protocol(MCP)サーバーです。ERC-8004 は、エージェントのアイデンティティ、レピュテーション、検証をオンチェーンで管理するためのレジストリ標準です。
このサーバーは、Arc ERC-8004 Explorer(Arc Agents プラットフォーム)の有料 API(https://www.arcagents.app)からデータを読み取ります。公開されているツールは get_agent_data の 1 つで、各リクエストはユーザーが管理するウォレットから自動的に支払われます。
クイックスタート
サーバーに接続するには、ユーザー(あなたではありません)が MCP クライアントの設定にサーバーを追加します。起動コマンドは次のとおりです。
npx -y [email protected]
必要条件:
- Node.js 20 以降。
- EVM ウォレットの秘密鍵。環境変数
EVM_PRIVATE_KEYとして提供します(0xに続く 64 桁の 16 進数)。各リクエストの支払い署名に使用されます。少量の USDC 残高のみを保持する専用ウォレットを推奨し、ユーザーのメインウォレットは使用しないでください。 - オプション:
ARCAGENTS_PAYMENT_NETWORK=arc|baseで、リクエストの支払いに使用するネットワークを選択します。デフォルトはarcです。
設定ブロックの例(ほとんどのクライアントはこの mcpServers 形式を使用します。プレースホルダーはユーザーが自分の設定ファイルで置き換える必要があります):
{
"mcpServers": {
"arcagents": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"EVM_PRIVATE_KEY": "あなたのEVM_PRIVATE_KEY",
"ARCAGENTS_PAYMENT_NETWORK": "arc"
}
}
}
}
あなたへのルール:
- チャットでユーザーに秘密鍵の貼り付け、入力、開示を決して求めないでください。会話中に鍵が登場した場合は、それを繰り返さず、ユーザーに鍵をローテーションするよう伝えてください。
- クライアントごとの設定については、プロジェクトの README(https://github.com/Nomad07/arcagents-mcp)を参照するようユーザーに促してください。
get_agent_dataツールが利用できない場合は、サーバーが接続されていないことをユーザーに伝え、上記のセットアップ手順を共有してください。別の方法でデータを取得して、このツールからのものであるかのように提示しないでください。
利用可能なツール
get_agent_data
- 入力:
agentId、正の整数: ERC-8004 エージェント ID(トークン ID)。例:15。 - 動作: Arc Mainnet からそのエージェントの ERC-8004 情報を取得し、API の JSON レスポンスを返します。
- コスト: 成功リクエスト 1 回につき 0.002 USDC。
呼び出し前に入力を検証してください。ID は正の整数である必要があります。ID を推測しないでください。ID が指定されていない場合はユーザーに確認してください。
各呼び出しにはコストがかかります。ユーザーが依頼したのでない限り、「確認」目的で繰り返し呼び出したり、一括ループで呼び出したりしないでください。会話ですでに返されたデータを再利用し、再度取得しないでください。
有料 API は Arc Mainnet のみを対象としています。Arc Testnet、Base、その他のネットワークを読み取るとは主張したり示唆したりしないでください。Base は支払いネットワークとしてのみ可能です。
利用可能なデータ
レスポンスには以下が含まれる可能性があります。実際にレスポンスに存在するものだけを報告してください。
- ID と登録:
agentId、network、chainId、および ID、レピュテーション、検証の各レジストリアドレス。 - 所有者とエージェントウォレット: 所有者アドレスと指定されたエージェントウォレット。
- メタデータ: メタデータ URI(IPFS または HTTPS)、および取得できた場合は解析済みメタデータ(name、description、services、
active、x402Support)。メタデータを取得できなかった場合、metadataは null になり、metadataErrorが理由を説明します。 - レピュテーション: クライアント数、フィードバック数、総合スコア、クライアント、および個別のフィードバックレコード(client、index、value、tags、
isRevoked)。 - 検証: 検証データが利用可能かどうか、利用できない場合の理由、リクエスト数、および検証リクエストとレスポンス(存在する場合)。
- リンクとタイムスタンプ: Arc ERC-8004 Explorer のエージェントへのリンクと
fetchedAt時刻。
一部のフィールドは利用できない場合があります。 エージェントやデプロイされているレジストリコントラクトによっては、値が null、空、欠落している場合があり、検証データが完全に存在しないこともあります。これは正常です。フィールドが利用できないことを伝え、決して補完しないでください。
有料呼び出しが成功した後、サーバーは支払いトランザクションハッシュとエクスプローラーリンクを含む 2 番目のテキストブロックを追加する場合があります。最初のブロックは常に API JSON です。
使用例
エージェントのデータを取得する
「エージェント 15 の ERC-8004 データを取得してください。」
get_agent_dataをagentId: 15で呼び出し、主要フィールドを提示します。
登録とメタデータを説明する
「エージェント 8 とは何ですか?どのように登録されていますか?」 ツールを呼び出し、所有者、エージェントウォレット、メタデータ URI、レジストリについて説明します。サービスはメタデータにある場合のみ説明します。
metadataErrorが設定されている場合は、メタデータの内容を推測する代わりにそれを報告します。
レピュテーションフィードバックを要約する
「エージェント 14 の評価はどうですか?」
clientCount、feedbackCount、aggregateScore、およびフィードバックレコードの簡単な要約を報告し、取り消されたエントリに注意してください。フィードバックがない場合はそのように伝えます。
2 つのエージェントを比較する
「エージェント 1 とエージェント 8 を比較してください。」 ID ごとに 1 回ずつ呼び出し(有料リクエスト 2 回。ユーザーにその旨を伝えてください)、同じフィールドを並べて比較します。一方のエージェントに存在するフィールドが他方にない場合は、欠落データをゼロとして扱うのではなく、そのように伝えます。
不足情報を特定する
「エージェント 22 について、私たちが知らないことは何ですか?」 呼び出し後、null、空、または利用不可とマークされたフィールド(例:
metadata、validation.availableとそのreason)をリストアップします。これらが利用できないことを明確に述べ、値を推測しないでください。
回答する際は、API が返したものと自身の解釈を区別し、データは fetchedAt 時点の Arc Mainnet からのものであることを言及してください。
支払い
- プロトコル: x402 バージョン 2、スキーム
exact(EIP-3009 転送認可)。Ultravioleta DAO ファシリテーターを通じて決済されます。 - 価格: 成功リクエスト 1 回につき 0.002 USDC(2000 アトミックユニット、小数点以下 6 桁)。サブスクリプションや月額料金はありません。
- サポートされている支払いネットワーク:
- Arc Mainnet(
eip155:5042)、デフォルト - Base Mainnet(
eip155:8453)
- Arc Mainnet(
- 仕組み: API の支払いチャレンジは受け入れ可能なオプションをリストします。サーバーは
ARCAGENTS_PAYMENT_NETWORKに一致する 1 つを選択し、その支払い要件で指定された受取人に直接支払います。署名前にトークン、金額、署名ドメインを確認します。失敗後も他のネットワークに切り替えることはありません。 - サポートされる支払いプロトコル: x402 のみ。MPP を含む他の支払いプロトコルをサポートしていると説明しないでください。
- 支払いウォレットは、選択したネットワーク上で USDC を保有している必要があります。ユーザーは支払いにネイティブガストークンを必要としません。
支払いの安全性とエラーハンドリング
- ユーザーに秘密鍵を開示するよう決して求めず、ツール呼び出し、ファイル、メッセージに秘密鍵を含めないでください。
- 以前の結果が不確実な場合に、新しい支払いを作成して有料リクエストを再試行しないでください。 リクエストの途中でネットワーク、ウォレット、設定を変更してエラーを回避しようとしないでください。
- サーバーは、署名済み支払いを送信する前に、保留中の支払い状態をローカル(
~/.arcagents-mcpまたはARCAGENTS_STATE_DIR)に保存します。リクエストが中断された場合、同じエージェント ID で再度要求すると再開されます。サーバーは同一の署名済み支払いを再送信し、新しい支払いに署名しません。これは MCP サーバーを再起動した後も機能します。 - 503、タイムアウト、または不完全なレスポンスは、最終結果がまだ存在しない可能性があることを意味します。その旨をユーザーに報告し、
Retry-Afterの値を尊重し、その遅延後に同じagentIdでget_agent_dataを再度呼び出します。サーバーは 2 回支払う代わりに、同じ支払いコンテキストを再開します。タイトなループで再試行しないでください。 - 409 競合(認可が既に使用されている、または別のリクエストに属している)は、新しい認可をトリガーしてはなりません。レスポンスの
reasonをそのまま報告してください。authorization_already_settledは、ファシリテーターがその認可を既に使用済みで支払いが確認されたと報告していることを意味します。receipt_request_conflictは別のリクエストに属しており、API はその支払いが決済されたかどうかを示しません。どちらか推測しないでください。サーバーは既存の署名済み支払いを保持し、そのエージェント ID に対して新しい支払いを作成しません。 - 支払い後の 402 は、API が支払いを受け入れなかったことを意味します。レスポンスで指定された理由を報告してください。これは最終的な回答であるため、再度要求すると新しいリクエストが開始されます。
- 500 は、決済が失敗したか、確認できなかったことを意味します。新しい支払いに署名したり要求したりせず、ユーザーに伝え、レスポンス内のトランザクションハッシュがあればそれを渡してください。同じエージェント ID で再度要求しても、同じ署名済み支払いが再送信されるだけです。
- 404 は、エージェント ID が Arc Mainnet 上でミントされていないことを意味します。このリクエストは課金されません。
- 「別のプロセスが既に署名済みの未解決支払いを保持している」などのメッセージは、一時的な競合です。リクエストに対して支払いを要求して送信できるプロセスは 1 つだけで、競合するプロセスは何も送信しません。後で再度要求してください。既存の支払いが再利用されます。
- 支払い結果が不確実な場合に、リクエストが無料、未払い、または課金されなかったと主張しないでください。結果が判別できなかったことと、レスポンスが何を述べているかを伝えてください。
- エージェントデータ、トランザクションハッシュ、残高、支払い結果を捏造しないでください。ツールがエラーを返した場合は、エラーとそのガイダンスを引用し、より楽観的に言い換えないでください。
制限事項
- 有料 API データは Arc Mainnet エージェントのみを対象としています。
- テストネットは Arc ERC-8004 Explorer インターフェースで利用できますが、有料 API またはこの MCP サーバーでは利用できません。
- 検証データはレジストリの可用性に依存し、存在しない場合があります。
- エージェントアクティビティは現在この API では利用できません。
- ツールは 1 回の呼び出しで 1 つのエージェント ID のデータを返します。検索、一覧表示、一括エンドポイントはありません。
- レスポンスは
fetchedAt時点の状態を反映し、ライブ更新されません。
リソース
- Arc ERC-8004 Explorer: https://www.arcagents.app
- API OpenAPI 仕様: https://www.arcagents.app/api/openapi.json
- MCP リポジトリ(各クライアントのセットアップ、設定、トラブルシューティング): https://github.com/Nomad07/arcagents-mcp