Pay Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Pay Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for USDC payments on Base — Enable any Claude Code agent to send and receive payments.
<p align="center"> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-18+-339933?logo=node.js&logoColor=white" alt="Node.js 18+"></a> <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.7-3178C6?logo=typescript&logoColor=white" alt="TypeScript"></a> <a href="https://base.org"><img src="https://img.shields.io/badge/Chain-Base-0052FF?logo=coinbase&logoColor=white" alt="Base"></a> <a href="https://www.circle.com/en/usdc"><img src="https://img.shields.io/badge/Token-USDC-2775CA?logo=circle&logoColor=white" alt="USDC"></a> <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/Protocol-MCP-FF6B35" alt="MCP"></a> <a href="https://viem.sh"><img src="https://img.shields.io/badge/Blockchain-Viem-1C1C1C" alt="Viem"></a> </p>
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:
┌─────────────────────────────────────────────────────────────────┐
│ 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) │ │
│ └────────────────┘ │
└──────────────────────┘# Clone the repository
git clone https://github.com/koriyoshi2041/pay-mcp.git
cd pay-mcp
# Install dependencies
npm install
# Build
npm run buildcp .env.example .env# Required: Your wallet's private key
PRIVATE_KEY=your_private_key_here
# Optional: Network (mainnet or testnet)
NETWORK=mainnet⚠️ Security Warning: Never commit your .env file or share your private key!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"
}
}
}
}pay_balanceCheck 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 balancepay_sendSend 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_requestGenerate 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_historyView recent USDC transactions.
| Parameter | Required | Description |
|---|---|---|
limit | No | Number of transactions (default: 20, max: 100) |
Example prompt:
Show my last 10 USDC transactionspay-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# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Run tests (uses testnet)
npm test
# Clean build output
npm run clean# Run with auto-generated test wallet
npm test
# Run with your own testnet wallet
PRIVATE_KEY=your_testnet_key npm test| Setting | Value |
|---|---|
| Chain | Base (Chain ID: 8453) |
| USDC Contract | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Explorer | https://basescan.org |
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.
| 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 |
| Component | Technology |
|---|---|
| Runtime | Node.js 18+ |
| Language | TypeScript 5.7 |
| MCP SDK | @modelcontextprotocol/sdk |
| Blockchain | viem |
| Validation | zod |
Contributions are welcome! Please:
git checkout -b feature/amazing-feature)npm test)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE for details.
<p align="center"> <strong>⚠️ Disclaimer:</strong> This is experimental software. Use at your own risk. Always verify transactions and test on testnet before using with real funds. </p>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.