USDC支付服务

Pay-MCP是一个基于Base区块链的USDC支付服务器,使AI代理能够发送、接收和查询USDC支付。

  • by MonadWorks
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 koriyoshi2041/pay-mcp

使用说明

支付MCP💸

MCP服务器,用于Base上的USDC支付 --允许任何Claude Code代理发送和接收付款。


🎯 概述

支付MCP是 模型上下文协议(MCP) 将USDC支付功能封装在Base区块链上的服务器。它允许AI代理(如Claude Code):

  • 💰 检查USDC余额 --查询任何钱包的USDC余额
  • 📤 发送USDC付款 --将USDC转账到任何地址
  • 📥 生成付款请求 --创建支持深度链接的支付链接
  • 📜 查看交易历史记录 --列出最近发送/接收的转账

🏗️ 建筑

┌─────────────────────────────────────────────────────────────────┐
│                         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 build

配置

  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑 .env 使用您的私钥:
# Required: Your wallet's private key
PRIVATE_KEY=your_private_key_here

# Optional: Network (mainnet or testnet)
NETWORK=mainnet

⚠️ 安全警告: 永远不要承诺你的 .env 文件或共享您的私钥!

添加到克劳德代码

将此添加到您的Claude Code MCP设置中:

地点: ~/.claude/claude_desktop_config.json (macOS/Linux)或通过克劳德代码设置

{
  "mcpServers": {
    "pay-mcp": {
      "command": "node",
      "args": ["/path/to/pay-mcp/dist/index.js"],
      "env": {
        "PRIVATE_KEY": "your_private_key_here",
        "NETWORK": "mainnet"
      }
    }
  }
}

备选方案: 直接使用源代码运行:

{
  "mcpServers": {
    "pay-mcp": {
      "command": "npx",
      "args": ["tsx", "/path/to/pay-mcp/src/index.ts"],
      "env": {
        "PRIVATE_KEY": "your_private_key_here",
        "NETWORK": "mainnet"
      }
    }
  }
}

🛠️ 工具

pay_balance

检查钱包或任何地址的USDC余额。

参数 必填 说明
address 否 要检查的地址。默认为您的钱包。

示例提示:

Check my USDC balance

pay_send

将USDC发送到一个地址。

参数 必填 说明
to 是 收件人地址(0x…)
amount 是 金额单位为美元(例如“10.50”)
memo 否 此付款的备注

示例提示:

Send 25 USDC to 0x742d35Cc6634C0532925a3b844Bc9e7595f8d123 for "Coffee subscription"

pay_request

生成付款请求链接。

参数 必填 说明
amount 是 申请金额(美元)
memo 否 请求的描述

示例提示:

Create a payment request for 50 USDC for "Consulting services"

pay_history

查看最近的USDC交易。

参数 必填 说明
limit 否 交易数量(默认值:20,最大值:100)

示例提示:

Show my last 10 USDC transactions

💻 发展

项目结构

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

命令

# 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

🌐 网络配置

主网(默认)

设置 值
链条 底座(链条ID:8453)
USDC合同 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
探索者 https://basescan.org

测试网

集 NETWORK=testnet 在你的 .env:

设置 值
连锁店 总部Sepolia(连锁店ID:84532)
USDC合同 0x036CbD53842c5426634e7929541eC2318f3dCF7e
探索者 https://sepolia.basescan.org

💡 要获取测试网USDC,请使用 基础Sepolia水龙头.


⚙️ 环境变量

变量 必填 默认 描述
PRIVATE_KEY ✅ 是 - 钱包私钥(不带0x前缀)
NETWORK 没有 mainnet mainnet 或 testnet
BASE_RPC_URL 否 公共RPC 自定义RPC终结点
GAS_MULTIPLIER 没有 1.1 天然气估算乘数
MAX_GAS_LIMIT 没有 100000 最大气体限制

🔒 安全注意事项

  1. 私钥存储:

    • 永远不要将私钥提交给版本控制
    • 考虑使用环境变量或机密管理器
    • 对于生产,使用硬件钱包或密钥管理服务
  2. 交易安全:

    • 始终先在测试网上进行测试
    • 仔细检查收件人地址
    • 考虑实施每日/每笔交易限额
  3. 网络选择:

    • 在主网交易之前验证网络配置
    • 使用测试网进行开发和测试

🔧 技术栈

组件 技术
运行时 Node.js 18+
语言 TypeScript 5.7
MCP SDK @modelcontextprotocol/SDK
区块链 viem
验证 zod

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 运行测试(npm test)
  5. 提交您的更改(git commit -m 'Add amazing feature')
  6. 推到分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

📄 许可证

MIT许可证-请参阅 许可证 了解详情。


🙏 致谢


⚠️ Disclaimer: This is experimental software. Use at your own risk. Always verify transactions and test on testnet before using with real funds.