Pay MCP
MCP server for USDC payments on Base - Enable any Claude Code agent to send and receive payments
Installation
npx pay-mcpAsk AI about Pay MCP
Powered by Claude Β· Grounded in docs
I know everything about Pay MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Pay-MCP πΈ
MCP server for USDC payments on Base β Enable any Claude Code agent to send and receive payments.
π― Overview
Pay-MCP is a Model Context Protocol (MCP) server that wraps USDC payment capabilities on the Base blockchain. It allows AI agents (like Claude Code) to:
- π° Check USDC balances β Query any wallet's USDC balance
- π€ Send USDC payments β Transfer USDC to any address
- π₯ Generate payment requests β Create payment links with deep linking support
- π View transaction history β List recent sent/received transfers
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Your Computer β
β βββββββββββββββββββ stdio ββββββββββββββββββββββββ β
β β Claude Code βββββββββββββββββΊβ Pay-MCP β β
β β (MCP Client) β JSON-RPC β (MCP Server) β β
β βββββββββββββββββββ β β β
β β ββββββββββββββββββ β β
β β β PayWallet β β β
β β β ββ viem β β β
β β β ββ ERC-20 ABI β β β
β β ββββββββββββββββββ β β
β ββββββββββββ¬ββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββ
β HTTPS/RPC
βΌ
ββββββββββββββββββββββββ
β Base Blockchain β
β ββββββββββββββββββ β
β β USDC Contract β β
β β (Circle) β β
β ββββββββββββββββββ β
ββββββββββββββββββββββββ
π Quick Start
Installation
# Clone the repository
git clone https://github.com/koriyoshi2041/pay-mcp.git
cd pay-mcp
# Install dependencies
npm install
# Build
npm run build
Configuration
- Copy the example environment file:
cp .env.example .env
- Edit
.envwith your private key:
# Required: Your wallet's private key
PRIVATE_KEY=your_private_key_here
# Optional: Network (mainnet or testnet)
NETWORK=mainnet
β οΈ Security Warning: Never commit your
.envfile or share your private key!
Add to Claude Code
Add this to your Claude Code MCP settings:
Location: ~/.claude/claude_desktop_config.json (macOS/Linux) or via Claude Code settings
{
"mcpServers": {
"pay-mcp": {
"command": "node",
"args": ["/path/to/pay-mcp/dist/index.js"],
"env": {
"PRIVATE_KEY": "your_private_key_here",
"NETWORK": "mainnet"
}
}
}
}
Alternative: Run directly with source:
{
"mcpServers": {
"pay-mcp": {
"command": "npx",
"args": ["tsx", "/path/to/pay-mcp/src/index.ts"],
"env": {
"PRIVATE_KEY": "your_private_key_here",
"NETWORK": "mainnet"
}
}
}
}
π οΈ Tools
pay_balance
Check USDC balance for your wallet or any address.
| Parameter | Required | Description |
|---|---|---|
address | No | Address to check. Defaults to your wallet. |
Example prompt:
Check my USDC balance
pay_send
Send USDC to an address.
| Parameter | Required | Description |
|---|---|---|
to | Yes | Recipient address (0x...) |
amount | Yes | Amount in USDC (e.g., "10.50") |
memo | No | Note for this payment |
Example prompt:
Send 25 USDC to 0x742d35Cc6634C0532925a3b844Bc9e7595f8d123 for "Coffee subscription"
pay_request
Generate a payment request link.
| Parameter | Required | Description |
|---|---|---|
amount | Yes | Amount to request in USDC |
memo | No | Description for the request |
Example prompt:
Create a payment request for 50 USDC for "Consulting services"
pay_history
View recent USDC transactions.
| Parameter | Required | Description |
|---|---|---|
limit | No | Number of transactions (default: 20, max: 100) |
Example prompt:
Show my last 10 USDC transactions
π» Development
Project Structure
pay-mcp/
βββ src/
β βββ index.ts # MCP server entry point
β βββ config.ts # Configuration and constants
β βββ wallet.ts # Blockchain interaction layer (viem)
β βββ tools.ts # MCP tool definitions
βββ test/
β βββ test.ts # Test script
βββ dist/ # Compiled output
βββ .env.example # Environment template
βββ package.json
βββ tsconfig.json
βββ README.md
Commands
# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Run tests (uses testnet)
npm test
# Clean build output
npm run clean
Running Tests
# Run with auto-generated test wallet
npm test
# Run with your own testnet wallet
PRIVATE_KEY=your_testnet_key npm test
π Network Configuration
Mainnet (Default)
| Setting | Value |
|---|---|
| Chain | Base (Chain ID: 8453) |
| USDC Contract | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Explorer | https://basescan.org |
Testnet
Set NETWORK=testnet in your .env:
| Setting | Value |
|---|---|
| Chain | Base Sepolia (Chain ID: 84532) |
| USDC Contract | 0x036CbD53842c5426634e7929541eC2318f3dCF7e |
| Explorer | https://sepolia.basescan.org |
π‘ To get testnet USDC, use the Base Sepolia Faucet.
βοΈ Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
PRIVATE_KEY | β Yes | - | Wallet private key (without 0x prefix) |
NETWORK | No | mainnet | mainnet or testnet |
BASE_RPC_URL | No | Public RPC | Custom RPC endpoint |
GAS_MULTIPLIER | No | 1.1 | Gas estimate multiplier |
MAX_GAS_LIMIT | No | 100000 | Maximum gas limit |
π Security Considerations
-
Private Key Storage:
- Never commit your private key to version control
- Consider using environment variables or a secrets manager
- For production, use hardware wallets or key management services
-
Transaction Safety:
- Always test on testnet first
- Double-check recipient addresses
- Consider implementing daily/per-transaction limits
-
Network Selection:
- Verify network configuration before mainnet transactions
- Use testnet for development and testing
π§ Tech Stack
| Component | Technology |
|---|---|
| Runtime | Node.js 18+ |
| Language | TypeScript 5.7 |
| MCP SDK | @modelcontextprotocol/sdk |
| Blockchain | viem |
| Validation | zod |
π€ Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
npm test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
MIT License - see LICENSE for details.
π Acknowledgments
- Model Context Protocol by Anthropic
- Base by Coinbase
- Circle USDC
- Viem - TypeScript Ethereum library
β οΈ Disclaimer: This is experimental software. Use at your own risk. Always verify transactions and test on testnet before using with real funds.
