mcpField
E
Ethereum MCP Server

Ethereum MCP Server

本地服务
github.com/ethpandaops金融数据170 周前更新

关于 Ethereum MCP Server

Ethereum MCP Server 是一个实验性服务,使用 FastAPI 和 Web3.py 管理 Ethereum 钱包、交易及智能合约交互,面向通过 MCP 探索这些操作的开发者。README 警告项目仍在积极开发,目前可能无法正常运行。

主要功能

  1. 01创建、导入和列出钱包
  2. 02查询 ETH 余额
  3. 03发送并监控交易
  4. 04估算 Gas 并管理 Nonce
  5. 05部署和加载合约
  6. 06读取合约状态并查询事件

适用场景

  1. 01管理 Ethereum 钱包
  2. 02发送交易并查看收据
  3. 03部署合约或与合约交互
  4. 04读取合约数据和历史事件

MCP 相关

它通过服务方法向 MCP 客户端提供 Ethereum 钱包、交易和合约操作。项目标记为高度实验性,目前可能无法正常运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Ethereum MCP Server

警告:此仓库处于高度实验阶段,目前很可能无法运行。项目仍在积极开发中;待确认可以安全运行后,我们会更新此警告。

这是一个功能全面的 Ethereum MCP 服务实现,支持钱包管理、交易处理和合约交互。基于 FastAPI 和 Web3.py 构建。

功能

钱包管理
  • 创建新钱包
  • 导入现有钱包
  • 列出已管理的钱包
  • 查询 ETH 余额
  • 安全处理私钥
交易管理
  • 发送 ETH 交易
  • 获取交易详情
  • 获取交易回执
  • 估算 Gas
  • 管理 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"
  }
}
读取合约状态

调用 view/pure 函数,无需发送交易:

{
  "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 必须以符合 Ethereum 标准 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. Fork 此仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建 Pull Request

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。