Metaplex Agent Registry について
Metaplex Agent Registryは、MCP経由でAIエージェントをSolanaにデプロイし、Metaplex CoreアセットとEIP-8004アイデンティティを登録するサーバーです。エージェント鍵または外部ウォレットで署名でき、devnetでのリハーサルにも対応します。
主な機能
- 01アセットのミントとEIP-8004登録
- 02エージェント鍵または外部ウォレットでの署名
- 03登録情報とウォレット残高の取得
- 04登録ドキュメントのオフライン生成
- 05手数料とデプロイ内容のプレビュー
活用シーン
- 01Solanaへのエージェントアイデンティティのデプロイ
- 02devnetでのデプロイ手順のリハーサル
- 03既存Coreアセットの登録
- 04ウォレットのデプロイ手数料区分の確認
MCP 対応
エージェントのミントと登録、ウォレット署名トランザクションの準備・送信、登録情報とウォレット情報の取得ツールをMCPクライアントに提供します。確認前のデプロイプレビューと、リハーサル用のdevnetに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @three-ws/metaplex-agent-mcpSOLANA_SECRET_KEYシークレットBase58 secret key (or JSON byte array) for the minting wallet. Optional: read tools and the Phantom/Solflare prepare/send flow work without it.SOLANA_RPC_URLHTTPS Solana RPC endpoint. Defaults to the public endpoint for the configured network; bring your own (Helius / Quicknode / Triton) for production.METAPLEX_AGENT_NETWORKDefault cluster: mainnet or devnet. Defaults to mainnet; every tool also takes a per-call network.REQUIRE_CONFIRMRefuse to broadcast a mint or registration until the call is re-issued with confirm=true. Default true.DEPLOY_FEE_SOLMainnet deploy fee, in SOL, paid to DEPLOY_FEE_WALLET in the same transaction as the mint. Default 0.02.DEPLOY_FEE_WALLETWallet the deploy fee is paid to. Defaults to the three.ws $THREE buyback wallet; override only when self-hosting a fork.DEPLOY_FEE_ENABLEDSet false to build a fork that charges no deploy fee. Default true.THREE_HALF_PRICE_AT$THREE balance in the paying wallet that halves the deploy fee. Default 50000.THREE_FREE_AT$THREE balance in the paying wallet that waives the deploy fee entirely. Default 250000.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | エージェント名。Core アセット名と登録名になります。 |
| image | string | いいえ | サムネイル/アバター画像 URL(PNG など)。metaplex.com/agents、ウォレット、エクスプローラーに表示されます。 |
| owner | string | いいえ | 署名ウォレットではなく、この所有者にアセットをミントします。 |
| active | boolean | いいえ | 登録の有効フラグ。デフォルトは true です。 |
| secret | string | いいえ | 呼び出しごとの署名キー(base58 のシークレットキーまたは JSON バイト配列)。SOLANA_SECRET_KEY を上書きします。 |
| confirm | boolean | いいえ | ブロードキャストするには true が必要です。それ以外の場合は、支出なしのプレビューを返します。 |
| network | enum | いいえ | Solana クラスター。デフォルトは設定済みのネットワークです(別途指定がなければ mainnet)。mainnet | devnet |
| services | array | いいえ | エージェントが提供するサービス。Metaplex エージェントページに表示されます({name, endpoint})。 |
| model_url | string | いいえ | 3D モデル URL(GLB)。Genesis 方式で、アセットメタデータの animation_url と登録データの model.uri に書き込まれます。 |
| attributes | array | いいえ | オンチェーン Attributes プラグインのエントリ(アセットアカウント内の実際のバイト列)。 |
| collection | any | いいえ | この Metaplex Core コレクションにミントします。署名者はコレクションの権限者である必要があります。 |
| add_blocker | boolean | いいえ | AddBlocker をアタッチし、これ以上プラグインを追加できないようにします。デフォルトは false です。 |
| description | string | いいえ | このエージェントの概要または機能。EIP-8004 登録ドキュメントに保存されます。 |
| external_url | string | いいえ | アセットメタデータ内の任意の external_url(例:エージェントのホームページ)。 |
| metadata_uri | string | いいえ | アセットメタデータ URI の完全な上書き値(https または data:)。組み込みのメタデータビルダーをスキップします。 |
| x402_support | boolean | いいえ | 登録ドキュメントで x402 決済への対応を表明します。デフォルトは false です。 |
| registrations | array | いいえ | 外部レジストリの登録情報。デフォルトはチェーンレジストリのエントリです。threews_agent_id が設定されている場合は、three.ws のエントリがデフォルトになります。 |
| permanent_burn | boolean | いいえ | PermanentBurnDelegate をアタッチします。デフォルトは false です。 |
| supported_trust | array | いいえ | エージェントがサポートする信頼モデル。デフォルトは ['reputation'](Genesis 方式)です。 |
| permanent_freeze | boolean | いいえ | PermanentFreezeDelegate をアタッチします(凍結解除状態)。デフォルトは false です。 |
| registration_uri | string | いいえ | Agent Identity 登録 URI の完全な上書き値(https または data:)。組み込みの登録ビルダーをスキップします。 |
| royalty_creators | array | いいえ | ロイヤリティの分配。割合の合計は 100 である必要があります。デフォルトは署名ウォレットが 100% です。 |
| threews_agent_id | string | いいえ | three.ws エージェント UUID。Genesis と完全一致する登録エントリ {agentId, agentRegistry: "https://three.ws"} を追加します。 |
| verified_creator | boolean | いいえ | VerifiedCreators プラグインをアタッチし、署名ウォレットを検証済みにします。デフォルトは true(Genesis 方式)です。 |
| immutable_metadata | boolean | いいえ | ImmutableMetadata プラグインをアタッチし、メタデータを変更できないようにします。デフォルトは true(Genesis 方式)です。 |
| permanent_transfer | boolean | いいえ | PermanentTransferDelegate をアタッチします。デフォルトは false です。 |
| metadata_attributes | array | いいえ | アセットメタデータ JSON 内のオフチェーン属性配列(trait_type/value ペア)。 |
| royalty_basis_points | integer | いいえ | ベーシスポイント単位のロイヤリティ。デフォルトは 500(5%)で、Genesis の値です。0 にすると Royalties プラグインが削除されます。 |
詳細
@three-ws/metaplex-agent-mcp
任意の MCP クライアントから、Solana 上の Metaplex Agent Registry に AI エージェントをオンチェーンでデプロイします。
1 つのフローで Metaplex Core アセットをミントし、その EIP-8004 エージェント IDを登録します(Solana の 1232 バイト制限内に収まる場合は単一のアトミックトランザクションで実行し、収まらない場合は作成、登録の順に実行します。これは Genesis 333 が実際にオンチェーンに記録された方法と同じです)。これにより、そのエージェントは独自の組み込みウォレット、レピュテーション画面、エクスプローラーページとともに metaplex.com/agents に表示されます。デフォルトの出力は、ライブアセットとバイト単位で照合済みの three.ws Genesis 333 ミントの正確な形式を再現します。
- 自己完結型の
data:application/json;base64URI としてのアセットメタデータ(name、image、animation_urlGLB) - ロイヤリティプラグイン(所有者に 5%)、VerifiedCreators(署名ウォレット)、ImmutableMetadata
eip-8004#registration-v1ドキュメント(model.uri、active、x402Support、registrations、supportedTrust)を含む AgentIdentity プラグイン
どちらも自己管理型の、2 つの署名方法に対応しています。
- エージェントは自身のキーペア(
SOLANA_SECRET_KEY)で署名します:mint_onchain_agent。 - ユーザーは Phantom、Solflare、Backpack、Ledger、または任意の Solana ウォレットで署名します:
prepare_agent_mintでトランザクションを作成し、ウォレットで署名してから、send_signed_transactionでブロードキャストします。秘密鍵がサーバーに渡ることはありません。
mainnet へのデプロイでは、ミントと同じトランザクション内で定額の 0.02 SOL の手数料が支払われ、この手数料は $THREE の買い戻しに充てられます。$THREE を保有すると手数料は半額になり、その後免除されます。devnet では手数料はかかりません。プレビューには、署名前に必ず手数料の金額と受取先が表示されます。詳しくは $THREE:デプロイ手数料と保有者向け免除 をご覧ください。
モックはありません。実際の Metaplex プログラム、実際の Solana、そして無料のエンドツーエンドのリハーサルに対応した devnet サポートを提供します。
インストール
npm install -g @three-ws/metaplex-agent-mcp
# or run ad hoc
npx -y @three-ws/metaplex-agent-mcp
セットアップ
Claude Code:
claude mcp add metaplex-agent -e SOLANA_SECRET_KEY=<base58> -- npx -y @three-ws/metaplex-agent-mcp
Cursor/任意の MCP クライアント(mcp.json):
{
"mcpServers": {
"metaplex-agent": {
"command": "npx",
"args": ["-y", "@three-ws/metaplex-agent-mcp"],
"env": { "SOLANA_SECRET_KEY": "<base58 secret key>" }
}
}
}
SOLANA_SECRET_KEY は任意です。すべての読み取りツールと Phantom/Solflare のフロー全体は、これがなくても動作します。
クイックスタート
まず無料で devnet 上でリハーサルし、その後 mainnet に移行します。
1. agent_wallet {} → confirm the signer is funded
2. mint_onchain_agent { name: "Astra", description: "…",
image: "https://…png", model_url: "https://…glb",
x402_support: true, network: "devnet" } → preview (nothing broadcast)
3. …same call with confirm: true → minted + registered, links returned
4. get_onchain_agent { asset: "<returned asset>", network: "devnet" }
mainnet へのデプロイには約 0.027 SOL かかります。Core のレンタル料、アイデンティティ PDA のレンタル料、ネットワーク手数料として約 0.007 SOL、さらに $THREE の買い戻しに充てられる定額 0.02 SOL のデプロイ手数料が必要です。$THREE を保有すると手数料は半額になり、その後免除されます。devnet は無料です。詳しくは $THREE をご覧ください。
ツール
| ツール | 機能 |
|---|---|
mint_onchain_agent | ミントして登録します。お使いのキーで署名します(収まる場合はアトミックに実行し、それ以外は自動で分割します)。confirm:true で支払いを確定します。それ以外の場合は完全なプレビューを返します。 |
prepare_agent_mint | 外部ウォレット(wallet パラメーター)で署名するために、同じミントのトランザクションを作成します。新しいアセットのキーペアでの共同署名が済んだ txs_base64 を返します。signTransaction/signAllTransactions で署名してください。 |
send_signed_transaction | ウォレット署名済みのトランザクションを順にブロードキャストし、それぞれの確定までポーリングして、作成/登録間の伝播競合を吸収します。 |
register_agent_identity | ミント済みの Core アセットを Agent Registry に登録します(冪等です。署名者はアセットの権限者である必要があります)。 |
get_onchain_agent | 登録済みエージェントを読み取ります:アセット、プラグイン、デコード済みメタデータと登録ドキュメント、アイデンティティ PDA、組み込みウォレットと残高。 |
agent_wallet | アセットの組み込みウォレット(mpl-core Asset Signer PDA)、任意のアドレス、または設定済みの署名者と、そのリアルタイム SOL 残高を取得します。 |
build_registration | EIP-8004 登録 JSON と data: URI を完全オフラインで作成します。 |
list_onchain_agents | ライブの three.ws /api/deployments フィードから最新の登録を取得します(デフォルトは Solana、all_chains:true で EVM の ERC-8004 も対象になります)。 |
three_status | 次回のデプロイ費用を算出します:手数料の体系、ウォレットのリアルタイム $THREE 残高とティア、公開買い戻し台帳。 |
$THREE:デプロイ料金と保有者向け免除
メインネットへのデプロイには、一律 0.02 SOL の料金がかかります。重要な点は次の3つです。
- アセットを作成するトランザクションに含まれます。 デプロイが失敗、拒否、または期限切れになった場合、資金は移動しません。別途支払い手順はなく、照合も不要です。
- 署名する前に開示されます。 すべての
mint_onchain_agentのプレビューとprepare_agent_mintのレスポンスで、料金を決定したティアとともにdeploy_fee_solとdeploy_fee_toが返されます。 - $THREE の買い戻しに充てられます。 料金は、three.ws の
$THREE 買い戻し用に資金を支出するウォレットに支払われます
(
FeMbDoX7R1Psc4GEcvJdsbNbZA3bfztcyDCatJVJpumpがミントです)。この買い戻しの公開台帳は/api/three-token/statsにあります。デプロイがこのパッケージ唯一の収益源です。
$THREE を保有すると料金が安くなり、やがて無料になります。
| 支払いウォレット内の $THREE | デプロイ料金 |
|---|---|
| 50,000 未満 | 0.02 SOL |
| 50,000 以上 | 0.01 SOL |
| 250,000 以上 | 無料 |
残高はトランザクションの構築時にチェーンからリアルタイムで読み取られます。特典を得るためにステーキング、エスクロー、ロック、または消費を行う必要はありません。トークンをご自身のウォレットで保有し続ければ、デプロイするすべてのエージェントに免除が適用されます。Devnet では常に無料なので、エンドツーエンドのリハーサルをすべて無料で行えます。
three_status {} → what your next deploy costs and why
three_status { wallet: "<any base58 address>" } → price it for someone else's wallet
異なる料金体系でフォークをセルフホストする場合は、DEPLOY_FEE_SOL、DEPLOY_FEE_WALLET、DEPLOY_FEE_ENABLED を設定します。
カスタマイズ
ミントで扱うすべてのフィールドをパラメーターとして指定できます。所有者、コレクション、ロイヤリティのベーシスポイントと分配、検証済みクリエイター、不変メタデータ、オンチェーン属性、恒久的な凍結/転送/焼却デリゲート、AddBlocker、オフチェーンメタデータ属性、external_url、サービス、信頼モデル、登録エントリー、さらに自分でホストするドキュメント用の完全な metadata_uri/registration_uri 上書きが含まれます。デフォルトは Genesis 333 の値なので、name、description、image、model_url だけを指定して呼び出すと、元のものと形式上見分けのつかないアセットが生成されます。
安全性
mint_onchain_agentとregister_agent_identityは、confirm: trueの場合にのみブロードキャストします(オプトアウトするにはREQUIRE_CONFIRM=falseを設定します)。プレビューに費用はかかりません。- キーはご自身で管理します。使用するのは
SOLANA_SECRET_KEYまたは呼び出しごとのsecretであり、カストディアルウォレットは使用しません。ウォレットレーンにキーは不要です。 - 支出前に残高を確認し、RPC エンドポイントには HTTPS が必須です。また、リハーサル用の対象として devnet を正式にサポートしています。
環境変数
| 変数 | デフォルト | 意味 |
|---|---|---|
SOLANA_SECRET_KEY | 未設定 | ミント用ウォレットの Base58 秘密鍵または JSON バイト配列です。 |
SOLANA_RPC_URL | パブリックエンドポイント | HTTPS RPC です。本番トラフィックでは独自のエンドポイントを使用してください。 |
METAPLEX_AGENT_NETWORK | mainnet | デフォルトのクラスター(mainnet または devnet)です。すべてのツールで呼び出しごとに network も指定できます。 |
REQUIRE_CONFIRM | true | 支出には confirm: true が必要です。 |
THREE_WS_BASE | https://three.ws | デプロイフィードと $THREE 台帳のホストです。 |
DEPLOY_FEE_SOL | 0.02 | メインネットのデプロイ料金(SOL 単位)です。 |
DEPLOY_FEE_WALLET | three.ws 買い戻しウォレット | デプロイ料金の支払い先です。 |
DEPLOY_FEE_ENABLED | true | 料金を請求しないフォークを構築するには false に設定します。 |
THREE_HALF_PRICE_AT / THREE_FREE_AT | 50000 / 250000 | 料金が半額になり、その後免除される $THREE 残高です。 |
THREE_MINT | $THREE ミント | 正式なコントラクトが更新された場合に追跡するためだけに使用します。 |
ライブラリの使用
ビルダーは直接埋め込めるようにエクスポートされています(ウェブアプリ、スクリプト向け)。
import { buildAgentMint, sendAgentMint, buildUmi, toBase58Signature } from '@three-ws/metaplex-agent-mcp/lib';
const umi = buildUmi({ network: 'devnet', secret: process.env.SOLANA_SECRET_KEY });
const mint = buildAgentMint(umi, {
network: 'devnet',
creator: umi.identity.publicKey.toString(),
name: 'Astra',
description: 'An autonomous 3D agent',
image: 'https://example.com/astra.png',
modelUrl: 'https://example.com/astra.glb',
x402Support: true,
});
const { signatures, atomic } = await sendAgentMint(umi, mint, { toBase58Signature });
登録ビルダーとメタデータビルダーは、@three-ws/metaplex-agent-mcp/lib/registration から単独でインポートすることもできます(依存関係がなく、ブラウザーで安全に使用できます)。トランザクションビルダーは @three-ws/metaplex-agent-mcp/lib/mint からインポートできます。three.ws の /deploy-onchain ページは、これらとまったく同じものを使用しています。atomic が false の場合でも、combinedBuilder にはミント全体が保持されます。Solana トランザクション v1(4,096 バイトの上限)としてコンパイルすると、作成と登録が1つのアトミックなトランザクションにまとめられます。/deploy-onchain は、v1 署名に対応しているウォレットであれば、どのウォレットでもこの方式を使用します。
要件
- Node 20+
- ミントするには対象ネットワーク上の SOL が必要です(メインネットではエージェント1つあたり約0.027 SOL、ホルダー免除が適用される場合は約0.007 SOL。devnet はフォーセット経由で無料です)。
リンク
- three.ws:https://three.ws
- $THREE:https://three.ws/three
- デプロイのライブフィード:https://three.ws/deployments
- Metaplex Agent Registry:https://www.metaplex.com/agents
- Metaplex のドキュメント:https://www.metaplex.com/docs/agents
- ソース:https://github.com/nirholas/three.ws/tree/main/packages/metaplex-agent-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。