mcpField
E
EVMole

EVMole

本地服务
github.com开发工具4754 天前更新

关于 EVMole

EVMole 的本地 MCP 服务,用于对已部署的 EVM 运行时字节码进行结构化分析。面向需要在本地检查合约字节码的 Agent 与客户端,通过 stdio 通信,不发起网络请求,也不需要凭证。

主要功能

  1. 01提取函数选择器与分发位置
  2. 02推断函数参数与状态可变性
  3. 03推断持久与瞬态存储访问
  4. 04输出编译器元数据
  5. 05提供反汇编、基本块与控制流图

适用场景

  1. 01在不访问网络的情况下分析已部署合约的字节码
  2. 02让 Agent 查看合约暴露的函数选择器与存储访问方式
  3. 03分析大型反汇编或控制流输出时使用分页参数

MCP 相关

该项目是一个 MCP 服务,通过 stdio 向 MCP 客户端暴露单个工具 analyze_evm_bytecode,用于接收十六进制字节码并返回结构化分析结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cdump-evmole": {
"command": "npx",
"args": [
"-y",
"evmole-mcp"
]
}
}
}
启动命令npx -y evmole-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmevmole-mcp0.9.4

工具

1

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否
offsetnumber否
includearray否要包含的分析功能:selectors、arguments、stateMutability、storage、transientStorage、metadata、disassembly、basicBlocks、controlFlowGraph。arguments 和 stateMutability 会隐含包含 selectors。
bytecodestring是已部署的 EVM 运行时字节码,使用十六进制表示;最大 1 MiB。

详细介绍

evmole-mcp

evmole-mcp 是EVMole的本地 MCP 服务。EVMole 是一款用于分析已部署 EVM 运行时字节码的结构化分析器。它提供一个工具 analyze_evm_bytecode,供兼容 MCP 的 Agent 和客户端使用。

启动服务

npx -y evmole-mcp@latest

需要 Node.js 22 或更高版本。

配置 MCP 客户端

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

服务通过标准输入/输出进行通信。

分析运行时字节码

analyze_evm_bytecode 工具接受十六进制 bytecode、可选的 include 功能名称,以及可选的 offset 和 limit 值。它可以提取:

  • 函数选择器和分发位置;
  • 推断出的参数和状态可变性;
  • 推断出的持久化和瞬态存储访问;
  • 编译器元数据;
  • 反汇编结果、基本块和控制流图。

可以只使用 selectors 请求函数选择器。请求 arguments 或 stateMutability 也会启用选择器提取,请求的函数信息会合并到 analysis.functions 中。其他请求的分析结果会返回在对应的 analysis 字段中。

如果省略 include,工具会分析选择器、参数、状态可变性、两个存储域和元数据。反汇编和控制流功能默认不启用,因为它们的输出可能很大。工具会以结构化内容和 JSON 文本备用形式返回规范的 EVMole 版本 1 响应。解读结果前,请先检查 warnings 和 pagination。

隐私与限制

服务仅使用标准输入/输出,不会发出网络请求,无需凭据,不会获取合约地址,也不会写入文件。它不会解码 calldata、验证源代码、执行创建字节码或完整反编译源代码。参数、可变性和存储说明均为推断结果,并非经过验证的源代码级事实。

每个 evmole-mcp 版本都依赖与之匹配的确切 evmole 版本。

完整的设置和隐私指南请参阅 https://github.com/cdump/evmole/tree/master/agent。请在 https://github.com/cdump/evmole/issues 报告问题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。