gate-pay-x402 について
加盟店の検索、ウォレット設定、決済ルーティングを扱う Gate Pay x402 スキルです。カタログ検索と決済ツールを分け、署名や決済の前に明確な価格提示と同意を求めます。
主な機能
- 01必要に応じて加盟店リソースを検索
- 02ウォレットと決済レールの設定を案内
- 03x402 ツールで加盟店リクエストを処理
- 04各ツールの最新入力スキーマを使用
- 05決済書き込み前に明示的な同意を要求
活用シーン
- 01依頼に合う有料サービスを探す
- 02Gate Pay ウォレットや決済レールを設定
- 03価格確認後に x402 注文を実行
MCP 対応
リソース検索、HTTP または 402 リクエスト、ウォレット認証、決済に Gate Pay MCP ツールを連携します。ツールを公開しているサーバー上で呼び出し、最新の入力スキーマに従います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-pay-x402インストール後、Claude Code で/gate-pay-x402を入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdREADME.mdreferences/scenarios.md詳細
Gate Pay x402(gate-pay-x402)
一般ルール
⚠️ 停止 — このスキルより前にホストが適用する共有ランタイムルールがある場合は、必ずそれに従ってください。これらのルールを満たすまで、ツールを選択または呼び出してはいけません。
- このスキルに明示的に記載されている MCP ツールのみを呼び出してください。 ここに記載されていないツールは、MCP サーバーに存在していても呼び出してはいけません。
許可リストに登録された Gate Pay MCP ツール名(稼働中のサーバーが公開する正確な名前。サーバーに記載されていないツールは対象外):
- 読み取り/オーケストレーション(単独ではオンチェーンの引き落としを行いません。スキーマに応じて HTTP またはセッションのセットアップを行う場合があります):
x402_place_order。x402_request: 接続先サーバーがこれを公開している場合に限ります(一部の代替シングルツール構成)。マーチャントへの HTTP リクエスト、402 の処理、MCP Wallet へのログインには、そのツールのinputSchemaに従って使用してください。 - セッション/認証:
x402_quick_wallet_auth(MCP Wallet/quick_wallet)。x402_gate_pay_auth(公開されている場合、centralized_payment 用の Gate Pay OAuth — そのツールの説明とinputSchemaを参照してください)。 - 書き込み/署名/支払い(取り消し不能、またはセキュリティ上重要 — 支払い手順では価格を明示した後、ユーザーの明確な確認が必要です):
x402_sign_payment、x402_create_signature、x402_submit_payment、x402_centralized_payment(サーバーが公開している場合)。 - マーチャントの検索(読み取り専用):
gatepay-local-mcpとは別の MCP サーバー(例:リモート HTTP MCP)で実行される場合があります。接続中のいずれかのサーバーがこれを公開している場合は、カタログツールを稼働中の正確な名前で呼び出してください(多くの場合はdiscoveryResource。名前が異なる場合は稼働中の名前のみを使用してください)。検索による支払いはありません。どのサーバーも公開していない場合は、ユーザーの URL/コンテキストのみを使用し、ツール名を決して捏造しないでください。
Gate Exchange MCP を使って、Gate Pay のウォレット紐付けを代替したり、サードパーティの x402 MCP における Gate Pay の x402_place_order/同一サーバーの 402 フローを完了したりしてはいけません。ユーザーが gate_exchange レールを選択した場合は、Gate Exchange の経路に従って Gate Exchange MCP ツールのみを使用してください。
同意なしの書き込みは禁止: inputSchema が署名、資金移動、または一元決済を行うツール(x402_sign_payment、x402_create_signature + x402_submit_payment、x402_centralized_payment、および公開されている場合の x402_request 内の支払い手順を含む)は、ユーザーが明確な価格(見積もりまたは 402 の概要)を確認し、明示的に承認するまで呼び出してはいけません。現在の支払いフローに含まれるすべての書き込み手順は、1 回の確認で承認される必要があります。
Gate Pay x402 レイヤー — マーチャントの検索(リソース一覧のみ)、ウォレット/環境のセットアップ、支払い経路の選択を行います。支払いおよびウォレット関連の
x402_*ツールは通常、ローカルのgatepay-local-mcp(stdio)で実行されます。検索は同じサーバー、または 2 つ目の MCP(例:リモート URL)で実行される場合があります。どのサーバーがどのツールを公開しているかは、ホストのツール一覧で確認してください。ツールの引数名、型、必須フィールド、列挙値は、各ツールのinputSchemaに従います。このスキルとinputSchemaの内容に食い違いがある場合は、その呼び出しではinputSchemaに従ってください。
ユーザー向けの言語: ユーザーに見える返信はすべて、現在の会話でユーザーが使用している言語と同じ言語で記述してください(例:ユーザーが中国語で書いている場合は中国語、英語で書いている場合は英語)。
トリガーとなるシナリオ:ユーザーがx402 経由での支払い、有料サービスの検索や選択、Gate Pay ウォレットの設定や追加、または支払いレールの選択を希望する場合に使用します。
- ウォレットの設定/追加/切り替え: デフォルトの支払い方法の設定/セットアップ/追加/バインド/変更、
PAYMENT_METHOD_PRIORITY、およびあらゆる言語での意味的に同等な表現 - 決済レール(MCP Wallet /
quick_wallet): MCP Wallet、Quick Wallet、ユーザーの言語でのローカライズ名や口語名を使った同一製品、プラグインウォレット(拡張機能と Open-API-token 形式のセットアップを含む)、秘密鍵のバインド、ローカル秘密鍵、秘密鍵による支払い、EVM_PRIVATE_KEY、PLUGIN_WALLET_TOKEN - 支払い/購入: 402、支払いが必要、支払い/購入の依頼、注文する、支払いに署名する、
x402_sign_payment— あらゆる言語での同等な表現 - 有料サービスの利用意図(例であり、文字どおりの表現に限りません): 航空券の予約、食事の注文、API の購入、「X を買うのを手伝って」、利用可能な加盟店の確認、課金対象または有料サービスの一覧 — ユーザーが使うあらゆる言語での同等な表現
- Exchange: Gate Exchange での支払い、Exchange 経由で支払う
正確な英語表現だけでなく、意味に基づいて意図を認識してください。ユーザーは複数の言語を混ぜたり、ベンダー固有の用語を使ったりすることがよくあります。
このスキルの対象外(よくある誤ルーティング):
- Gate Pay MCP、x402、当製品の加盟店検索、当製品のウォレット/環境変数の設定をいずれも含まない、一般的な市場/取引のみのリクエスト
- Gate Pay/x402/この MCP の経路を含まない、純粋な相談や取引判断
- Gate Pay MCP の
x402_place_orderと同じ注文について、Gate 以外のサードパーティ製 x402 MCP のみで完了する必要がある支払い(後述の同一サーバールールに違反します)
ドメイン知識
- 製品の対象範囲: Gate Pay x402:
gatepay-local-mcp(x402_*ツール)を介した加盟店 HTTP と 402 の処理。オプションで、カタログツールが登録されている場合は同じ MCP または別の MCPでの加盟店検索(GatePay 加盟店検索を参照)。ウォレットの決済レール(quick_wallet、plugin_wallet、local_private_key)。ユーザーがgate_exchangeを選択した場合に限る、オプションの Gate Exchange MCP。 - スキーマ優先: すべての MCP
argumentsオブジェクトは、対象ツールのinputSchemaに基づいて構築してください。このファイルと競合する場合は、inputSchemaを優先します(**Gate Pay x402 モジュール(MCP ツール)**を参照)。 - 同意: ユーザーに明確な価格を提示し、明示的な確認を得るまで、署名、資金の移動、または決済のツールを使用してはいけません(GatePay 加盟店検索とエージェントのオーケストレーション、ワークフローを参照)。
- 決済レールと環境変数:
PAYMENT_METHOD_PRIORITYと MCP のenvは、ウォレット設定の手順と認証状態で説明しています。
ルーティングルール
ユーザーの意図に基づいてルーティングします(手順の説明はすべてこのファイルに記載されています。ウォレット、検索、ワークフロー、Exchange。他のファイルへの手順の分割はありません。QA シナリオは references/scenarios.md にあります。このファイルは実行時のルーティング用サブモジュールではありません)。
| ユーザーの意図 | キーワード/シグナル | 対象 |
|---|---|---|
| ウォレット/環境変数の設定 | ウォレットのセットアップ、決済レールの追加、MCP Wallet、Quick Wallet、快捷钱包、gate/Gate钱包、各言語での名称、plugin wallet/插件钱包、秘密鍵、PAYMENT_METHOD_PRIORITY、MCP ホストの環境変数 — あらゆる言語で意図を照合 | このファイル — ウォレット設定の手順、続いて認証状態 |
| 加盟店の検索/選択/見積もり | 利用可能な加盟店、有哪些商户、有料サービスの一覧、能付费的服务列表、サービスの選択、見積もり/変動価格、支払い前の検索 — および英語以外の同等表現 | このファイル — GatePay 加盟店検索とエージェントのオーケストレーション、続いてワークフロー |
| x402 支払い(Gate Pay MCP) | 支払い、402、注文する、x402_place_order、x402_sign_payment、および(登録されている場合)x402_request — および英語以外の同等表現 | このファイル — ワークフロー |
| Gate Exchange での支払い | exchange、Gate Exchange — および英語以外の同等表現 | このファイル — Gate Exchange の手順 |
| MCP 接続 | MCP が見つからない、ツールが見つからない、検索またはローカル決済サーバーを追加する必要がある | このファイル — MCP ホストのセットアップ(検索と支払い)、続いてMCP サーバー接続の検出 |
GatePay のマーチャント発見とエージェントのオーケストレーション
一行での意図: ユーザーが利用したい有料サービスを自然言語で伝えると、エージェントはマーチャントを発見 → ルールに基づいてリソースを選択 → マーチャントが対応していれば見積もりを取得 → 必要な呼び出しパラメーターを入力 → サービスを呼び出し → 明確な価格が表示された後、支払いへの明示的な同意を求めます。その後に限り、署名/支払いツールを実行します。ウォレットの決済手段(quick_wallet、plugin_wallet、local_private_key、gate_exchange)については、ウォレット設定手順と認証状態に従います。
対象範囲と境界
- マーチャント発見レイヤーが返すのは、呼び出し可能なリソース一覧のみです。支払いの実行、注文の発行、オンチェーンでの決済は行いません。
- 注文/HTTP/402には、通常は**
gatepay-local-mcpである支払い MCP上のx402_place_orderおよび/またはx402_request(および関連するx402_*)を使用します。引数はすべて**、そのツールの**inputSchema**に基づきます。 - 2 つの MCP(一般的な構成): (1)発見 MCP — カタログツールのみを公開するリモートまたは別プロセス。(2)支払い MCP —
npx -y gatepay-local-mcp(stdio)で、x402_*を公開します。エージェントは、各ツールをそのツールが一覧に表示されているサーバー上で呼び出す必要があります。発見と支払いが同じ接続を共有していると想定しないでください。 - レジストリ/発見 HTTP API(MCP の背後に存在する場合)は実装の詳細です。MCP ツールとレスポンスを使用し、発見ペイロードのフィールド表をここに重複して記載しないでください。リスト項目の形式はMCP が返す内容そのものとして扱い、**
inputSchema**に照らして検証してください。
マーチャント発見 MCP ツール(一覧にある場合)
- 対象サーバー: 設定済みのすべての MCP サーバーを調べます。カタログツールは発見サーバーにのみ表示される場合があります(
gatepay-local-mcpには表示されない場合があります)。 - ツール名(想定):
discoveryResource— 発見機能を公開しているサーバー上の実際のツール一覧と一致する必要があります。提供されたツール名が異なる場合は、実際の名前のみを使用します。 - 動作: ページネーションされた呼び出し可能なリソース一覧(
acceptsを含む HTTP および/または MCP 型エントリー、任意の見積もりメタデータ)のみを返します。このツールから支払いや注文の発行は行いません。 - 引数(論理フィールド名 — 実際の
inputSchemaに従って値を組み立てます。不一致がある場合はinputSchemaを優先します):フィールド 必須 備考 resourceDesはい あいまい検索によるカタログ照合に使う、ユーザーの意図/サービスの説明(自然言語またはキーワード)。 resourceTypeはい httpまたはmcp(設計上のデフォルトは**mcp**)。pageNumいいえ ページインデックス。設計上のデフォルトは** 1**。pageSizeいいえ ページサイズ。設計上のデフォルトは** 10**。tenantIdいいえ テナント ID。設計上のデフォルトは** GATE_PAY**。スキーマに公開されていない場合は省略します。 - レスポンスのマッピング: 各項目には通常、エンドポイントの識別情報と**
accepts(HTTP メソッド、ヘッダー、本文用のoutputSchema/input、または MCP のtool+inputSchema+transportを含む)が含まれます。動的な価格設定では、任意のmetadataとしてquote_endpoint、quote_method、pricing_mode、quote_inputSchema/inputSchemaが含まれる場合があります。これらは上記の見積もりとメイン呼び出しの順序に使用します。フィールド名はレイヤーによってresourceUrlまたはresourceとなる場合があります。常に実際のツールレスポンスに従い、各ツールのinputSchema**に基づいてx402_place_order/x402_requestにマッピングしてください。 - ツールが一覧にない場合: 発見呼び出しを省略し、ユーザーが提示した URL と会話の文脈を使用します。
discoveryResource が必須となる場合(加盟店への HTTP 通信の前)
接続済みの MCP サーバーのいずれかに、ディスカバリーカタログツール(多くの場合 discoveryResource。そのサーバーのツール一覧にある正確な名前を使用します)が登録されており、以下の条件をすべて満たす場合:
- ユーザーが自然言語で商品またはサービスの購入・注文の意思を示している(例:「帮我买一双鞋」、「订一杯咖啡」、「买一个查天气的 API」)。他の言語や口語表現で同じ意思を示している場合も含みます。
- ユーザーメッセージと会話の文脈だけでは、エンドポイントやパラメーターを捏造せずに、支払い MCP 上の
x402_place_orderまたはx402_requestに対応する加盟店 HTTP ツールのinputSchemaを満たす情報が足りない(通常はurl/method/bodyまたは同等の必須フィールドがない、もしくは不完全)。
その場合、エージェントは最初に、そのツールが登録されているサーバー上でディスカバリーツールを呼び出す必要があります。arguments は、そのツールの inputSchema のみを基に構成してください(一般的には、ユーザーの表現を resourceDes に対応付け、スキーマに従って resourceType を設定します。たとえば、設計上のデフォルトは mcp です)。次に選択ルールを適用し、選択したリソースを使って、支払い MCP 上のワークフローのステップ 3~4から続行してください。加盟店の URL を推測したり、加盟店の接続先に空の値、プレースホルダー、または捏造した値を指定して x402_place_order/x402_request を呼び出したりして、ディスカバリーを省略してはいけません。
次の場合は、この必須のカタログ手順を適用しないでください。ディスカバリーツールを登録している接続済みサーバーがない(ユーザーの URL/文脈のみを使用します)、ユーザーが HTTP ツールのスキーマを満たす具体的な加盟店エンドポイントとパラメーターをすでに指定している、購入フローを伴わないウォレット/決済レールのセットアップのみのセッションである、またはユーザーが gate_exchange のみを選択した(Gate Exchange の経路)場合。
選択ルール(絞り込み → 順位付け → 同点時の判断)
順番に適用します。まず絞り込みを行い、残った項目を並べ替えます。候補の適合度が同程度であれば、黙って選ばず、ユーザーに確認してください。
- 意図との一致:
description、種類、機能がユーザーの目的に合っている(例:フライト、食事、API)。 - 制約: ネットワーク、通貨、
maxPrice、ユーザーが指定した予算を確認し、違反するリソースを除外します。 - 呼び出し可能性: 現在の環境で必要な MCP トランスポートおよび/または HTTP を利用できること。利用できない場合は、除外するか制限を説明します。
- パラメーターの実現可能性: ユーザーがすでに伝えた情報で、必要な入力(加盟店の
inputSchemaに従う)を埋められるか確認します。リソースに重要な未知のフィールドが必要で、安全なデフォルト値もない場合は、選択しないでください。または、最も入力しやすい選択肢を選び、不足しているフィールドをユーザーに確認してください。 - 価格の提示方法: ユーザーが決定前に価格を知りたいと強く希望している場合は、見積もり/動的価格設定のメタデータを公開するリソースを優先します。それ以外の場合、同等の選択肢からは固定価格またはよりシンプルな経路を優先します。
- 同点時の判断: 適合度が同程度のリソースが複数残る場合は、価格帯、レイテンシ、制限などの違いを提示し、番号などで選んでもらいます。ユーザーが選択していないのに自動で選んではいけません。
見積もりとメインの呼び出しの順序
- ディスカバリー項目またはスキーマ/メタデータに見積もり/動的価格設定(例:
dynamic、quote_endpoint、または MCP のドキュメントに記載された同等の情報)が示されている場合:まず見積もりを取得 → 通貨、金額、条件をユーザーに提示 → その加盟店で続行するか確認 → ユーザーの承諾後に、パラメーターを指定してメインサービスを呼び出します。 - 見積もりの経路がない場合:独自の見積もり手順を作らず、契約に従ってメインサービスを呼び出します。費用が 402 にのみ記載されている場合は、402 を解析した後、以下の必須の支払い確認を行います。
- 見積もりの経路がないからといって、支払い確認を省略してよいわけではありません。
パラメーター、価格の提示、必須の支払い確認
- パラメーター: マーチャントへの呼び出しまたは
x402_place_order(あるいは、HTTP/402 用に決済 MCPが掲載しているツールがx402_requestの場合はx402_request)を行う前に、該当するinputSchemaに記載された必須フィールドを一覧にしてください。ユーザーから情報が提供されていない場合は、対話を通じて補完してください。API を「調べる」ために、空の値や推測した値で呼び出してはいけません。 - 価格の提示: 見積もりを取得する場合は、通貨、金額、適用条件を提示してください。見積もりがない場合は、402 の後、またはマーチャントから明示的に価格が提示された後に、ユーザーの言語で支払い要件を要約してください。
- 支払い確認(必須): まず、ユーザーに明確な価格(見積もり結果または 402 の要約)を提示する必要があります。その後、エージェントは改めて確認を求めます。確認メッセージには、金額、判明している場合はアセット/チェーン、判明している場合は支払い方法を含めてください。明示的な同意(例:「支払いを確認」「そのまま支払って」)を得た後に限り、
x402_sign_payment、署名を分割するツール、または決済 MCPに掲載されている場合に限りx402_requestの後続ステップを実行してください。ユーザーが拒否した場合または迷っている場合は、支払いを中止し、別のマーチャントを提案するか、終了してください。 - ステップ 1(ワークフロー): 「残高/意向」の確認は、二重に質問するのを避けるため、この価格提示後に確認するステップと統合してもかまいません。価格を提示した後に、明確な確認を一度だけ求めることを推奨します。
ディスカバリーとステップ 4 のマッピング
x402_place_order(または、サーバー上で HTTP ツールとして掲載されている場合はx402_request)に渡すurl/method/bodyは、ユーザーメッセージ、会話のコンテキスト、または上流のディスカバリー(リソースの識別情報、MCP 応答内のoutputSchema、または同等の情報)から取得します。フィールド名は、ツールのinputSchemaで要求される名前に対応付けてください。
ワークフローとの整合性
- ステップ 4 では、マーチャントへの HTTP リクエストと 402 の処理を、
x402_place_orderまたは掲載されている場合はx402_requestで引き続き行います(サーバーによります)。 - ステップ 5~6(必要に応じた MCP Wallet ログイン、署名/支払いツール)は、上記の必須の支払い確認の後にのみ実行してください(または、確認と統合する場合は、最初の課金/署名の直前に実行してください。ユーザーに明確な価格を提示し、同意を得る前には実行しないでください)。
- 同一サーバールール(支払い): マーチャントへの注文1 件/402 チャレンジ1 件について、すべての
x402_*ステップ(注文、署名、送信、支払いの認証)は、同じ決済 MCP サーバー ID(通常はgatepay-local-mcp)を使用してください。ディスカバリーは別のサーバー ID で実行してもかまいません。それによってこのルールに違反することはありません。注文について、同じ決済サーバー上で実行する必要があるのはx402_*のみです。
ウォレットと決済レール(製品ルール)
このファイル内の他の箇所にある古い表現と矛盾する場合、以下がそれらに優先されます。ただし、ツールの inputSchema でフィールド(例:URL 引数)が必須とされている場合は、inputSchema が優先されます。スキーマとベンダーのドキュメントに従って値を指定してください。
plugin_wallet: ユーザーは MCP のenvでのみPLUGIN_WALLET_TOKENを設定します(完全なトークンをチャットに入力することは絶対にありません)。デフォルトのルールとして、ユーザーの環境変数にPLUGIN_WALLET_SERVER_URLを要求しないでください。実装では組み込みエンドポイントを使用する場合があります。呼び出し時にinputSchemaで URL(または同様の値)が引き続き必須の場合は、必須フィールドに反することなく、スキーマとドキュメントに従って入力してください。quick_wallet(MCP Wallet):MCP_WALLET_API_KEY、MCP_WALLET_URL、または類似の「quick wallet API URL」環境変数を要求しないでください。セッションはツール経由のログイン(スキーマに従い、x402_quick_wallet_auth、またはログインに使用するビルドの場合はx402_request)から取得します。成功後、Section 1(MCP Wallet)の指示に従ってPAYMENT_METHOD_PRIORITYを更新してください。- 支払いの失敗と決済レールの切り替え: 実際に設定済みで利用可能な決済レール(
PAYMENT_METHOD_PRIORITY+ 環境変数 + ログイン状態)のみを使用してください。plugin_walletのみが設定されていて、失敗した場合は、quick_walletがすでに設定済みで、かつユーザーが切り替えに明示的に同意している場合を除き、quick_walletのログイン/認証を開始しないでください。次の決済レールがない場合は、失敗を説明し、トークン/プラグインの設定を確認するよう案内してください。他の支払い方法を作り出してはいけません。複数の決済レールがある場合は、失敗時に次の設定済みレールを試してもかまいません。製品で技術的な再試行のみの例外が定義されていない限り、決済レールを切り替える前にユーザーに簡潔に確認することを優先してください。
強制停止条件(これらに限りません)
- ディスカバリーで利用可能なものが何も見つからず、制約を緩和できない → 停止するか、制約を緩和して再試行してください。加盟店を捏造してはいけません。
- 必須パラメーターが不足している → 加盟店ツールや支払いツールを呼び出さないでください。
- 価格を確認した後、ユーザーが支払いに明示的に同意していない → 署名ツールや支払いツールを呼び出さないでください。
- プラグインのみの設定でプラグイン呼び出しが失敗した → 未設定の
quick_walletを自動起動しないでください。
MCP ホストの設定(ディスカバリー+支払い)
多くのデプロイでは、MCP エントリーを2つ使用します。
| 役割 | 一般的なトランスポート | 目的 |
|---|---|---|
| 支払い MCP | stdio — npx -y gatepay-local-mcp | x402_place_order、x402_request、x402_sign_payment、x402_quick_wallet_auth、その他の x402_*。ウォレットの env(PAYMENT_METHOD_PRIORITY、EVM_PRIVATE_KEY、PLUGIN_WALLET_TOKEN、…)はこちらに設定します。 |
| ディスカバリー MCP(任意) | HTTP リモート URL(ホスト固有) | 支払い可能な加盟店のカタログのみ(ツール名は多くの場合 discoveryResource です。実際のツール一覧で確認してください)。支払いツールの代わりにはなりません。 |
ホストの MCP サーバーマップに両方を追加し、無関係な MCP を削除しないでください。編集後は MCP を再読み込みするか、アプリを再起動してください。
例:mcp.json の一部(Cursor 形式のホスト)
プロジェクト:<project>/.cursor/mcp.json。ユーザー全体の設定:~/.cursor/mcp.json。mcpServers の下に記述します。
{
"gatepay-merchant-discovery": {
"url": "https://openplatform.gateapi.io/pay-mcp-server/mcp"
},
"gatepay-local-mcp": {
"command": "npx",
"args": ["-y", "gatepay-local-mcp"],
"env": {}
}
}
- キー(
gatepay-merchant-discovery、gatepay-local-mcp)は名前を変更できます。セッション中は、エージェントが各ツールに対して正しいサーバーを指定できるよう、同じ名前を維持してください。 - ホストでリモート MCP に別の形式(ヘッダー、
transport、SSE)が必要な場合は、現在のホストのドキュメントに従ってください。製品でディスカバリーとローカル決済を分割している場合、両方のエンドポイントを登録することが重要です。 - シークレットは
gatepay-local-mcpのenvにのみ設定してください(チャットには絶対に入力しないでください)。
MCP サーバー接続の検出
Gate Pay の支払いまたは MCP Wallet 認証に関する最初の x402_* ツール呼び出しの前、およびフローでカタログが必要な場合は必須の加盟店ディスカバリーの前に、以下のプローブを実行してください(ユーザーが Section 0.A の内容のみを受け取り、まだ決済レールを選択していない場合は省略します)。
A. 支払い MCP(x402 での支払い/ウォレット認証に必須)
- 設定済みサーバーをスキャンし、名前が
x402_で始まるツールが少なくとも1つあることを確認します(例:x402_place_order、x402_sign_payment、x402_quick_wallet_auth)。ビルドによっては、x402_place_orderの代わり、またはこれと併せて、x402_requestがメインの HTTP/ログイン用ツールとして公開されます。 - そのホストのサーバーキーを支払いサーバー IDとして記録します(例:
gatepay-local-mcp)。 - ツール一覧に、
x402_place_order、x402_request、または販売者の HTTP/402 用としてドキュメントに記載された別のx402_*エントリが含まれていることを確認します。
| 結果 | 対応 |
|---|---|
| 成功 | この注文フローのセッション中、すべての x402_* 呼び出しでこの支払いサーバー IDを使用します。 |
| 失敗 | 以下のセットアップガイド — 支払い MCPを表示します。支払いパラメーターを推測してはいけません。 |
B. 検出 MCP(必須の検出が適用される場合に限り必須)
- 設定済みのすべてのサーバー(支払いサーバー以外も含む)をスキャンし、カタログツールを探します。多くの場合は
discoveryResourceです。実行時の一覧にある正確な名前を使用してください。 - 見つかった場合、そのサーバーキーを検出サーバー IDとして記録します(例:
gatepay-merchant-discovery)。 - ユーザーの購入フローでカタログが必要(
discoveryResourceが必須の場合)にもかかわらず、検出ツールを一覧に含むサーバーがない場合は、以下のセットアップガイド — 検出 MCPを表示します。
| 結果 | 対応 |
|---|---|
| カタログツールが見つかった | 検出サーバー IDでのみ検出を呼び出し、結果を支払いサーバー ID上の x402_place_order / x402_request に渡します。 |
| カタログが見つからず、必須 | ユーザーは検出 MCP を追加するか、販売者の URL/パラメーターを手動で指定する必要があります。 |
| カタログが不要 | 省略します。ユーザーが必要な販売者情報を指定しているか、セッションがウォレット専用/Exchange 専用です。 |
セットアップガイド — 支払い MCP(A の失敗時、セッションごとに最大1回表示):
Payment MCP (gatepay-local-mcp)
- Add a stdio server: command "npx", args ["-y", "gatepay-local-mcp"], env { } (add PAYMENT_METHOD_PRIORITY / EVM_PRIVATE_KEY / PLUGIN_WALLET_TOKEN only when that rail is used — full secrets never in chat).
- Cursor-style: merge into .cursor/mcp.json under mcpServers; reload MCP or restart the IDE.
- Other hosts: register the same stdio command per product docs (VS Code MCP, Claude Code, OpenClaw, etc.).
セットアップガイド — 検出 MCP(B が必須だが見つからない場合、セッションごとに最大1回表示):
Discovery MCP (example id: gatepay-merchant-discovery)
- Add a remote MCP entry with your vendor URL, e.g. "url": "https://openplatform.gateapi.io/pay-mcp-server/mcp" (confirm exact URL and transport with your deployment).
- Merge into the same mcpServers object as the payment MCP; reload MCP.
- After reload, confirm the catalog tool appears (name may be discoveryResource or differ — use the live tool list).
ウォレット設定手順
ユーザーが Gate Pay MCP の支払いウォレットを設定、追加、または変更する場合は、このフローに従います。MCP ツールに渡す引数は、そのツールの inputSchema に基づきます。
0. 開始
0.A あいまいな意図 — 最初の返信のみ(ユーザー向け)
ユーザーが特定の決済手段を指定せず、ウォレットの設定または追加のみを求めている場合(例:「ウォレットの設定を手伝って」「ウォレットを設定して」)、このターンの返信は短く、平易な言葉にしてください。ユーザーと同じ言語を使ってください(上記のユーザー向け言語を参照)。
-
3つの選択肢を提示してください。それぞれ、平易な言葉でどのようなものか、どのような人に適しているか、おおよそ何をするかを説明し、各選択肢につき合計1〜2文にしてください。3つの違いを明確に示してください(ブラウザー/デバイスでのログイン、拡張機能/Open API 方式、端末上でのキー保管)。
- MCP Wallet(ローカライズ名:Quick Wallet、快捷钱包、gate钱包/Gate钱包):ブラウザーまたはデバイスフローで Gate にサインインする方式です(アプリへのログインのようなものです)。拡張機能をインストールしたくなく、ホスト型ログインを利用してもよいユーザーに適しています。選択後は、MCP ツールを使ってログインを完了し、続けて支払い注文を行います。
- Plugin wallet: Gate のブラウザー拡張機能と、ローカルのアプリ設定に保存する Open API 方式のトークンを使います。すでに Gate 拡張機能を使っていて、支払いをプラグインから承認したいユーザーに適しています。選択後は、プラグイン側でトークンを取得する方法を案内し、ローカル設定にのみ貼り付けるよう伝えてください。不特定のサイトには貼り付けないでください。
- Private key (local signing): ユーザーが自身の EVM 秘密鍵をローカル設定に入力し、MCP がこの端末上で署名します。鍵を完全に管理しており、秘密鍵の生データを扱うことを受け入れられる上級ユーザー向けです。選択後は、ローカル設定にのみ入力するよう伝え、チャットに鍵を入力することは絶対に避けてください。
-
最初のメッセージには、次の内容を含めないでください。
envのキー名(例:EVM_PRIVATE_KEY、PLUGIN_WALLET_*、PAYMENT_METHOD_PRIORITY)、MCP ツール名(例:x402_quick_wallet_auth、x402_place_order)、列挙値のトークン(quick_wallet、plugin_wallet)、mcp.json(またはその他のパス)の編集方法、手順を追った技術的な説明。ユーザーが選択するまで、これらの説明は保留してください(セクション 0.B → セクション 1〜3)。 -
口調: 長いチェックリストや、環境変数の確認、長々としたセキュリティの説明は避けてください。「選択後、次の手順を順を追ってご案内します。」など、短い一文を添える程度にしてください。
-
この MCP が該当する場合、Gate Exchange での支払いについて一文だけ添えてもかまいません。
-
1つ選ぶように(名前または番号で)尋ねて締めくくってください。ユーザーが最初のメッセージ内ですでに決済手段を指定している場合を除き、選択を待ってください。
0.B ユーザーが選択した後(またはすでに決済手段を指定している場合)
セクション 1〜3/セクション 5に進んでください。この段階では、それらのセクションに従い、環境変数キー、ツール名、PAYMENT_METHOD_PRIORITY、ファイル編集を扱ってもかまいません。MCP Walletの場合は、MCP サーバー接続検出を実行し、サーバー識別子を記録してください。
1. MCP Wallet(quick_wallet)
MCP Walletは1つの製品チャネルです。「Quick Wallet」などのローカライズ名も、同じ決済手段を指します。MCP の列挙値/環境変数トークンは**quick_walletのままです。inputSchemaに従い、PAYMENT_METHOD_PRIORITYおよびsign_mode**(または同等のフィールド)ではこの値を使用してください。
この決済手段ではユーザー API キーは不要です: MCP Wallet は**MCP_WALLET_API_KEYを使用せず、ユーザーに「quick wallet API key」の申請や貼り付けを求めることもありません。また、プラグインウォレットの Open API トークンとは別のものです。認証情報はツールを介したログイン**(デバイス/OAuth フロー)から取得されます。実装によってはセッションデータがローカルに保存される場合があります(例:~/.gate-pay/)。チャット上の推測ではなく、ツールの応答に従ってください。
順序:まずツールで認証し、成功した場合にのみPAYMENT_METHOD_PRIORITYを設定します。 実際に利用できるツールで MCP Wallet のログインが成功したことを確認するまでは(下記参照)、PAYMENT_METHOD_PRIORITYを書き込んだり、既存の設定に統合したりしないでください。
誤ったフロー(MCP Wallet): このレールの前提条件として、MCP_WALLET_API_KEY、MCP_WALLET_URL、汎用 API キー、または EVM_PRIVATE_KEY を設定するようユーザーに指示してはいけません。MCP Wallet と plugin_wallet のトークン設定を混同してはいけません。
呼び出すツール(実際の MCP ツール一覧を確認):
x402_quick_wallet_authが存在する場合 → 最初に使用します。inputSchemaのargumentsを使用します(例:任意のwallet_login_provider:gate|google)。x402_quick_wallet_authが存在せず、x402_requestが一覧にあり、そのinputSchemaが MCP Wallet ログインに対応している場合 →quick_wallet用のフィールド(例:sign_mode:quick_wallet、および必須のwallet_login_provider/URL パラメーター)を使って、x402_request経由でログインを開始します。それでもユーザー API キーは不要です。同じく認証を先に行うルールに従い、成功後にのみPAYMENT_METHOD_PRIORITYを更新します。(よくある npm のgatepay-local-mcp単一ツール構成では、HTTP と MCP Wallet ログインの両方にx402_requestのみが表示されることがあります。その場合も、一覧にある場合にのみ使用します。)- ユーザーが centralized_payment を選択し、
x402_gate_pay_authが一覧にある場合 → そのツールの説明とinputSchemaに従って Gate Pay OAuth を実行します(MCP Wallet ログインとは別です)。
定義 — 設定済み: MCP Wallet が完全に設定済みとなるのは、ログイン/デバイスフローが正常に完了した後(ツールの応答が success / ready)のみです。ログインに失敗した場合、または途中で中断された場合は、PAYMENT_METHOD_PRIORITY を更新してはいけません。
- 最初に — MCP ツール: 上記の呼び出すツールに従い、
x402_quick_wallet_authを呼び出すか、一覧にあり、スキーマに従ってquick_walletログインに使用される場合はx402_requestを、payment MCP(MCP Server Connection Detection §A を参照)上で呼び出します。ツールが success / ready を示すまで、ユーザーを MCP Wallet ログインに案内します。 - ログインに成功した場合(ツールの応答でセッションが確立された場合):その後、MCP の
envを編集します。quick_walletをPAYMENT_METHOD_PRIORITYに追加します(既存のリストがあれば、それに統合します)。- 変更前の
PAYMENT_METHOD_PRIORITYに他のレールがなかった場合は、Section 0.B でユーザーが示した意図に従い、quick_walletのみ、または先頭のエントリーとして設定できます。 - 変更前の
PAYMENT_METHOD_PRIORITYに他のレールが1つ以上あった場合は、quick_walletを新しいデフォルト(先頭に移動)にするかどうか、ユーザーにはっきり確認します。ユーザーが「はい」と答えた場合にのみ、先頭に移動します。「いいえ」の場合は、現在の先頭トークンを変更せずにquick_walletを末尾に追加します(確認なしに並べ替えてはいけません。Section 4 を参照)。
- 認証/ログインに失敗した場合(エラー、タイムアウト、ユーザーによるキャンセル、ready 以外):
PAYMENT_METHOD_PRIORITYを変更したり、quick_walletを追加したりしてはいけません。次の手順を説明します。ユーザーは再試行できます。 - 設定の書き込みに成功した後、必要に応じて MCP の再読み込み/ホストの再起動を促します。
- MCP Wallet ログイン後のツール出力の開示:
- 秘密鍵/シード/エクスポートされた署名用シークレット: チャットに値全体を貼り付けてはいけません。macOS、Windows、Linux で使えるよう、統合ターミナル(stdout)に出力します。JSON セーフな行、またはプレーンテキストの行を出力するため、
node -e/node -pまたはpython -cを優先します。どちらのランタイムもPATHにない場合は、プロジェクト内の(一時的な)Git で無視されるパスにファイルを書き込み、パスまたは内容をターミナルに出力するコマンドを実行します。その後、チャットでユーザーの言語を使って、ターミナルパネルを開き、そこからコピーするよう伝えます。それでもシークレットをチャットに記載してはいけません。 - 公開されている入金先/ウォレットアドレス(秘密情報ではない識別子):チャットに全文または要約を、ユーザーの言語で表示してもかまいません。ユーザーに必要な簡単な説明も添えられます。
- その他の大きな応答、または秘密情報が混在する応答: チャットに出す際は、シークレットを削除またはマスキングします。秘密情報を含む内容全体は、上記のとおりターミナル/一時ファイルにのみ出力します。アドレスはチャットで表示してかまいません。
- 秘密鍵/シード/エクスポートされた署名用シークレット: チャットに値全体を貼り付けてはいけません。macOS、Windows、Linux で使えるよう、統合ターミナル(stdout)に出力します。JSON セーフな行、またはプレーンテキストの行を出力するため、
- Safety Rules を適用します。
2. プラグインウォレット(plugin_wallet)
PLUGIN_WALLET_TOKEN: GatePay merchant discovery & agent orchestrationのWallet and railsにある**plugin_walletと同じルールに従います(トークンはenvのみに設定し、チャットにトークン全体を記載しないでください)。PLUGIN_WALLET_SERVER_URL:** 製品ごとのデフォルト値が任意で用意されています。ツール呼び出しで**inputSchema**がURLを必須としている場合は、スキーマまたはベンダーのドキュメントに従って設定してください。PAYMENT_METHOD_PRIORITY:plugin_walletを追加します。これが2つ目以降の決済手段の場合、plugin_walletをデフォルト(リストの先頭)にするかどうかを確認してください。ユーザーがはいと明示的に確認した場合に限り、先頭に移動してください。それ以外の場合は、現在のデフォルトを変更せずに末尾へ追加してください。- この決済手段では**
x402_quick_wallet_auth**を使用しないでください。 - **
env**の変更後は、MCPを再読み込みするよう伝えてください。
3. 秘密鍵/ローカル署名(local_private_key)
- ローカル署名用に、
envにEVM_PRIVATE_KEYがあることを確認してください。共有リポジトリではプレースホルダーを使用し、実際の値はユーザーがローカルのMCP設定にのみ入力します。秘密鍵をチャットで決して聞き出したり、繰り返し記載したりしないでください。 - MCPパッケージのドキュメントで必要とされている**
RPC_URL**(または同等の)変数を追加してください。 PAYMENT_METHOD_PRIORITY:local_private_keyを追加します。これが2つ目以降の決済手段の場合、local_private_keyをデフォルトにするかどうかを確認してください。ユーザーがはいと明示的に確認した場合に限り、先頭に移動してください。- ユーザーがMCP Wallet(
quick_wallet)も使用している場合を除き、この決済手段では**x402_quick_wallet_auth**を使用しないでください。 - **
env**の変更後は、MCPを再読み込みするよう伝えてください。
4. 2つ目の決済手段の追加、またはデフォルトの変更
- ユーザーが2つ目以降の決済手段をバインドする場合、明示的な選択がない限り、
PAYMENT_METHOD_PRIORITYの先頭のトークン(現在のデフォルト)を決して変更しないでください。 - ユーザーの言語で、明確な「はい/いいえ」または選択式の質問を必ずしてください。例:「<rail>をデフォルトの支払い方法にしますか?」ユーザーがはいと答えた場合に限り、その決済手段のトークンを先頭に移動してください。「いいえ」と答えた場合は、適宜、新しい決済手段を末尾に追加するか、既存の順序を維持し、デフォルトには変更しないでください。
- MCP Wallet(
quick_wallet): 認証(Section 1)は、**quick_walletを追加するPAYMENT_METHOD_PRIORITYの変更よりも先に行ってください。ログインが成功した後、ほかの決済手段がすでにある場合は、ユーザーの確認を得てからquick_wallet**をデフォルトにするという同じルールに従ってください。 - すでにリストにある決済手段間で順序を変更する(ユーザーがデフォルトのみを切り替えたい)場合も、先頭のトークンを変更する前に、必ず明示的な確認を得てください。
5. Gate Exchange(gate_exchange)
ユーザーが取引所のみでの支払いを設定する場合は、Gate Exchange MCPが個別に登録されていることを確認してください。意図する決済手段が**gate_exchangeの場合は、PAYMENT_METHOD_PRIORITYに含めてください。支払いツールはExchange MCPにのみあります。そこで各ツールのinputSchema**を確認してください。
認証状態
支払いと署名には、ユーザーが実際に設定したウォレットレールを使用します。Gate Pay MCP の env は、ホストの MCP 設定から読み取ります(パスと形式は Cursor、VS Code、Claude Code などによって異なり、ここではハードコードしません)。
PAYMENT_METHOD_PRIORITY:envに設定されている場合は、カンマ区切りです。最初のトークンがデフォルトです。トークン:quick_wallet、plugin_wallet、local_private_key、gate_exchange。未設定の場合は、空でない環境変数キー/MCP セッションからのみ利用可能なレールを判断するか、ユーザーに確認します。local_private_key:ユーザーがこのレールを選択した場合に限ります。EVM_PRIVATE_KEY(および MCP のドキュメントに記載された RPC 変数)がenvに設定されている必要があります。秘密鍵をチャットで尋ねてはいけません。空の場合、このレールは利用できません。quick_wallet(MCP Wallet): セットアップ=ツール認証によるログイン成功(セクション 1:x402_quick_wallet_authがある場合はそれを使用し、ない場合は、一覧にありスキーマが MCP Wallet ログインに対応している場合にx402_requestを使用します)。ユーザーにMCP_WALLET_API_KEYを求めてはいけません。PAYMENT_METHOD_PRIORITYを書き換える前に認証します。認証に失敗した場合、そのenvを変更してはいけません。支払い: ワークフローのステップ 5 を参照してください。有効期限が切れた場合は、一度認証してから署名を一度だけ再試行します。plugin_wallet:PLUGIN_WALLET_TOKENをenvに設定します。PLUGIN_WALLET_SERVER_URLは、デフォルトではユーザーに必須ではありません(ウォレットとレールを参照)。inputSchemaで URL 引数が必須の場合は、スキーマに従ってください。トークンがない場合、このレールは利用できません。gate_exchange:Gate Exchange MCP は別途設定します。この MCP が存在し、ユーザーがこのレールを選択した場合に限り、そこへ処理を振り分けます。
2 つ目以降の支払いレールを追加する場合、デフォルトを新たに紐付けたレールに切り替えるかどうか、ユーザーに確認します。ユーザーがデフォルトの変更に明示的に同意するまで、PAYMENT_METHOD_PRIORITY の順序を変更してはいけません。
Gate Pay x402 モジュール(MCP ツール)
arguments の構築方法(必須)
このフローで MCP ツールを呼び出すたびに、次の手順に従います。
- 正しいサーバー上で、正確な名前を使ってツールを特定します。検出ツールは検出サーバー ID(ある場合)上で、すべての
x402_*は支払いサーバー ID(MCP サーバー接続の検出を参照)上で特定します。 - そのツールの
inputSchemaを確認します:properties、required、enum、description。 argumentsは、そのスキーマと許可された実行時の値(ユーザーメッセージ、コンテキスト、以前のツール出力)のみから構築します。
このスキルのパラメーター表をコピーしてはいけません。正しい情報源は MCP の inputSchema です。このファイルと inputSchema が矛盾する場合は、inputSchema に従ってください。MCP に接続されておらずスキーマを利用できない場合は、まず MCP のセットアップを完了するか、ベンダーのドキュメントを参照してください。
ツール(MCP で確認する名前)
加盟店の検索: いずれかのサーバーに掲載されている場合は、discoveryResource(またはそのサーバー上の正確な名前)とその**inputSchema**を使用します。決済サーバーではなく、検索サーバーで呼び出してください。ただし、両方のツールが同じサーバーに掲載されている場合は除きます。どこにも掲載されていない場合は、検索の呼び出しをスキップしてください。
| ツール | 分類 | 副作用のレベル | 目的 | パラメーター |
|---|---|---|---|---|
discoveryResource | 読み取り(一覧取得) | なし(支払いなし) | GatePay カタログの検索 — 呼び出し可能なリソースとメタデータのみ(支払い/注文なし) | resourceDes、resourceType(http|mcp)、任意の pageNum、pageSize、tenantId — 最新の inputSchema を参照 |
x402_place_order | 読み取り/HTTP | 加盟店との I/O のみ。後続のツールを使うまで署名なし | 加盟店への HTTP リクエストを送信し、ステータス、ヘッダー、本文を読み取る | x402_place_order の MCP inputSchema を参照 |
x402_request | 混合 | HTTP/ログインに使用する場合は低。スキーマに基づいて署名と支払いを組み合わせる場合は高 — 支払いの前に、引き続き同意が必要です | 掲載されている場合のみ — ビルドによっては、HTTP + 402 + 任意の署名、および/または quick_wallet / sign_mode による MCP Wallet ログインに使用します | x402_request の MCP inputSchema を参照 |
x402_quick_wallet_auth | 書き込み(セッション) | ウォレットセッションを確立します | MCP Wallet のデバイス/OAuth 認証(quick_wallet レール) | x402_quick_wallet_auth の MCP inputSchema を参照 |
x402_gate_pay_auth | 書き込み(セッション) | 集中型決済の OAuth セッション | ユーザーが centralized_payment を使用する場合の Gate Pay OAuth(送信にはツールのドキュメントに記載された Bearer トークンを使用) | x402_gate_pay_auth の MCP inputSchema を参照 |
x402_sign_payment | 書き込み(支払い) | 高 — 支払いに署名し、送信します | 402 を解析し、署名して、支払いを送信します(すべてを一括で実行) | x402_sign_payment の MCP inputSchema を参照 |
x402_create_signature | 書き込み(署名) | 高 — 署名用データを生成します | 署名済みペイロード/エンコード済み署名のみを作成します | x402_create_signature の MCP inputSchema を参照 |
x402_submit_payment | 書き込み(支払い) | 高 — 支払いを送信します | 署名を使って支払いを送信します(分割方式) | x402_submit_payment の MCP inputSchema を参照 |
x402_centralized_payment | 書き込み(支払い) | 高 — サーバーが公開している場合の集中型決済 | MCP によるアカウントセンター/集中型決済の経路(掲載されている場合) | x402_centralized_payment の MCP inputSchema を参照 |
加盟店の url/method/body は、ユーザーメッセージ、会話のコンテキスト、または上流の検索結果(リソース/outputSchema/MCP 検索応答 — 対応付けは inputSchema に従う)から取得します。フィールド名はスキーマで必要とされる名前に対応付けてください(接続先サーバーに掲載されている場合のみ、x402_place_order および/または x402_request を使用)。
実行ワークフロー
ユーザーの意図を パラメーター抽出 → MCP 接続プローブ(ステップ 0)→ 事前確認(必須の inputSchema フィールド、環境のレール)→ ツール呼び出し → ユーザー向けの概要 に対応付けます。
- ユーザーとコンテキストから、加盟店の URL/メソッド/本文、または検索条件を抽出します。「
discoveryResourceが必須となる場合」に該当する場合は、決済 MCP でx402_place_order/x402_requestを呼び出す前に、検索 MCP で検索ツールを呼び出し、選択したカタログ項目からステップ 4 のフィールドを導き出してください。 - MCP Server Connection Detection と Authentication State に従って事前確認を行います。ユーザーがレールを設定している場合は、Wallet configuration procedure を完了してください。
- Workflow の順序でツールを呼び出します。呼び出しの前に毎回、そのツールの
inputSchemaからargumentsを組み立て直してください。 - Report Template に従って出力します。失敗した場合は Error handling を使用してください。
ワークフロー
x402 Payment Flow
Step 0: MCP detection (once per session) — payment MCP (§A) + discovery MCP (§B) when catalog is required — see **MCP Server Connection Detection**
|
Step 1: Payment intent checks — PAYMENT_METHOD_PRIORITY + env + user balance acknowledgment (user-confirmed)
|
Step 2: Choose rail
|- gate_exchange -> Gate Exchange MCP tools only (read each tool's inputSchema there)
+- Gate Pay x402 -> Continue
|
Step 3: Before each **`x402_*`** tool call on the **payment MCP** -> read that tool's inputSchema and build arguments
|
Step 4: Merchant HTTP + 402 on **payment MCP**: `x402_place_order` **or** (if listed) `x402_request` — per live tool list and schema
|- Non-402 -> handle per merchant rules
+- 402 -> extract payment challenge from response per MCP/tool docs (e.g. headers); keep url/method/body for retry
|
Step 5: If MCP Wallet (`quick_wallet`) -> before sign: `x402_quick_wallet_auth` **if listed**, else (if listed) satisfy login via `x402_request` per schema (e.g. `sign_mode`); on expiry -> same auth once then retry sign once (per product limits)
|
Step 6: x402_sign_payment (default) OR x402_create_signature -> x402_submit_payment (split); **or** if `x402_request` is listed: further `x402_request` calls per schema for sign/pay
For each step: arguments strictly from that tool's inputSchema; wire outputs only as schema/response shapes allow
|
Step 7: Summarize success to the user in their language; **addresses** may be in chat; **private keys** only via terminal/temp-file flow per **Safety Rules** and **Wallet configuration procedure** Section 1 step 5
ディスカバリーと支払いの確認: カタログ: discoveryResource が必須となる場合に該当する場合は、まずディスカバリーサーバー上のカタログツールを呼び出します → リソースを選択 → 決済 MCP上でステップ 3~4 から続行します。ユーザーがスキーマに従って十分な加盟店 HTTP フィールドをすでに指定している場合は、カタログをスキップします。ディスカバリーツールを掲載しているサーバーがない場合は、ユーザーがセットアップガイド — discovery MCPに従って discovery MCP を追加する必要がある場合を除き、カタログをスキップします(ユーザーが指定した URL/コンテキストのみを使用します)。支払いの同意: ユーザーが明確な価格(見積もりまたは402の概要)を確認した後に、ステップ 5~6 の前に、明示的な支払いの同意を得ます(2 回尋ねるのを避ける必要があれば、ステップ 1 とまとめます)。完全なルールについては、GatePay merchant discovery & agent orchestrationを参照してください。
同一サーバーのルール: 1 つの加盟店注文/402 チャレンジに関するすべての**x402_***ステップでは、同じ決済 MCP サーバー ID を使用します。ディスカバリーには別のサーバー ID を使用できます。
判断ロジックの概要
- ルーティングルールを使用して、このファイル内の該当するサブセクション(ウォレットのセットアップ、ディスカバリー、x402 支払い、Exchange、MCP 接続)を選びます。
- 必須の場合はディスカバリーを先に行う: ディスカバリーカタログツールが(いずれかのサーバーに)掲載されており、ユーザーが購入/注文を行う際に、
inputSchemaに十分な加盟店 HTTP パラメーターが指定されていない場合は、決済サーバー上のx402_place_order/x402_requestを呼び出す前に、そのツールをそのサーバー上で呼び出します。discoveryResourceが必須となる場合を参照してください。 - スキーマを最優先: MCP の
argumentsオブジェクトはすべて、対象ツールの**inputSchemaに一致する必要があります。競合する場合は、inputSchema**を優先します。 - 書き込み前に同意を得る: 明確な価格とユーザーの明示的な確認を得るまでは、署名、送信、または集中型の決済ツールを使用しません。確認は、ワークフロー内のすべての書き込みステップを対象とします(一般ルールと安全ルールを参照)。
- 同一サーバー(支払い): 1 つの 402 チャレンジには、関連するすべての**
x402_*呼び出しで 1 つの決済** MCP サーバー ID を使用します(ディスカバリーは別のサーバーでもかまいません)。 - 決済手段: 明示的なユーザーの選択がある場合に限り、セクション 4に従ってデフォルトの**
PAYMENT_METHOD_PRIORITY**を変更または追加します。
レポートテンプレート
ウォレットのセットアップまたは支払いの後、ユーザーの言語で次の内容を返します。
- 結果: 成功、失敗、キャンセル、またはブロック(理由を記載)。
- 金額/資産/チェーン: MCP または加盟店から返された場合に記載します。値を決して捏造しないでください。
- 参照情報: ツール出力に存在する場合に限り、ID やハッシュなどを記載します。
- 次のステップ: 注文や支払いの状態を捏造せずに、再試行、決済手段の変更、MCP の再読み込み、または終了を案内します。
シナリオ
QA 向けのコンテキスト/プロンプト例/期待される動作のテンプレートは、**references/scenarios.md**にあります。
エラー処理
| 状況 | 推奨される対応 |
|---|---|
| MCP のタイムアウト/トランスポートエラー | 1 回再試行します。解消しない場合は、MCP ホストの再起動またはネットワークの確認を提案し、MCP サーバー接続の検出を再実行します。 |
認証の期限切れ/quick_wallet の準備が未完了 | スキーマに従い、ログイン用として掲載されている場合は**x402_quick_wallet_authまたはx402_requestを実行し、その後、エスカレーションする前に署名を1 回**再試行します。 |
| 価格を確認した後にユーザーが支払いを拒否 | 停止します。署名/支払いツールを呼び出さず、別の加盟店を提案するか、終了します。 |
| 402/残高不足 | MCP のエラーテキストを提示します。別の設定済み決済手段が利用可能で、かつユーザーが同意した場合に限り、別の決済手段を提案します(ウォレットと決済手段を参照)。 |
| 402 チャレンジがない、または解析できない | 支払いパラメーターを捏造しません。スキーマに従い、サーバーに掲載されている HTTP ツール(x402_place_orderおよび/またはx402_request)を再実行するか、加盟店のコンテキストをユーザーに尋ねます。支払いが成功したと偽ってはいけません。 |
ツールがない/inputSchema がない | セットアップガイドに従ってインストールを完了します。パラメーターを推測してはいけません。 |
discoveryResource のエラーまたは items が空 | 検索テキストの範囲を広げ、resourceType(http と mcp)を確認します。それでも空の場合は、ユーザーが指定した加盟店 URL に切り替えるか、終了します。カタログ項目を捏造してはいけません。 |
データの取り扱いと利用資格
- データフロー: 決済トラフィックとウォレットの
envは、決済 MCP(gatepay-local-mcp)に送られます。ディスカバリークエリは、カタログツールを提供しているサーバー(リモート URL MCP の場合もあります)に送られます。シークレット(EVM_PRIVATE_KEY、PLUGIN_WALLET_TOKENの全値、ツール出力に含まれる秘密鍵)は、決済 MCP の env または統合ターミナルのフロー内に保管し、チャットには含めないでください(安全ルール)。 - 年齢: 決済およびアカウントに紐づくフローは、ユーザーが 18 歳以上であり、適用される Gate のユーザー契約を遵守することを前提としています。これらの要件を満たせない場合は、決済の設定を進めないでください。
サブモジュール
このスキルでは、手順のロジックに単一ファイルのルーティングを使用します。ウォレットの設定、ディスカバリー、ワークフロー、Exchange の手順はすべてこの SKILL.md に記載されています。該当セクションに移動するには、ルーティングルールを使用してください。references/scenarios.md には QA 向けのシナリオ(プロンプトの形式と期待される動作)が記載されていますが、ランタイムのルーティングサブモジュールではありません。人間向けのドキュメント:README.md、CHANGELOG.md。
Gate Exchange の手順
gate_exchange が選択され、Gate Exchange MCP が利用可能な場合は、注文と支払いに Exchange MCP ツールのみを使用してください。各呼び出しの前に、Exchange サーバー上でそのツールの inputSchema を読み取ってください。サードパーティの x402 MCP を使用して、同じ Gate Pay の x402_place_order 注文を完了させないでください。
後続処理のルーティング
| フロー後のユーザーの意図 | 対象 |
|---|---|
| デフォルトの決済方法を変更する/2 つ目のウォレットを追加する | このファイル — ウォレット設定手順セクション 4 |
MCP Wallet(quick_wallet)の有効期限切れ後に再試行する | このファイル — ワークフローステップ 5–6 |
| マーチャントのパラメーターが不足している | ユーザーまたは上流レイヤーに確認し、その後、スキーマに従ってサーバーが提供する HTTP ツール(x402_place_order および/または x402_request)を使用してステップ 4に進む |
| ディスカバリーの結果が空/選択できない | GatePay マーチャントディスカバリーとエージェントオーケストレーション — resourceDes/フィルターを緩和するか、停止します。記載されている場合は、より広い語句を使ってディスカバリー MCP上のカタログツールを再試行します |
| 価格を確認した後、ユーザーが支払いを断る | 決済ツールの使用を停止し、別のマーチャントを提示するか、終了します |
| プラグインの決済レールが失敗し、設定済みの別の決済レールがない | GatePay マーチャントディスカバリーとエージェントオーケストレーション — 設定されていない quick_wallet を自動的に開始しないでください |
スキル間の連携
他のスキルや上流レイヤーから、マーチャントの url/method/body またはディスカバリーのコンテキストが提供される場合があります。このスキルは、各ツール呼び出しで inputSchema を使用しながら、ディスカバリー(利用可能な場合はディスカバリー MCP)→ 選択 → 任意の見積もり → 支払い確認 → x402_*(決済 MCP上、および任意で Gate Exchange MCP)をオーケストレーションします。MCP の範囲外にあるマーチャントカタログ全体を置き換えるものではありません。
サポート対象のネットワークと資産
ネットワーク、トークン、金額は、ここでは列挙せず、マーチャントの 402/支払い要求ペイロードと MCP の動作によって定義されます。ツールの応答とマーチャントのルールに従ってください。
安全ルール
- スキーマを優先した呼び出し: MCP を呼び出す前に、必ず
argumentsを対象ツールのinputSchemaに合わせてください。Skill とinputSchemaが異なる場合は、inputSchemaを優先します(上部の Gate Pay x402 layer の注記および How to buildargumentsと同様です)。 - 機密ペイロード — MCP Wallet(
quick_wallet): ツールから返された 秘密鍵、シード、エクスポートされた署名シークレット は、統合ターミナル(または Git の追跡対象外の一時ファイルとターミナルへのポインター)のみに渡し、エージェントのチャットには絶対に渡さないでください。Wallet configuration procedure の Section 1 step 5 を参照してください。node/pythonまたはファイルへのフォールバックを使って、Windows、macOS、Linux で動作します。公開用の入金アドレス/ウォレットアドレスはチャットに表示してもかまいません。大量の生の JSON をチャットに出力しないでください。チャットではシークレットを伏せてください。 - 秘密鍵 — rails とユーザーによる貼り付け:
local_private_key: ユーザーはローカル MCP のenvにのみEVM_PRIVATE_KEYを設定します。その鍵をチャットで収集したり、繰り返し表示したりしないでください(Section 3)。MCP Wallet: ツールから返されたシークレットはターミナルのみに渡します(Section 1 step 5)。ユーザーがチャットに秘密鍵を貼り付けた場合: それを引用したり、チャットから保存したり、チャットから署名したりしないでください。鍵は**env** にのみ設定し、今後チャットに鍵を送らないよう伝えてください。署名には、MCP が読み取る env の値を使用します。 - 公開 API トークン:
envに保存し、チャットでは全体を公開せずにマスクするか確認してください。 - 1 件の Gate
x402_place_order注文では、同じサーバーを使用し、異なるベンダーを混在させないでください。Workflow を参照してください。 - セッションとチャット: MCP Wallet のログイン状態をチャットの記憶に頼らないでください。スキーマに従って、MCP Wallet のログインには
x402_quick_wallet_auth、および/または(一覧に記載されている場合は)x402_requestを使用してください。ユーザーが centralized_payment を使用しており、一覧に記載されている場合はx402_gate_pay_authを使用してください(Wallet configuration procedure の Section 1 を参照)。ドキュメントに記載されている MCP のレスポンスを基準にしてください。