以太坊MCP服务器

一个全面的以太坊MCP服务器实现,提供钱包管理、交易处理和合约交互功能,适用于区块链开发和金融应用。

  • by ethpandaops
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ethpandaops/eth-mcp-server

使用说明

以太坊MCP服务器

警告:此回购是高度实验性的,目前可能不起作用。它正在积极开发中,一旦被认为可以安全运行,我们将更新此警告。

一个全面的以太坊MCP服务器实现,具有钱包管理、交易处理和合约交互功能。使用FastAPI和Web3.py构建。

特性

钱包管理

  • 创建新钱包
  • 导入现有钱包
  • 列出托管钱包
  • 检查ETH余额
  • 安全私钥处理

事务管理

  • 发送ETH交易
  • 获取交易详情
  • 获取交易收据
  • 天然气估算
  • Nonce管理
  • 业务监控

合同互动

  • 与ABI部署合同
  • 加载现有合同
  • 调用状态更改方法
  • 读取合同状态
  • 查询合同事件
  • ABI管理

部署合约

使用字节码和ABI部署一个新合约:

{
  "method": "eth_deployContract",
  "params": {
    "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e",
    "abi": [...],  // Contract ABI array
    "bytecode": "0x608060...",  // Contract bytecode
    "constructorArgs": ["arg1", 123]  // Optional constructor arguments
  }
}

装载合同

加载现有的已部署合约:

{
  "method": "eth_loadContract",
  "params": {
    "address": "0x1234567890123456789012345678901234567890",
    "abi": [...]  // Contract ABI array
  }
}

调用合约方法(状态更改)

执行更改合约状态的交易:

{
  "method": "eth_callContractMethod",
  "params": {
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "methodName": "transfer",
    "args": ["0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e", 1000],
    "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e"
  }
}

读取合同状态

调用视图/纯函数而不发送事务:

{
  "method": "eth_readContract",
  "params": {
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "methodName": "balanceOf",
    "args": ["0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e"]
  }
}

查询合同事件

从合同中检索过去的事件:

{
  "method": "eth_getContractEvents",
  "params": {
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "eventName": "Transfer",
    "fromBlock": 0,
    "toBlock": "latest",
    "filters": {  // Optional event filters
      "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e"
    }
  }
}

注: 所有合约交互方法都需要合约ABI(应用程序二进制接口)正确编码/解码函数调用和事件。ABI必须按照标准的以太坊ABI格式以JSON数组的形式提供。

代币管理(即将推出)

  • ERC20余额检查
  • ERC20转账
  • NFT元数据检索
  • NFT传输
  • 代币审批管理

高级功能(即将推出)

  • EIP-7702代表团
  • 事件日志检索
  • 部分提款
  • 全额提款
  • 批量操作

快速开始

  1. 安装依赖项:
uv venv
source .venv/bin/activate
uv pip install -e .
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your configuration
  1. 运行服务器:
python src/server.py

API方法

钱包方法

{
  "method": "eth_createWallet",
  "params": {}
}

{
  "method": "eth_importWallet",
  "params": {
    "privateKey": "0x..."
  }
}

{
  "method": "eth_listWallets",
  "params": {}
}

{
  "method": "eth_getBalance",
  "params": {
    "address": "0x..."
  }
}

交易方式

{
  "method": "eth_sendTransaction",
  "params": {
    "from": "0x...",
    "to": "0x...",
    "value": "0x...",
    "gas": "0x...",
    "gasPrice": "0x..."
  }
}

{
  "method": "eth_getTransaction",
  "params": {
    "hash": "0x..."
  }
}

{
  "method": "eth_getTransactionReceipt",
  "params": {
    "hash": "0x..."
  }
}

{
  "method": "eth_estimateGas",
  "params": {
    "from": "0x...",
    "to": "0x...",
    "value": "0x..."
  }
}

发展

项目结构

src/
├── server.py           # Main FastAPI server
├── core/              # Core functionality
│   ├── wallet.py      # Wallet management
│   ├── transaction.py # Transaction handling
│   ├── contract.py    # Contract interaction
│   └── token.py       # Token/NFT handling
├── models/            # Data models
└── utils/             # Utilities

运行测试

pytest

代码的风格

ruff check .
ruff format .

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

麻省理工学院