Skip to main content
Glama

Blockchain Payment MCP Server

by logos-42

区块链支付MCP服务器

基于Base网络的区块链支付MCP(Model Context Protocol)服务器,提供完整的区块链支付功能。

🌟 功能特性

  • 多网络支持: 支持多个测试网和主网,包括Base Sepolia、Base Mainnet、Ethereum Sepolia、Ethereum Mainnet等

  • 代币支持: ETH、USDC、USDT、DAI、WETH等主流代币

  • 余额查询: 查询任意地址的ETH和代币余额

  • 安全转账: 支持ETH和ERC20代币转账

  • 交易追踪: 实时查询交易状态和确认数

  • Gas估算: 智能估算交易Gas费用

  • 钱包管理: 创建新钱包、验证地址格式

  • 安全限制: 内置交易金额限制和安全检查

Related MCP server: MCP Etherscan Server

🚀 快速开始

1. 安装MCP包

pip install blockchain-payment-mcp

2. MCP配置文件

项目根目录的 mcp_config.json 文件已经配置好了MCP服务器:

{ "mcpServers": { "blockchain-payment": { "command": "blockchain-payment-mcp", "args": [], "env": { "PRIVATE_KEY": "your-private-key-here", "DEFAULT_NETWORK": "base_sepolia", "DEBUG": "true", "MAX_TRANSACTION_VALUE": "10", "PYTHONPATH": "." } } } }

3. 环境变量配置

mcp_config.json 中配置以下环境变量:

  • PRIVATE_KEY: 你的私钥(用于发送交易)

  • DEFAULT_NETWORK: 默认网络(base_sepolia, ethereum_mainnet 等)

  • DEBUG: 调试模式(true/false)

  • MAX_TRANSACTION_VALUE: 最大交易金额限制

支持的MCP工具

余额和查询工具

  1. get_balance - 查询指定地址的余额

    • 参数: address (必需), token_symbol (可选), network (可选)

  2. get_network_info - 获取当前网络信息

    • 参数: network (可选)

  3. get_supported_tokens - 获取支持的代币列表

    • 参数: random_string (必需,用于无参数工具)

  4. validate_address - 验证以太坊地址格式

    • 参数: address (必需)

交易工具

  1. send_transaction - 发送代币转账交易

    • 参数: to_address (必需), amount (必需), token_symbol (可选), network (可选)

  2. get_transaction_status - 查询交易状态和详情

    • 参数: tx_hash (必需), network (可选)

  3. estimate_gas_fees - 估算Gas费用

    • 参数: to_address (可选), amount (可选), token_symbol (可选), network (可选)

钱包管理工具

  1. create_wallet - 创建新的钱包地址和私钥

    • 参数: label (可选)

  2. set_user_wallet - 设置用户钱包私钥

    • 参数: private_key (必需), label (可选)

  3. list_wallets - 列出所有已添加的钱包

    • 参数: random_string (必需)

  4. switch_wallet - 切换当前使用的钱包

    • 参数: label (必需)

  5. remove_wallet - 移除指定标签的钱包

    • 参数: label (必需)

支持的网络

  • base_sepolia - Base Sepolia 测试网

  • base_mainnet - Base 主网

  • ethereum_mainnet - 以太坊主网

  • ethereum_sepolia - 以太坊 Sepolia 测试网

  • bsc_mainnet - BSC 主网

  • bsc_testnet - BSC 测试网

  • polygon_mainnet - Polygon 主网

  • polygon_amoy - Polygon Amoy 测试网

  • avalanche_mainnet - Avalanche 主网

  • avalanche_fuji - Avalanche Fuji 测试网

  • solana_mainnet - Solana 主网

  • solana_devnet - Solana 开发网

支持的代币

  • ETH - 以太币

  • USDC - USD Coin

  • USDC_BASE - Base 网络上的 USDC

  • USDC_BSC - BSC 网络上的 USDC

  • USDC_POLYGON - Polygon 网络上的 USDC

  • DAI - Dai 稳定币

  • DAI_BASE - Base 网络上的 DAI

  • DAI_BSC - BSC 网络上的 DAI

  • DAI_POLYGON - Polygon 网络上的 DAI

  • WETH - Wrapped Ether

  • WETH_BASE - Base 网络上的 WETH

