区块链操作服务器

一个用于以太坊区块链操作的模型上下文协议(MCP)服务器,支持钱包管理、代币操作、DeFi集成和智能合约交互等功能。

  • by MaitreyaM
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MaitreyaM/WEB3-MCP

使用说明

Web3 MCP服务器

用于以太坊区块链操作的模型上下文协议(MCP)服务器,使用流式HTTP传输部署在Smithery.ai上。

特性

  • 钱包管理:检查钱包余额并发送ETH交易
  • 令牌操作:获取ERC-20代币余额和价格
  • DeFi集成:将ETH包装到WETH,并在Uniswap V3上交换代币
  • 智能合约交互:通用合约函数调用
  • 价格信息:来自Chainlink的实时ETH/USD价格(即将推出)
  • 多网络支持:Sepolia测试网和以太坊主网

可用工具

1. get_wallet_balance

获取任何钱包地址的本地ETH余额。

2. get_token_price

从Chainlink价格源获取实时ETH/USD价格。

3. send_eth

将ETH从代理钱包发送到任何地址。

4. interact_with_contract

调用任何智能合约上的任何函数(读或写)。

5. get_erc20_balance

检查任何钱包的ERC-20代币余额。

6. wrap_eth

将原生ETH转换为WETH(包裹ETH)。

7. swap_tokens_for_tokens

在Uniswap V3上自动批准交换代币。

部署到Smithery.ai

此服务器配置为使用Streamable HTTP传输部署在Smithery.ai上。

所需配置

服务器需要以下环境变量:

  • WEB3_PROVIDER_URL:您的以太坊RPC端点(例如,Infura、Alchemy)
  • AGENT_PRIVATE_KEY:代理钱包的私钥(不带0x前缀)

网络特定地址

Sepolia测试网(默认)

  • WETH合同: 0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14
  • Uniswap路由器: 0x3bFA4769FB09eefC5a399D6D47036A5d3fA67B54
  • ETH/USD价格反馈: 0x694AA1769357215DE4FAC081bf1f309aDC325306

以太坊主网

  • WETH合同: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  • Uniswap路由器: 0xE592427A0AEce92De3Edee1F18E0157C05861564
  • ETH/USD价格反馈: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419

端口配置

服务器在端口3000上运行,并配置为容器部署。

本地开发

先决条件

  1. Python 3.10+
  2. 以太坊RPC端点(Infura、Alchemy或本地节点)
  3. 用于测试钱包的私钥

设置

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 设置环境变量:

    export WEB3_PROVIDER_URL="https://sepolia.infura.io/v3/YOUR_PROJECT_ID"
    export AGENT_PRIVATE_KEY="your_private_key_without_0x"
    export NETWORK="sepolia"  # or "mainnet"
    
  3. 运行服务器:

    python server.py
    

环境变量

创建一个 .env 项目根目录中的文件:

WEB3_PROVIDER_URL=https://sepolia.infura.io/v3/YOUR_PROJECT_ID
AGENT_PRIVATE_KEY=your_private_key_without_0x
NETWORK=sepolia

Docker部署

构建图像

docker build -t web3-mcp-server .

运行容器

docker run -p 3000:3000 \
  -e WEB3_PROVIDER_URL="https://sepolia.infura.io/v3/YOUR_PROJECT_ID" \
  -e AGENT_PRIVATE_KEY="your_private_key_without_0x" \
  -e NETWORK="sepolia" \
  web3-mcp-server

安全考虑

  • 对所有敏感数据使用环境变量
  • 考虑为MCP服务器使用专用钱包
  • 定期轮换私钥
  • 监控钱包余额和交易
  • 使用测试网进行开发和测试

错误处理

服务器包括全面的错误处理:

  • 与Web3提供商的连接验证
  • 事务超时处理(默认5分钟)
  • 地址和金额的输入验证
  • 优雅的错误响应和详细的消息
  • 用于调试和监控的日志记录

网络支持

  • Sepolia测试网:建议用于开发和测试
  • 以太坊主网:生产使用(谨慎使用)

依赖项

  • fastmcp:MCP服务器框架
  • web3:以太坊区块链交互
  • python-dotenv:环境变量管理
  • requests:HTTP请求处理

故障排除

常见问题

  1. 连接失败:检查RPC端点URL和网络连接
  2. 余额不足:确保代理钱包有足够的ETH支付汽油费
  3. 交易失败:检查天然气价格和网络拥堵情况
  4. 无效地址:确保地址是有效的以太坊地址

调试模式

通过在代码中设置日志级别启用调试日志记录:

logging.basicConfig(level=logging.DEBUG)

支持

有关Smithery.ai上的部署问题,请参阅他们的文档和支持渠道。

有关区块链相关问题,请查看:

  • RPC提供程序的状态页
  • 网络天然气价格和拥堵
  • 合同地址和总部地址。