z-zero-mcp について
Z-ZEROはAIエージェント向けのMCP決済サーバーで、Base上のガス不要なUSDC決済と、都度発行する使い切りバーチャルカードに対応します。実カード情報をモデルのコンテキストから隔離し、決済意図と結果の署名記録を提供します。
主な機能
- 01Base上のガス不要なUSDC決済
- 02金額固定の使い切りカードトークン
- 03決済前の目的確認
- 04署名付き決済レシート
- 05チェックアウトのヒントと失敗分類
活用シーン
- 01暗号資産対応のチェックアウトで決済
- 02カード決済対応サイトでの購入
- 03意図と異なる内容のチェックアウトを一時停止
- 04署名付き購入レシートの検証
MCP 対応
MCPサーバーは、ウォレットとカードの管理、決済トークンの発行、チェックアウト実行、加盟店ヒント、レシート検証のツールを公開します。クライアントはホスト型Z-ZERO APIに接続するか、Passport Keyを使ってサーバーを実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 6 日前に更新
このツールにパラメーターはありません。
詳細
Z-ZERO MCP — エージェント型コマース向け決済インフラストラクチャ(Base 上の USDC、ガスレス)
現在の AI エージェントは計画し、推論し、コードを書くことができます。しかし、金銭面では何もできません。 資金を保有したり、支払いを行ったり、信頼性を証明したりできません。購入のたびに、人間がクレジットカード番号をコピーして貼り付ける必要があります。
Z-ZERO がその問題を解決します。1 つの MCP サーバーで、エージェント(Claude、Cursor、MCP 対応クライアント)に 2 種類の決済手段を提供します。暗号資産に対応した決済には Base 上のガスレス USDC、カード決済しか利用できないウェブの 99% には JIT の使い捨てバーチャルカードを使います。その間、モデルが実際のカード番号を見ることは一切ありません。
npx z-zero-mcp-server
他とは異なる点:
- 🔐 設計段階からゼロトラスト — AI が PAN、CVV、有効期限を見ることはありません。カード情報は RAM 上にのみ存在し、最後の手順で Playwright を通じて注入された後、消去されます。
- ⛽ Base 上のガスレス USDC — 暗号資産対応の決済(EIP-681)を自動検出し、Coinbase Paymaster が手数料を負担するガスレス USDC 送金として決済します。エージェントが保有するのは USDC のみで、ETH やガスに関する操作は不要です。オプトイン方式: オンチェーン送金はウェブページから読み取ったアドレス宛てに行うと取り消せないため、
Z_ZERO_ENABLE_WEB3_PAY=1を設定しない限り無効です。 - 💳 JIT の使い捨てバーチャルカード — 金額が固定され、有効期限は 1 時間で、1 回使用すると破棄されます。それ以外のウェブ決済には、法定通貨での代替手段を使います。
- 🧠 スマートルーティングと決済インテリジェンス —
get_merchant_hintsで、プラットフォームごとの決済手順(Shopify、Etsy、WooCommerce など)を提供します。 - ✍️ 目的と結果の関連付け — サーバーは、エージェントが発行時に記録した基準に署名します。決済前に
execute_paymentがその基準を返し、goまたはpauseを指定した 2 回目の呼び出しを要求します。購入が確認されると、その回答が署名付きレシートに封印されます。この記録は確認できますが、プラットフォームがエージェントの申告の真偽を判定したかのように装うことはありません。 - 🔄 構造化された失敗ラベル — 決済失敗には、固定の 14 種類の
failure_classが自動的に割り当てられます(エージェントが報告を思い出したときだけではありません)。その情報は、販売者ナレッジベースの証拠として保存されます。事実が共有ヒントに反映されるのは、後続の結果またはレビューで検証された後だけです。
Base メインネットで稼働中
- ✅ 実証 — Base メインネットでの実際のガスレス USDC 送金:
0xdfd1f2f8…5d7a - オンボーディングは「USDC を入金」するだけです。エージェントにシードフレーズは不要で、ネイティブのガストークンも、取引所のアカウントも必要ありません。
仕組み
User AI Agent MCP Tools Z-ZERO API
│ │ │ │
│ "Buy me this │ │ │
│ Shopify item" │ │ │
├─────────────────▶│ │ │
│ │ read mcp://resources/sop (MANDATORY) │
│ ├─────────────────────▶│ │
│ │◀── platform rules ───┤ │
│ │ + payment SOP │ │
│ │ │ │
│ │ get_merchant_hints("_platform_shopify") │
│ ├─────────────────────▶│ GET /checkout-hints │
│ │ ├─────────────────────▶│
│ │◀── pre_steps+notes ──┤◀──── hints data ─────┤
│ │ │ │
│ │ (fills shipping form, reaches payment page) │
│ │ │ │
│ │ request_payment_token(amount, cart, criteria)│
│ ├─────────────────────▶│ │
│ │◀── temp_auth token ──┤ (1-hour TTL) │
│ │ │ │
│ │ execute_payment(token, checkout_url) │
│ ├─────────────────────▶│ │
│ │◀── purpose_check ────┤ (nothing charged) │
│ │ compare locked criteria with final page │
│ │ │ │
│ │ execute_payment(..., recheck: go | pause) │
│ ├─────────────────────▶│ │
│ │ pause → no card is filled │
│ │ go → Playwright fills + submits, │
│ │ then burns token if confirmed 🔥 │
│ │◀──── ✅ success ─────┤ │
│ "Done! Your item │ │ │
│ is ordered." │ │ │
│◀─────────────────┤ │ │
AI エージェントがカード情報に触れることはなく、扱うのは使い捨てトークンだけです。実際のカード情報は最後の手順で Playwright によって注入され、RAM から消去されます。
暗号資産決済の分岐:
auto_pay_checkoutが暗号資産対応の決済(EIP-681)を検出すると、カード決済フロー全体をスキップし、Base 上のガスレス USDC 送金として決済します。詳細は上記を参照してください。デフォルトでは無効です。Z_ZERO_ENABLE_WEB3_PAY=1を設定すると有効になります。
Z-ZEROを選ぶ理由
Z-ZEROは決済ボットではありません。エージェントコマース時代の決済インフラです(エージェントによる取引は、2030年までに 1.5兆ドルに達すると予測されています — Juniper Research)。
現在、ウェブは人間向けに構築されています。エージェントはフォームに入力してボタンをクリックする必要があり、購入のたびに人間のカードが必要です。Z-ZEROはこの課題を今すぐ解決します。モデルからカード情報を隔離した、JITの使い捨てバーチャルカードとBase上のガス代不要のUSDCを提供します。将来、エージェント決済は標準化されたプロトコルになります。その実現に向けて構築するものが、長期的な価値となります。
- 共有型のチェックアウトインテリジェンス — あらゆる取引(および失敗)がネットワークをより賢くします。
- エージェント決済のオープン標準 — あらゆるエージェントプラットフォームがMCP経由で接続でき、あらゆる決済手段(カード、USDC、x402)を追加できます。
- KYA — Know Your Agent — 検証可能なエージェントのレピュテーションです。問うべきなのは「このエージェントは支払えるか」ではなく、「このエージェントを信頼すべきか」です。
📖 ビジョンとアーキテクチャの詳細:Z-Zero Whitebook
クイックインストール(推奨)
npx z-zero-mcp-server
Claude Desktopの設定(~/Library/Application Support/Claude/claude_desktop_config.json)に追加します。
{
"mcpServers": {
"z-zero": {
"command": "npx",
"args": ["-y", "z-zero-mcp-server@latest"],
"env": {
"Z_ZERO_API_KEY": "zk_live_your_passport_key_here"
}
}
}
}
Passport Keyはこちらから取得してください:z-zero.xyz/dashboard/agents
セキュリティ:接続時のローテーション(v1.5.0以降)
ダッシュボードからコピーした(またはチャットに貼り付けた)キーは、一度限りのブートストラップチケットにすぎません。 エージェントがこのキーで接続すると、MCPサーバーはただちに新しいキーへと自動的に切り替えます。
- 新しいキーはサーバー → MCPプロセス → ディスクへと渡され、
~/.z-zero/credentials(モード0600)に保存されます。LLMとの会話、ツールの結果、設定ファイルに表示されることはありません。 - 貼り付けたキーは数秒以内に無効になります。チャットの履歴、クリップボード、スクリーンショットに残ったコピーを、ほかの人が使うことはできなくなります。
- 起動時、MCPはまず
~/.z-zero/credentialsからキーを読み込みます。Z_ZERO_API_KEY環境変数はブートストラップ用のフォールバックとしてのみ使われます。
1台のマシンにつき1つのキーです。 同じマシン上のすべてのエージェント(Claude Desktop、Claude Code、Cursor、…)は、同じMCPインストールと認証情報ファイルを共有します。インストールは一度だけで、どのエージェントでも支払いができます。別のマシンがコピーしたキーで接続するとキーがローテーションされ、元のマシンはただちに切断されます。これは意図的な仕様です。キーの共有を防ぐと同時に、侵入アラームとしても機能します。エージェントの認証が突然失敗した場合、ほかの誰かがキーを使った可能性があります。ダッシュボードにアクセスしてキーを失効させてください。
ローテーションエンドポイントがない古いセルフホスト型バックエンドでも引き続き動作します。その場合、貼り付けたキーは従来どおり有効なままです。
要件
- Node.js v18以降 — nodejs.org
- Passport Key —
zk_live_で始まるキーです。上記のダッシュボードから取得してください。
利用可能なMCPツール
グループ1 — ウォレット設定(パッシブ)
| ツール | 説明 |
|---|---|
list_cards | すべてのバーチャルカードのエイリアスと残高を一覧表示します |
check_balance | カードのエイリアスに紐づく利用可能なUSD残高を確認します |
get_deposit_addresses | USDC(Base上のステーブルコイン)を入金するためのBase入金アドレスを取得します |
set_api_key | 再起動せずに新しいPassport Keyをただちに有効化します |
show_api_key_status | Passport Keyが現在読み込まれているかを確認します(プレフィックスのみ) |
グループ2 — 手動カード決済(アクティブ)
| ツール | 説明 |
|---|---|
request_payment_token | 指定金額のJIT使い捨てバーチャルカードトークンを発行します(有効期間1時間)。cart、criteria、ship_toを渡すと、署名付きの発行記録が作成されます |
execute_payment | 2回の呼び出しが必要です。 1回目はrecheckなしで呼び出すと、ロックされた条件が返され、課金は発生しません。2回目はrecheck: { page_shows, decision: go|pause }を指定します。pauseではカード情報を入力せず、確認済みのgoでは署名付きレシートが返されます |
cancel_payment_token | 未使用のトークンをキャンセルし、ウォレットに返金します |
request_human_approval | 処理を一時停止し、続行前に人間の確認を求めます |
グループ 3 — スマート自動操縦
| ツール | 説明 |
|---|---|
auto_pay_checkout | 完全自律型のチェックアウト — JIT カードを発行して支払いを完了します(暗号資産のチェックアウトは Z_ZERO_ENABLE_WEB3_PAY=1 の場合のみ) |
get_merchant_hints | ナレッジベースからプラットフォーム固有のチェックアウト手順書(事前手順 + セレクター)を取得します |
report_checkout_fail | 構造化された failure_class(14 種類の列挙値)を使ってチェックアウトの失敗を報告し、自己修復ループに反映します |
verify_receipt | ID で署名済みレシートを検証し、購入したと主張するのではなく、購入が行われたことを証明します |
📖 注記: バージョンチェックは各 API 呼び出しで自動的に処理されます。個別のツールは必要ありません。
エージェントのプリミティブ(v1.9.0)
通常のバーチャルカードだけでは得られない、エージェントがここで利用できる、相互に関連する 4 つの記録と制御機能です。
1. 署名付きインテント — カードに用途を認識させます
トークンをリクエストするときにカートを渡します:
request_payment_token({
card_alias: "Card_01",
amount: 44.00,
merchant: "etsy.com",
cart: [{ title: "Ceramic mug — matte white", qty: 2, unit_price: 18.50 }],
ship_to: "12 Nguyen Hue, District 1, Ho Chi Minh City, VN",
criteria: {
source: "user_described",
items: [
{ key: "item", stated: "two matte-white ceramic mugs" },
{ key: "max_total", stated: "no more than $44 delivered" }
]
}
})
Z-ZERO は発行時にこの内容に署名(EIP-191)します。これは、エージェントが所有者の指示として提示した条件の、改ざんを検知できる記録です。人間が各項目を個別に承認したことを独立して証明するものではありません。配送先住所はハッシュとして保存され、生の値は保存されません。
トークンをリクエストする前に、チェックアウトページの内容をユーザーの実際の依頼と照合してください — 商品、数量、バリエーション、配送先がすべて一致している必要があります。ここで不一致に気付けば、費用はかかりません。トークン発行後に気付くと、カードの費用がかかります。
2. 目的の確認 — まず読み取り、その後 go または pause を宣言します
execute_payment は意図的に 2 回呼び出すツールです:
// Call 1 — omit recheck. No browser, PAN, or charge.
execute_payment({ token, checkout_url, actual_amount: 44.00 })
// → { status: "purpose_check", nothing_charged: true, owner_asked_for: ... }
// Call 2 — describe the final page and make an explicit decision.
execute_payment({
token,
checkout_url,
actual_amount: 44.00,
recheck: {
page_shows: "2 matte-white mugs, delivered total $44.00",
decision: "go"
}
})
何かが異なる場合は decision: "pause" を使用します。カード情報は入力されず、トークンは有効なままで、払い戻しも可能です。go を指定するとチェックアウトが実行されます。販売業者が注文を確認した場合、その宣言は結果とともに署名付きレシートに記録されます。プラットフォームはエージェントが何を宣言したかを記録しますが、ページを独立して調査したり、宣言が真実だったと証明したりすることはありません。
3. 署名付きレシート — 購入を主張するのではなく、証明します
支払いが確認されると、次の情報が返されます:
"signed_receipt": {
"receipt_id": "8ea36791-…",
"receipt_hash": "0x…",
"match": { "total": "over", "domain": "ok" },
"diff": [{ "field": "total", "expected": 44.00, "observed": 46.75 }],
"verify_url": "https://z-zero.xyz/receipt/8ea36791-…"
}
重要なのは diff です。これは、販売業者が実際に行ったことと、承認された内容との差分です。verify_url をユーザーと共有してください。ページは公開されており、誰でも確認できます。検証では 3 つの項目を確認します。署名が有効であること、署名者が Z-ZERO であること、表示されるフィールドのハッシュが署名時の値と一致することです(そのため、記録の後編集は当社を含めて検知できます)。
有効なレシートが証明すること、証明しないこと。 Z-ZERO によって記録に署名され、改ざんされていないことを証明します。ただし、それだけで販売業者がレシートに記載された金額を請求したことを証明するものではありません。ほとんどのフィールドは、エージェントがウェブページを読み取った内容から始まります。そのため、各レシートにはフィールドごとに provenance が付与されます。zzero_issued(当社が設定した上限)、issuer_captured(カード発行会社のキャプチャ Webhook で確認済み — 決済の証拠)、agent_reported(未検証)、human_verified。キャプチャ Webhook が届くまでは、これは署名付き実行レシートであり、決済の証拠ではありません。その旨も明記されます。
4. 構造化された失敗クラス — すべての失敗がネットワークの学習につながります
report_checkout_fail では、自由記述ではなく固定の列挙値を指定します:
card_declined_issuer · card_declined_bin_block · avs_mismatch · 3ds_required ·
bot_detected · form_changed · price_changed · out_of_stock ·
shipping_unsupported · login_required · timeout · outcome_unconfirmed ·
intent_mismatch · unknown
失敗した実行はブラウザーの結果に基づいて自動的にも分類されるため、誰も報告を忘れてもネットワークは学習します。カード番号は取得時に伏せられるため、ログ、スクリーンショット、DOM ダンプに残ることはありません。
REST API リファレンス
Z-ZERO バックエンドは https://z-zero.xyz でホストされています。すべてのエンドポイントには、Passport Key を使用する Bearer トークンが必要です。
⚠️ REST を直接呼び出すのではなく、上記の MCP ツールを使用してください。 REST を呼び出す必要がある場合は、以下のパスをそのまま使用してください。
GET /api/tokens/cards
カード一覧、残高、入金アドレスを返します。
curl -X GET "https://z-zero.xyz/api/tokens/cards" \
-H "Authorization: Bearer zk_live_your_key"
エイリアス(こちらも使用できます):
GET /api/v1/cards← REST スタイルのパスを推測するエージェント向け
POST /api/tokens/issue
JIT 決済トークンを発行します。
POST /api/tokens/resolve
トークンをカードデータに解決します(サーバー側のみ)。
POST /api/tokens/burn
使用済みトークンを無効化します。
POST /api/tokens/cancel
未使用のトークンをキャンセルします(残高を返金します)。
トラブルシューティング
「Z_ZERO_API_KEY が見つかりません」
- z-zero.xyz/dashboard/agents にアクセスします
- Passport Key をコピーします(
zk_live_で始まります) Z_ZERO_API_KEYとして設定に追加します- Claude Desktop / Cursor を再起動します
「Invalid API Key」(401)
- キー全体をコピーしたことを確認します(例:
zk_live_c0g3l) - 余分なスペースや改行がないことを確認します
/api/v1/cards で「404 Not Found」
- これは旧式のパスエイリアスです。現在は使用できるはずです。使用できない場合は、
/api/tokens/cardsを直接使ってください。
セキュリティ:貼り付けたキーは保持されません。エージェントが初めて接続した時点でローテーションされ、新しいキーはローカルの所有者専用ファイル(~/.z-zero/credentials、モード 0600)にのみ保存され、LLM との会話には一切含まれません。カードデータは実行中の揮発性 RAM にのみ存在します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。