EVM代理MCP
](https://pypi.org/project/evm-proxy-mcp/)  
MCP服务器,用于高级EVM智能合约分析,包括代理检测、实施解析和安全分析。
A. 模型上下文协议 服务器,为AI助手提供分析以太坊和EVM兼容智能合约的工具。
特性
- 9代理模式检测 -EIP-1967、UUPS、信标、钻石、最小克隆、GnosisSafe等
- 自动执行解决方案 -跟踪代理链以找到实际的逻辑契约
- 管理功能检测 -识别特权功能(升级、暂停、刷新、刻录等)
- 安全分析 -生成安全说明和风险评估
- 多链支持 -以太坊、多边形、Arbitrum、乐观主义、Base、BSC、雪崩
安装
来自PyPI
pip install evm-proxy-mcp来源
git clone https://github.com/0xGval/evm-proxy-mcp.git
cd evm-proxy-mcp
pip install -e .配置
使用克劳德代码
claude mcp add evm-proxy-mcp -e ETHERSCAN_API_KEY=your_api_key -- uvx evm-proxy-mcp或者使用pip安装:
claude mcp add evm-proxy-mcp -e ETHERSCAN_API_KEY=your_api_key -- python -m src.server使用Claude桌面版
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"evm-proxy-mcp": {
"command": "uvx",
"args": ["evm-proxy-mcp"],
"env": {
"ETHERSCAN_API_KEY": "your_etherscan_api_key"
}
}
}
}环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
ETHERSCAN_API_KEY | 您的Etherscan API密钥(免费获得一个) | 推荐 |
ETH_RPC_URL | 自定义RPC端点 | 可选 |
工具
detect_proxy
检测EVM智能合约的代理模式。
参数:
address(必填):合同地址(0x…)chain(可选):链名(默认:ethereum)follow_chain(可选):遵循嵌套代理(默认值:false)
支持的代理模式:
- EIP-1967透明代理
- EIP-1967信标代理
- EIP-1822 UUPS代理
- ZeppelinOS传统代理
- EIP-1167最小代理克隆
- GnosisSafe代理
- 钻石代理(EIP-2535)
- EIP-897委派代理
- 自定义/未知代理
get_contract_source
获取智能合约的验证源代码。
参数:
address(必填):合同地址(0x…)chain(可选):链名(默认:ethereum)resolve_proxy(可选):同时获取实现源(默认值:true)
analyze_abi
分析合同ABI以获取安全相关信息。
参数:
address(必填):合同地址(0x…)chain(可选):链名(默认:ethereum)include_full_abi(可选):包含完整功能列表(默认值:false)
检测:
- 升级功能
- 暂停/取消暂停功能
- 薄荷/燃烧功能
- 所有权管理
- 黑名单/白名单
- 自毁能力
get_contract_creation
获取合同部署者地址和创建事务。
参数:
address(必填):合同地址(0x…)chain(可选):链名(默认:ethereum)
full_analysis
结合所有工具进行全面的合同分析。
参数:
address(必填):合同地址(0x…)chain(可选):链名(默认:ethereum)
list_chains
列出所有支持的区块链网络。
支撑链
| 链 | 链ID |
|---|---|
| 以太坊 | 1 |
| 威立雅 | 11155111 |
| 多边形 | 137 |
裁判 42161 |乐观主义|10| |基数| 8453| |bsc | 56| |雪崩| 43114|
示例用法
分析USDC合同
User: Analyze the USDC contract on Ethereum
Claude: [Uses full_analysis tool with address 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48]
## Analysis Results
### Proxy Status
- **Is Proxy**: Yes
- **Type**: EIP-1967 Transparent Proxy
- **Implementation**: 0x43506...
### Admin Functions Detected
- pause()
- unpause()
- blacklist(address)
- mint(address,uint256)
### Security Notes
- Contract can be paused - centralization risk
- Contract has blacklist functionality
- Contract has mint capabilities检查合同是否为代理
User: Is 0x1234... a proxy contract?
Claude: [Uses detect_proxy tool]
The contract at 0x1234... is an EIP-1967 Transparent Proxy.
- Implementation: 0x5678...
- Admin: 0x9abc...发展
设置
git clone https://github.com/0xGval/evm-proxy-mcp.git
cd evm-proxy-mcp
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e ".[dev]"运行测试
pytest以开发模式运行
python run.py建筑
src/
├── __init__.py # Package metadata
├── server.py # MCP server entry point
├── config.py # Storage slots, selectors, chain configs
├── client.py # Etherscan API client
├── proxy_detector.py # 9 proxy pattern detection
└── abi_analyzer.py # ABI analysis + admin detection代理检测的工作原理
服务器通过以下方式检测代理:
- 字节码分析 -检查字节码中的EIP-1167最小代理模式
- 存储插槽读取 -读取标准化的EIP-1967存储插槽
- 函数调用 -尝试常见的getter函数实现
已使用的存储插槽
| 图案 | 插槽 |
|---|---|
| EIP-1967实施 | 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc |
| EIP-1967管理员 | 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 |
| EIP-1967信标 | 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50 |
| EIP-1822 UUPS | 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7 |
贡献
欢迎投稿!请阅读我们的 贡献指南 了解详情。
许可证
MIT许可证-请参阅 许可证 了解详情。
作者
0xGval -
______________________________________________________________________
为 模型上下文协议 生态系统。
