# EVMole

> Let your agent read function selectors, arguments, state mutability and storage from deployed EVM contract bytecode, all on your machine.

EVMole is an open-source analyzer for deployed EVM runtime bytecode, made by Maxim Andreev (cdump on GitHub). Its local MCP server gives your agent one tool, analyze_evm_bytecode, that returns structured facts about a smart contract, even one whose source was never verified: its function selectors, their inferred arguments and state mutability, its storage layout and its compiler metadata.

What you can do with it
- List a contract's function selectors and where they dispatch, including selectors handled by fallback logic.
- Infer each function's argument types and state mutability (pure, view, payable or nonpayable).
- Infer persistent and transient storage slots and their types.
- Read the compiler metadata stored in the bytecode.
- On request, get the disassembly, basic blocks and a control-flow graph. These are off by default because their output can be large.
- Page through long results with offset and limit.

How it connects
It runs on your computer with npx -y evmole-mcp@latest (Node.js 22 or newer) and talks to your agent over stdio. It needs no account and no API key. EVMole's docs show setup for Claude Code, Codex and OpenCode, plus a config block for other MCP clients. EVMole also ships a JSON command-line tool and an Agent Skill (evm-bytecode-analysis) for agents that don't use MCP.

Good to know
- You give it the runtime bytecode itself, as hex. It doesn't fetch contracts by address, read files or make network requests, and it writes no files.
- Selectors come straight from the bytecode, but arguments, mutability and storage types are inferred, not verified source facts. It doesn't decode calldata, resolve function names, verify source or decompile to source code.
- It only reads bytecode: it doesn't send transactions or touch a wallet.
- It's an MIT-licensed community project by an individual developer, also available as JavaScript, Rust, Python and Go libraries.

- Type: Plugin
- Made by: cdump
- Category: Crypto & Web3
- Formats: Local MCP
- Version: 0.9.4
- Website: https://evmole.xyz/
- Source: https://github.com/cdump/evmole/tree/HEAD/agent/mcp
- Page: https://pluginboard.ai/plugins/evmole

## Works with

- Claude
- GitHub Copilot
- Cursor
- Claude Code
- Codex
- Antigravity
- Gemini CLI
- OpenClaw
- OpenCode
- Hermes Agent

## Install

### Claude

Add to claude_desktop_config.json:

```json
{
  "mcpServers": {
    "evmole": {
      "command": "npx",
      "args": [
        "-y",
        "evmole-mcp@0.9.4"
      ]
    }
  }
}
```

### GitHub Copilot

Add to VS Code: vscode:mcp/install?%7B%22name%22%3A%22evmole%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22evmole-mcp%400.9.4%22%5D%7D

Run in your terminal:

```shell
code --add-mcp '{"name":"evmole","command":"npx","args":["-y","evmole-mcp@0.9.4"]}'
```

Copilot CLI:

```shell
copilot mcp add evmole -- npx -y evmole-mcp@0.9.4
```

### Cursor

Add to Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=evmole&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImV2bW9sZS1tY3BAMC45LjQiXX0%3D

Add to .cursor/mcp.json:

```json
{
  "mcpServers": {
    "evmole": {
      "command": "npx",
      "args": [
        "-y",
        "evmole-mcp@0.9.4"
      ]
    }
  }
}
```

### Claude Code

Run in your terminal:

```shell
claude mcp add evmole -- npx -y evmole-mcp@0.9.4
```

### Codex

Run in your terminal:

```shell
codex mcp add evmole -- npx -y evmole-mcp@0.9.4
```

### Antigravity

Add to ~/.gemini/config/mcp_config.json:

```json
{
  "mcpServers": {
    "evmole": {
      "command": "npx",
      "args": [
        "-y",
        "evmole-mcp@0.9.4"
      ]
    }
  }
}
```

### Gemini CLI

Run in your terminal:

```shell
gemini mcp add evmole npx -y evmole-mcp@0.9.4
```

### OpenClaw

In a terminal: Run openclaw mcp add evmole --command npx, with --arg before each argument (-y evmole-mcp@0.9.4) and --env NAME=value for each variable it needs.

### OpenCode

Run in your terminal:

```shell
opencode mcp add evmole -- npx -y evmole-mcp@0.9.4
```

### Hermes Agent

Add to ~/.hermes/config.yaml:

```json
{
  "mcp_servers": {
    "evmole": {
      "command": "npx",
      "args": [
        "-y",
        "evmole-mcp@0.9.4"
      ]
    }
  }
}
```

---
From Pluginboard (https://pluginboard.ai).
