pay-mcp
USDC payments for AI agents on Base. Direct transfers, pre-funded tabs, x402 paywall handling, and service discovery.
README
@pay-skill/mcp
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.
Setup
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"pay": {
"command": "npx",
"args": ["-y", "@pay-skill/mcp"]
}
}
}
VS Code / Cursor
Add to .vscode/mcp.json:
{
"servers": {
"pay": {
"command": "npx",
"args": ["-y", "@pay-skill/mcp"]
}
}
}
Claude Code
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.
Configuration
| 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) |
Key Resolution (checked in order)
- OS keychain (default) — Loads from the OS credential store via
keytar. On first run, a new keypair is generated and stored automatically. - Encrypted keystore — If
~/.pay/keys/default.encexists,PAYSKILL_SIGNER_KEYis used as the decryption password. - Raw hex key — If
PAYSKILL_SIGNER_KEYis a 64-char hex string, it's used directly. For dev/testing or importing an existing wallet. - Auto-generate — If none of the above, generates a new keypair and stores it in the OS keychain.
Diagnostic Check
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.
Tools (15)
Payments
| 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. |
Tabs (metered accounts)
| 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. |
Wallet
| 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). |
Discovery & Webhooks
| 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. |
Resources (5)
| 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 |
Prompts (3)
| 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 |
Development
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_SIGNER_KEY)
License
MIT
Part of Pay
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.
- Documentation
- Architecture
- SDK -- Python + TypeScript
- CLI -- Command-line tool
- pay-gate -- x402 payment gateway
- Protocol -- Smart contracts
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.