使用说明
以太坊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代表团
- 事件日志检索
- 部分提款
- 全额提款
- 批量操作
快速开始
- 安装依赖项:
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 .
贡献
- 分叉存储库
- 创建功能分支
- 提交您的更改
- 推到分支
- 创建拉取请求
许可证
麻省理工学院