EVM Proxy MCP
Provides tools for analyzing Ethereum smart contracts, including proxy detection, implementation resolution, and security analysis.
Provides tools for analyzing Optimism smart contracts, including proxy detection, implementation resolution, and security analysis.
Provides tools for analyzing Polygon smart contracts, including proxy detection, implementation resolution, and security analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EVM Proxy MCPcheck if 0x1234... is a proxy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EVM Proxy MCP
MCP server for advanced EVM smart contract analysis with proxy detection, implementation resolution, and security analysis.
A Model Context Protocol server that provides AI assistants with tools to analyze Ethereum and EVM-compatible smart contracts.
Features
9 Proxy Pattern Detection - EIP-1967, UUPS, Beacon, Diamond, Minimal Clone, GnosisSafe, and more
Automatic Implementation Resolution - Follows proxy chains to find the actual logic contract
Admin Function Detection - Identifies privileged functions (upgrade, pause, mint, burn, etc.)
Security Analysis - Generates security notes and risk assessments
Multi-Chain Support - Ethereum, Polygon, Arbitrum, Optimism, Base, BSC, Avalanche
Related MCP server: flyto-indexer
Installation
From PyPI
pip install evm-proxy-mcpFrom Source
git clone https://github.com/0xGval/evm-proxy-mcp.git
cd evm-proxy-mcp
pip install -e .Configuration
With Claude Code
claude mcp add evm-proxy-mcp -e ETHERSCAN_API_KEY=your_api_key -- uvx evm-proxy-mcpOr with pip installation:
claude mcp add evm-proxy-mcp -e ETHERSCAN_API_KEY=your_api_key -- python -m src.serverWith Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"evm-proxy-mcp": {
"command": "uvx",
"args": ["evm-proxy-mcp"],
"env": {
"ETHERSCAN_API_KEY": "your_etherscan_api_key"
}
}
}
}Environment Variables
Variable | Description | Required |
| Your Etherscan API key (get one free) | Recommended |
| Custom RPC endpoint | Optional |
Tools
detect_proxy
Detect proxy pattern for an EVM smart contract.
Parameters:
address(required): Contract address (0x...)chain(optional): Chain name (default: ethereum)follow_chain(optional): Follow nested proxies (default: false)
Supported Proxy Patterns:
EIP-1967 Transparent Proxy
EIP-1967 Beacon Proxy
EIP-1822 UUPS Proxy
ZeppelinOS Legacy Proxy
EIP-1167 Minimal Proxy Clone
GnosisSafe Proxy
Diamond Proxy (EIP-2535)
EIP-897 DelegateProxy
Custom/Unknown Proxy
get_contract_source
Fetch verified source code for a smart contract.
Parameters:
address(required): Contract address (0x...)chain(optional): Chain name (default: ethereum)resolve_proxy(optional): Also fetch implementation source (default: true)
analyze_abi
Analyze contract ABI for security-relevant information.
Parameters:
address(required): Contract address (0x...)chain(optional): Chain name (default: ethereum)include_full_abi(optional): Include full function list (default: false)
Detects:
Upgrade functions
Pause/unpause capabilities
Mint/burn functions
Ownership management
Blacklist/whitelist
Self-destruct capability
get_contract_creation
Get contract deployer address and creation transaction.
Parameters:
address(required): Contract address (0x...)chain(optional): Chain name (default: ethereum)
full_analysis
Perform comprehensive contract analysis combining all tools.
Parameters:
address(required): Contract address (0x...)chain(optional): Chain name (default: ethereum)
list_chains
List all supported blockchain networks.
Supported Chains
Chain | Chain ID |
ethereum | 1 |
sepolia | 11155111 |
polygon | 137 |
arbitrum | 42161 |
optimism | 10 |
base | 8453 |
bsc | 56 |
avalanche | 43114 |
Example Usage
Analyze USDC Contract
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 capabilitiesCheck if Contract is a Proxy
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...Development
Setup
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]"Run Tests
pytestRun in Development Mode
python run.pyArchitecture
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 detectionHow Proxy Detection Works
The server detects proxies by:
Bytecode Analysis - Checks for EIP-1167 minimal proxy pattern in bytecode
Storage Slot Reading - Reads standardized EIP-1967 storage slots
Function Calls - Tries common implementation getter functions
Storage Slots Used
Pattern | Slot |
EIP-1967 Implementation |
|
EIP-1967 Admin |
|
EIP-1967 Beacon |
|
EIP-1822 UUPS |
|
Contributing
Contributions are welcome! Please read our Contributing Guide for details.
License
MIT License - see LICENSE for details.
Author
0xGval - GitHub
Built for the Model Context Protocol ecosystem.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xGval/evm-proxy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server