0xendale/evm-agent-toolkit

GitHub: 0xendale/evm-agent-toolkit

该工具包为自主 AI 智能体提供确定性的、经过 schema 验证的工具接口,用于可靠地审计和优化 EVM 智能合约。

Stars: 2 | Forks: 0

# EVM MCP Server [![smithery badge](https://smithery.ai/badge/0xendale/evm-agent-toolkit)](https://smithery.ai/servers/0xendale/evm-agent-toolkit) [![evm-agent-toolkit MCP server](https://glama.ai/mcp/servers/0xendale/evm-agent-toolkit/badges/card.svg)](https://glama.ai/mcp/servers/0xendale/evm-agent-toolkit) 一个 MCP (Model Context Protocol) 服务器,为自主编程智能体提供确定性的、经过 schema 验证的工具,用于 EVM 智能合约开发——包括安全扫描、gas 性能分析、编译器诊断和交易模拟。 ## 为什么开发此项目 像 Slither 和 Foundry 这样的工具,其原始 CLI 输出包含大量噪音、具有非确定性,且经常导致 LLM 产生幻觉。本服务器会拦截这些输出,通过 Zod schema 对其进行验证,并返回任何智能体都能可靠解析的干净 JSON 数据。 ## 工具 | 工具 | 注解 | 描述 | |------|-------------|-------------| | `evm_scan_vulnerabilities` | `readOnly`, `idempotent` | 运行 Slither 分析。返回带有提取代码片段的严重性评级结果。支持 `severityFilter` 和 `maxFindings`。 | | `evm_analyze_gas_profile` | `readOnly`, `idempotent` | 运行 `forge test --gas-report`。返回结构化的、按函数划分的 gas 数据。 | | `evm_compile_and_diagnose` | `readOnly`, `idempotent` | 运行 `forge build`。在失败时返回结构化的编译器诊断信息。 | | `evm_simulate_transaction` | `readOnly`, `idempotent` | 运行 `cast call`。返回解码后的返回数据或回退原因。 | | `evm_inspect_storage_layout` | `readOnly`, `idempotent` | 运行 `forge inspect storage-layout`。返回每个状态变量的插槽/偏移量/类型——用于代理冲突和打包检查。 | | `evm_trace_call` | `readOnly`, `idempotent` | 运行 `cast call --trace`。返回包含 gas、调用类型、事件和回退帧的结构化调用树。 | | `evm_decode_calldata` | `readOnly`, `idempotent` | 通过 `cast calldata-decode`(使用签名的离线模式)或 `cast 4byte-decode`(选择器查询)解码十六进制 calldata。 | | `evm_run_tests` | `readOnly` | 运行 `forge test`(可选 `matchTest`/`matchPath`)。返回包含 gas、fuzz 运行和失败反例的按测试套件划分的结果。 | | `evm_toolchain_versions` | `readOnly`, `idempotent` | 报告 `slither`、`forge` 和 `cast` 的已安装/缺失状态及确切版本。 | ## 资源 | URI | 描述 | |-----|-------------| | `evm://patterns/vulnerabilities` | 安全漏洞模式库 | | `evm://gas/optimizations` | Gas 优化模式库 | | `evm://patterns/arbitrage` | 套利策略参考 | ## 提示词 对于不支持原生技能的客户端,技能工作流以 MCP prompt 的形式暴露。每个都嵌入了完整的 SKILL.md 工作流。 | 提示词 | 参数 | 描述 | |--------|------|-------------| | `audit_contract` | `contractPath` | 严重性评级的安全审计(漏洞扫描工作流) | | `optimize_gas` | `projectPath` | 测量的 gas 优化过程(gas 优化工作流) | | `analyze_arbitrage` | `scenario` | 抵扣费用/gas/滑点后的机会分类账(套利分析工作流) | ## 架构 ``` evm-agent-toolkit/ ├── src/ │ ├── mcp/ # MCP server entry point (stdio transport) │ ├── tools/ # Zod-validated CLI output parsers │ │ ├── slither.ts # Slither JSON → SanitizedFinding[] │ │ ├── forge.ts # Forge gas tables → ContractGas[] │ │ ├── compiler.ts # Forge build errors → CompilerDiagnostic[] │ │ ├── simulator.ts# Cast call output → SimulatorDiagnostic │ │ ├── storage.ts # Forge storage layout → StorageEntry[] │ │ ├── trace.ts # Cast call traces → TraceEvent[] │ │ ├── decoder.ts # Cast calldata decode → DecodedCalldata │ │ ├── testrunner.ts # Forge test output → TestSuite[] │ │ └── versions.ts # Toolchain --version output → ToolVersion │ ├── rules/ # Agent system prompt injections │ └── hooks/ # Lifecycle hooks (UserPromptSubmit, Statusline) ├── tests/ # Vitest unit tests for all parsers ├── bench/ # Performance benchmarks ├── evals/ # Agent evaluation framework (vulnerable contracts + eval XML) ├── skills/ # Markdown reference libraries ├── .claude-plugin/ # Claude Code plugin manifest └── gemini-extension.json # Antigravity plugin manifest ``` ## 安装说明 ``` npm install npm run build ``` ## Agent 配置 这是一个 stdio MCP server。它由 MCP 客户端生成,而不是手动启动。 **Claude Desktop / Cursor:** ``` { "mcpServers": { "evm-agent-toolkit": { "command": "npx", "args": ["-y", "@0xendale/evm-agent-toolkit"] } } } ``` **前置条件:** 必须在主机上安装 `slither`、`forge` 和 `cast`。 ## 开发说明 ``` npm run dev # Watch mode with tsx npm run test # Run all unit tests npm run bench # Run parser benchmarks npm run build # Compile TypeScript → build/ ``` ## 性能 解析器吞吐量(在 Apple Silicon 上测量): | 解析器 | 迭代次数 | 时间 | 每次调用耗时 | |--------|-----------|------|----------| | Slither (100 个检测器) | 1,000 | ~109ms | ~0.1ms | | Forge Gas 表 | 10,000 | ~32ms | ~0.003ms | ## 许可证 MIT
标签:AI智能体, EVM, MCP协议, SOC Prime, 开发工具, 智能合约, 自定义脚本