本地下载代码

1. 安装依赖

pip install -r requirements.txt

2. 环境配置

# 私钥(用于发送交易,可选) PRIVATE_KEY=your_private_key_here # 默认网络(默认为base_sepolia) DEFAULT_NETWORK=base_sepolia # 最大交易金额限制(默认10 ETH) MAX_TRANSACTION_VALUE=10 # 调试模式 DEBUG=false

3. 本地代码-配置MCP客户端

在Cursor的mcp.json中添加:

{ "mcpServers": { "blockchain-payment": { "command": "python", "args": ["-m", "blockchain_payment_mcp.server"], "env": { "PRIVATE_KEY": "your_private_key_here", "DEFAULT_NETWORK": "base_sepolia", "DEBUG": "false", "MAX_TRANSACTION_VALUE": "10" }, "cwd": "/path/to/blockmcp" } } }

4. 测试服务器

## 🛠️ 可用工具 ### `get_balance` 查询指定地址的余额 **参数:** - `address`: 钱包地址(必需) - `token_symbol`: 代币符号,如"USDC"、"DAI"(可选) - `network`: 网络名称(可选,默认base_sepolia) **示例:** ```python # 查询ETH余额 {"address": "0x742d..."} # 查询USDC余额 {"address": "0x742d...", "token_symbol": "USDC"}

send_transaction

发送代币转账交易

参数:

  • to_address: 接收方地址(必需)

  • amount: 转账金额(必需)

  • token_symbol: 代币符号(可选,默认"ETH")

  • network: 网络名称(可选)

  • private_key: 发送方私钥(可选,如未提供则使用环境变量)

示例:

# 发送0.01 ETH {"to_address": "0x...", "amount": "0.01"} # 发送100 USDC {"to_address": "0x...", "amount": "100", "token_symbol": "USDC"}

get_transaction_status

查询交易状态

参数:

  • tx_hash: 交易哈希(必需)

  • network: 网络名称(可选)

estimate_gas_fees

估算Gas费用

参数:

  • to_address: 接收方地址(可选)

  • amount: 转账金额(可选)

  • token_symbol: 代币符号(可选)

  • network: 网络名称(可选)

create_wallet

创建新的钱包地址和私钥

参数:

get_network_info

获取当前网络信息

参数:

  • network: 网络名称(可选)

get_supported_tokens

获取支持的代币列表

参数:

validate_address

验证以太坊地址格式

参数:

  • address: 要验证的地址(必需)

🌐 支持的网络

Base Sepolia (测试网)

  • Chain ID: 84532

  • RPC: https://base-sepolia-rpc.publicnode.com

  • 浏览器: https://sepolia.basescan.org

  • 原生代币: ETH

Base Mainnet (主网)

  • Chain ID: 8453

  • RPC: https://base-rpc.publicnode.com

  • 浏览器: https://basescan.org

  • 原生代币: ETH

Ethereum Sepolia (测试网)

  • Chain ID: 11155111

  • RPC: https://ethereum-sepolia-rpc.publicnode.com

  • 浏览器: https://sepolia.etherscan.io

  • 原生代币: ETH

Ethereum Mainnet (主网)

  • Chain ID: 1

  • RPC: https://ethereum-rpc.publicnode.com

  • 浏览器: https://etherscan.io

  • 原生代币: ETH

BSC Testnet (测试网)

  • Chain ID: 97

  • RPC: https://bsc-testnet-rpc.publicnode.com

  • 浏览器: https://testnet.bscscan.com

  • 原生代币: BNB

BSC Mainnet (主网)

  • Chain ID: 56

  • RPC: https://bsc-rpc.publicnode.com

  • 浏览器: https://bscscan.com

  • 原生代币: BNB

