关于 Ethereum MCP Server
Ethereum MCP Server 是一个实验性服务,使用 FastAPI 和 Web3.py 管理 Ethereum 钱包、交易及智能合约交互,面向通过 MCP 探索这些操作的开发者。README 警告项目仍在积极开发,目前可能无法正常运行。
主要功能
- 01创建、导入和列出钱包
- 02查询 ETH 余额
- 03发送并监控交易
- 04估算 Gas 并管理 Nonce
- 05部署和加载合约
- 06读取合约状态并查询事件
适用场景
- 01管理 Ethereum 钱包
- 02发送交易并查看收据
- 03部署合约或与合约交互
- 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 委托
- 获取事件日志
- 部分提现
- 全额提现
- 批量操作
快速开始
- 安装依赖项:
uv venv
source .venv/bin/activate
uv pip install -e .
- 设置环境变量:
cp .env.example .env
# Edit .env with your configuration
- 运行服务:
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 .
贡献
- Fork 此仓库
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。