Performs structured analysis of deployed EVM runtime bytecode to extract function selectors, storage access, and control-flow graphs.
Also known as cdump/evmole, evmole-mcp
- Stars
- 474
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.9.4
- Last commit
- Nov 10, 2026
- License
- MIT
What is EVMole MCP?
EVMole performs structured analysis of deployed EVM runtime bytecode to extract function selectors, storage access, and control-flow graphs.
Summary generated from the project's README
About EVMole MCP server
Analyzing deployed EVM runtime bytecode to extract structured data is what EVMole enables for developers using MCP-compatible agents. By running this local server via npx, users can provide hexadecimal bytecode to the analyze_evm_bytecode tool to uncover hidden contract details. The server operates entirely over stdio and requires no API keys, credentials, or network access, ensuring that your bytecode analysis remains private on your local machine.
Developers can use this tool to retrieve function selectors, dispatch locations, and inferred arguments or state mutability. It also provides insights into persistent and transient storage access, compiler metadata, and control-flow graphs. Because disassembly and basic blocks can produce large outputs, these features are opt-in. The tool returns structured content based on the canonical version 1 EVMole response format, allowing agents to programmatically interpret contract behavior without needing the original source code.
What you can do with it
- 1Identify contract function signaturesAsk the agent to extract function selectors and dispatch locations from a provided hex string.
- 2Map storage interaction patternsRequest an analysis of how a contract interacts with persistent and transient storage domains.
- 3Visualize contract execution logicProvide bytecode to generate a control-flow graph and disassembly for deeper inspection.
- 4Infer contract state mutabilityDetermine if specific functions are intended to modify the state of the contract.
Written from the project's README. Every use case is checked against a quote from it.
How to install EVMole MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall EVMole MCP in Claude Code
$ claude mcp add evmole -- npx -y evmole-mcpInstall EVMole MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"evmole": {
"command": "npx",
"args": [
"-y",
"evmole-mcp"
]
}
}
}Install EVMole MCP in VS Code
.vscode/mcp.json
{
"servers": {
"evmole": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"evmole-mcp"
]
}
}
}Install EVMole MCP in VS Code CLI
$ code --add-mcp '{"name":"evmole","type":"stdio","command":"npx","args":["-y","evmole-mcp"]}'Install EVMole MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"evmole": {
"command": "npx",
"args": [
"-y",
"evmole-mcp"
]
}
}
}Install EVMole MCP in Codex
$ codex mcp add evmole -- npx -y evmole-mcpInstall EVMole MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.evmole] command = "npx" args = ["-y", "evmole-mcp"]
Install EVMole MCP in Gemini CLI
$ gemini mcp add -s user evmole npx -- -y evmole-mcpInstall EVMole MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"evmole": {
"command": "npx",
"args": [
"-y",
"evmole-mcp"
]
}
}
}Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSNot checked
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHubevmole-mcp
evmole-mcp is the local MCP server for
EVMole, a structured analyzer for deployed
EVM runtime bytecode. It exposes one tool, analyze_evm_bytecode, for use by
MCP-compatible agents and clients.
Start the server
npx -y evmole-mcp@latest
Node.js 22 or newer is required.
Configure an MCP client
{
"mcpServers": {
"evmole": {
"command": "npx",
"args": ["-y", "evmole-mcp@latest"]
}
}
}
The server communicates over stdio.
Analyze runtime bytecode
The analyze_evm_bytecode tool accepts hexadecimal bytecode, optional
include feature names, and optional offset and limit values. It can
extract:
- function selectors and dispatch locations;
- inferred arguments and state mutability;
- inferred persistent and transient storage access;
- compiler metadata;
- disassembly, basic blocks, and a control-flow graph.
Function selectors can be requested on their own with selectors. Requesting
arguments or stateMutability also enables selector extraction, and the
requested function information is combined in analysis.functions. Other
requested analyses are returned in their corresponding analysis fields.
If include is omitted, the tool analyzes selectors, arguments, state
mutability, both storage domains, and metadata. Disassembly and control-flow
features are opt-in because their output can be large. The tool returns the
canonical version 1 EVMole response as structured content plus a JSON text
fallback. Check warnings and pagination before interpreting the result.
Privacy and limitations
The server uses stdio only, makes no network requests, requires no credentials, does not fetch contract addresses, and writes no files. It does not decode calldata, verify source, execute creation bytecode, or fully decompile source. Arguments, mutability, and storage descriptions are inferred rather than verified source-level facts.
Each evmole-mcp release depends on the matching exact evmole version.
See https://github.com/cdump/evmole/tree/master/agent for full setup and privacy guidance. Report problems at https://github.com/cdump/evmole/issues.
EVMole MCP questions
How do I add EVMole MCP to Claude Code?
Run claude mcp add evmole -- npx -y evmole-mcp in your terminal. Add --scope user to make it available in every project.
How do I add EVMole MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What can the tool extract from EVM bytecode?
It can extract function selectors, dispatch locations, inferred arguments, state mutability, storage access, compiler metadata, disassembly, and control-flow graphs.
Does this server make network requests or require credentials?
No, the server uses stdio only, makes no network requests, and requires no credentials.
What are the limitations of the analysis?
The tool does not decode calldata, verify source code, execute creation bytecode, or fully decompile source code.