Polygon Amoy (测试网)

  • Chain ID: 80002

  • RPC: https://polygon-amoy-rpc.publicnode.com

  • 浏览器: https://amoy.polygonscan.com

  • 原生代币: MATIC

Polygon Mainnet (主网)

  • Chain ID: 137

  • RPC: https://polygon-rpc.com

  • 浏览器: https://polygonscan.com

  • 原生代币: MATIC

Avalanche Fuji (测试网)

  • Chain ID: 43113

  • RPC: https://avalanche-fuji-c-chain-rpc.publicnode.com

  • 浏览器: https://testnet.snowtrace.io

  • 原生代币: AVAX

Avalanche Mainnet (主网)

  • Chain ID: 43114

  • RPC: https://avalanche-c-chain-rpc.publicnode.com

  • 浏览器: https://snowtrace.io

  • 原生代币: AVAX

🔒 安全特性

  1. 交易限制: 内置最大交易金额限制(默认10 ETH)

  2. 地址验证: 严格验证所有以太坊地址格式

  3. 私钥保护: 支持环境变量和可选私钥传入

  4. 错误处理: 完善的异常处理和错误信息

  5. 日志记录: 详细的操作日志和调试信息

🧪 测试

运行测试脚本验证功能:

python test_mcp.py

测试包括:

  • 配置加载测试

  • 网络连接测试

  • 钱包功能测试

  • 地址验证测试

  • Gas估算测试

📝 示例用法

在AI对话中使用

请帮我查询地址 0x742d... 的USDC余额
请发送0.001 ETH到地址 0x123456789...
请查询交易 0xabcdef... 的状态

在测试链上进行操作

请在Base Sepolia测试网上查询地址 0x742d35cc6585c5d74b3c9e5c29ae4eeaae27b76d 的ETH余额
请在Ethereum Sepolia测试网上发送0.001 ETH到地址 0x1234567890123456789012345678901234567890

程序化使用

# 直接调用MCP工具 from blockchain_payment_mcp.server import handle_get_balance result = await handle_get_balance({ "address": "0x742d35cc6585c5d74b3c9e5c29ae4eeaae27b76d", "token_symbol": "USDC", "network": "ethereum_sepolia" }) print(result)

🔧 开发

项目结构

blockmcp/ ├── blockchain_payment_mcp/ │ ├── __init__.py │ ├── server.py # MCP服务器主文件 │ ├── blockchain.py # 区块链交互层 │ ├── wallet.py # 钱包和签名器 │ └── config.py # 配置管理 ├── requirements.txt # Python依赖 ├── pyproject.toml # 项目配置 ├── test_mcp.py # 测试脚本 └── README.md # 说明文档

🧪 测试链支持

本系统支持在多个测试链上进行支付操作,包括:

  1. Ethereum Sepolia (ETH)

  2. Base Sepolia (ETH)

  3. BSC Testnet (BNB)

  4. Polygon Amoy (MATIC)

  5. Avalanche Fuji (AVAX)

获取测试代币

要获取测试链上的代币用于测试,请访问相应的水龙头:

  1. Ethereum Sepolia:

    • https://sepoliafaucet.com/

    • https://www.infura.io/faucet/sepolia

  2. Base Sepolia:

    • https://base.org/faucet

  3. BSC Testnet:

    • https://testnet.bnbchain.org/faucet-smart

  4. Polygon Amoy:

    • https://tools.polygon.technology/faucet/

  5. Avalanche Fuji:

    • https://faucet.avax-test.network/

测试链注意事项

  1. 测试链上的代币没有实际价值,仅用于开发和测试目的

  2. 测试链的Gas价格通常比主网低得多

  3. 不同测试链可能有不同的区块时间和确认时间

  4. 测试链可能会重置,导致测试资产丢失

🤝 贡献

欢迎提交Issue和Pull Request!

📄 许可证

MIT License

⚠️ 免责声明

本软件仅用于教育和开发目的。使用前请充分测试,作者不承担任何资金损失责任。在主网使用前请确保充分的安全测试。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/logos-42/blockchain-payment-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server