Plugs USDC payments on Base directly into Claude Desktop, Cursor, or any MCP client. Handles direct transfers, metered tabs for per-call billing, and automatic x402 paywall detection with HTTP requests. The server auto-generates a wallet on first run and stores it in your OS keychain, so there's no manual key management. You get 15 tools covering send/request operations, tab lifecycle (open, charge, close, topup), wallet funding and withdrawal, service discovery, and webhook registration for payment events. Useful if you're building agents that need to pay for third-party APIs or accept payments themselves. Works on Base mainnet or Sepolia testnet with a one-line config change.
MCP server for Pay -- the complete x402 payment stack for AI agents. USDC on Base.
Gives any MCP-compatible client (Claude Desktop, Cursor, VS Code, custom frameworks) the full power of Pay: direct payments, tabs, x402 paywalls, service discovery, and wallet management. No CLI binary needed.
Add to claude_desktop_config.json:
{
"mcpServers": {
"pay": {
"command": "npx",
"args": ["-y", "@pay-skill/mcp"]
}
}
}
Add to .vscode/mcp.json:
{
"servers": {
"pay": {
"command": "npx",
"args": ["-y", "@pay-skill/mcp"]
}
}
}
claude mcp add pay -- npx -y @pay-skill/mcp
That's it. On first run, the server generates a wallet and stores it in the OS keychain (Windows Hello, macOS Keychain, Linux Secret Service). Subsequent runs load it automatically.
| Env Var | Required | Default | Description |
|---|---|---|---|
PAYSKILL_SIGNER_KEY | No | — | Optional override. Raw hex key or .enc keystore password. Not needed for normal use. |
PAY_NETWORK | No | mainnet | mainnet (Base) or testnet (Base Sepolia) |
keytar. On first run, a new keypair is generated and stored automatically.~/.pay/keys/default.enc exists, PAYSKILL_SIGNER_KEY is used as the decryption password.PAYSKILL_SIGNER_KEY is a 64-char hex string, it's used directly. For dev/testing or importing an existing wallet.Verify everything is configured correctly:
npx @pay-skill/mcp --check
Output:
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.
| Tool | Description |
|---|---|
pay_send | Direct USDC payment ($1 min). Confirmation thresholds: <$10 auto, $10-100 plan, >$100 explicit. |
pay_request | HTTP request with x402 auto-payment. Handles 402 detection, direct/tab settlement, price skepticism. |
| Tool | Description |
|---|---|
pay_tab_open | Open pre-funded tab ($5 min, $50 recommended). Provider charges per-call. |
pay_tab_close | Close tab. Returns distribution breakdown (provider 99%, fee 1%, agent remainder). |
pay_tab_charge | Charge against open tab (provider only). |
pay_tab_topup | Add funds to open tab (agent only). |
pay_tab_list | List tabs with idle/low-balance flags. |
| Tool | Description |
|---|---|
pay_status | Balance, locked/available funds, actionable suggestions. |
pay_fund | Generate 1-hour funding link (Coinbase Onramp or direct USDC). |
pay_withdraw | Generate 1-hour withdrawal link. |
pay_mint | Mint testnet USDC (Base Sepolia only). |
| Tool | Description |
|---|---|
pay_discover | Search paid API services by keyword/category. |
pay_webhook_register | Register webhook for payment events (HMAC-signed). |
pay_webhook_list | List registered webhooks. |
pay_webhook_delete | Delete a webhook. |
| URI | Description |
|---|---|
pay://wallet/status | Balance, tabs, locked/available |
pay://wallet/tabs | All open tabs |
pay://tab/{tab_id} | Single tab detail |
pay://wallet/address | Wallet address |
pay://network | Network config + contract addresses |
| Prompt | Description |
|---|---|
pay-for-service | Guided: discover service, evaluate pricing, make request |
review-tabs | Review tabs, flag idle, suggest close/topup |
fund-wallet | Generate fund link, explain deposit process |
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
Pay is the complete x402 payment stack -- gateway, facilitator, SDKs, CLI, and MCP server -- that lets AI agents pay for APIs with USDC on Base.
PAYSKILL_SIGNER_KEYsecretPrivate key hex for importing an existing wallet (optional — generates new wallet if not set)
PAY_NETWORKNetwork to use: mainnet or testnet (default: mainnet)