pay-mcp について
pay-mcp は、Base 上で USDC 決済を行う AI エージェント向けの MCP サーバーです。直接決済、従量制タブ、x402 リクエスト、サービス検索、ウォレット管理を備え、鍵は OS の資格情報ストアに保存します。
主な機能
- 01USDC の直接送金
- 02x402 対応リクエスト
- 03事前入金タブの管理
- 04残高確認と入出金
- 05有料 API サービスの検索
- 06決済イベント Webhook の管理
活用シーン
- 01サービス提供者への直接決済
- 02x402 で保護された API の利用
- 03従量制サービスでのタブ決済
- 04有料 API の検索と資金管理
MCP 対応
MCP クライアントに決済、タブ、ウォレット、検索、Webhook のツールを公開し、ウォレットやネットワークのリソースとガイド用プロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @pay-skill/mcpPAYSKILL_SIGNER_KEYシークレットPrivate key hex for importing an existing wallet (optional — generates new wallet if not set)PAY_NETWORKNetwork to use: mainnet or testnet (default: mainnet)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@pay-skill/mcp
Pay の MCP サーバーです。AI エージェント向けの完全な x402 決済スタックを提供します。Base 上の USDC に対応しています。
あらゆる MCP 互換クライアント(Claude Desktop、Cursor、VS Code、カスタムフレームワーク)で Pay の機能をすべて利用できます。直接決済、タブ、x402 ペイウォール、サービスの検索、ウォレット管理に対応しています。CLI バイナリは不要です。
セットアップ
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"pay": {
"command": "npx",
"args": ["-y", "@pay-skill/mcp"]
}
}
}
VS Code / Cursor
.vscode/mcp.json に追加します。
{
"servers": {
"pay": {
"command": "npx",
"args": ["-y", "@pay-skill/mcp"]
}
}
}
Claude Code
claude mcp add pay -- npx -y @pay-skill/mcp
これで完了です。初回起動時にサーバーがウォレットを生成し、OS のキーチェーン(Windows Hello、macOS Keychain、Linux Secret Service)に保存します。次回以降の起動時には、自動的に読み込まれます。
設定
| 環境変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
PAYSKILL_SIGNER_KEY | いいえ | — | オプションの上書き設定です。生の hex キーまたは .enc キーストアのパスワードを指定します。通常の使用では不要です。 |
PAY_NETWORK | いいえ | mainnet | mainnet(Base)または testnet(Base Sepolia) |
キーの解決順序(上から順に確認)
- OS キーチェーン(デフォルト) —
keytarを使用して OS の認証情報ストアから読み込みます。初回起動時には新しいキーペアが生成され、自動的に保存されます。 - 暗号化されたキーストア —
~/.pay/keys/default.encが存在する場合、PAYSKILL_SIGNER_KEYを復号パスワードとして使用します。 - 生の hex キー —
PAYSKILL_SIGNER_KEYが 64 文字の hex 文字列の場合、そのまま使用します。開発・テスト時や既存のウォレットをインポートする場合に使用します。 - 自動生成 — 上記のいずれにも該当しない場合、新しいキーペアを生成して OS のキーチェーンに保存します。
診断チェック
設定がすべて正しいことを確認します。
npx @pay-skill/mcp --check
出力:
pay-mcp diagnostic check
network: Base (chain 8453)
api: https://pay-skill.com/api/v1
wallet: 0x1234...
key: keychain
server: OK (router: 0xABCD...)
auth: OK (balance: $50.00)
All checks passed. MCP server is ready.
ツール(15)
決済
| ツール | 説明 |
|---|---|
pay_send | USDC の直接決済(最低 $1)。確認のしきい値:$10 未満は自動、$10~100 は計画、$100 超は明示的な確認が必要です。 |
pay_request | x402 による自動決済付き HTTP リクエストです。402 の検出、直接/タブ決済、価格への懐疑的な判断に対応しています。 |
タブ(従量課金アカウント)
| ツール | 説明 |
|---|---|
pay_tab_open | 事前入金済みのタブを開きます(最低 $5、推奨 $50)。プロバイダーは呼び出しごとに請求します。 |
pay_tab_close | タブを閉じます。配分の内訳(プロバイダー 99%、手数料 1%、残りはエージェント)を返します。 |
pay_tab_charge | 開いているタブに対して請求します(プロバイダーのみ)。 |
pay_tab_topup | 開いているタブに資金を追加します(エージェントのみ)。 |
pay_tab_list | アイドル状態/残高不足のフラグ付きでタブを一覧表示します。 |
ウォレット
| ツール | 説明 |
|---|---|
pay_status | 残高、ロック中/利用可能な資金、実行可能な提案を表示します。 |
pay_fund | 1 時間有効な入金リンクを生成します(Coinbase Onramp または USDC の直接入金)。 |
pay_withdraw | 1 時間有効な出金リンクを生成します。 |
pay_mint | テストネットの USDC を発行します(Base Sepolia のみ)。 |
検索と Webhook
| ツール | 説明 |
|---|---|
pay_discover | キーワード/カテゴリで有料 API サービスを検索します。 |
pay_webhook_register | 決済イベント用の Webhook を登録します(HMAC 署名付き)。 |
pay_webhook_list | 登録済みの Webhook を一覧表示します。 |
pay_webhook_delete | Webhook を削除します。 |
リソース(5)
| URI | 説明 |
|---|---|
pay://wallet/status | 残高、タブ、ロック中/利用可能な資金 |
pay://wallet/tabs | 開いているすべてのタブ |
pay://tab/{tab_id} | 単一タブの詳細 |
pay://wallet/address | ウォレットアドレス |
pay://network | ネットワーク設定とコントラクトアドレス |
プロンプト(3)
| プロンプト | 説明 |
|---|---|
pay-for-service | ガイド付き:サービスを検索し、料金を評価して、リクエストを送信します |
review-tabs | タブを確認し、アイドル状態のものにフラグを付け、閉じる/入金を提案します |
fund-wallet | 入金リンクを生成し、入金手順を説明します |
開発
git clone https://github.com/pay-skill/pay-mcp.git
cd pay-mcp
npm install
npm run build
npm test # unit tests (mocked)
npm run test:acceptance # testnet (requires PAYSKILL_TESTNET_KEY)
ライセンス
MIT
Part of Pay
Pay は、AI エージェントが Base 上で USDC を使って API の支払いを行えるようにする、ゲートウェイ、ファシリテーター、SDK、CLI、MCP サーバーを備えた x402 の完全な決済スタックです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。