SuperAPI AI 工具集

evm-mcp-server

evm-mcp-server 是一个基于 Model Context Protocol (MCP) 的服务器,为 AI 智能体提供跨 60 多个 EVM 兼容网络的区块链服务。它通过统一的接口暴露 22 个工具和 10 个 AI 引导提示,支持读取区块链状态、与智能合约交互、转账原生代币及 ERC-20、ERC-721、ERC-1155 代币,并支持 ENS 名称解析。该服务器还具备自动从区块浏览器获取 ABI 的能力,简化了合约交互流程。

访问官网

工具介绍

用途

evm-mcp-server 是一个全面的 Model Context Protocol (MCP) 服务器,旨在为大型语言模型(LLM)和 AI 智能体提供与 EVM 兼容区块链网络交互的工具。它使 AI 智能体能够通过统一的接口与 Ethereum、Optimism、Arbitrum、Base、Polygon 等 60 多个 EVM 链进行交互,涵盖 34 个主网和 26 个测试网。

主要能力

区块链数据访问

  • 支持 60 多个 EVM 兼容网络的多链支持。
  • 获取链信息,包括 blockNumber、chainId 和 RPC。
  • 按编号、哈希或最新状态访问区块数据。
  • 获取交易详情和收据,包括解码日志。
  • 查询地址的原生代币和所有代币标准的余额。
  • 支持 ENS 解析,允许使用人类可读的以太坊地址(如 'vitalik.eth' 代替 '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045')。

代币操作

  • ERC20 代币:获取代币元数据(名称、符号、小数位、供应量),检查代币余额,在地址之间转账代币,批准支出限额。
  • NFTs (ERC721):获取集合和代币元数据,验证代币所有权,在地址之间转账 NFT,检索代币 URI 和持有数量。
  • 多代币 (ERC1155):获取代币余额和元数据,按数量转账代币,访问代币 URI。

智能合约交互

  • 通过 view/pure 函数读取合约状态。
  • 写入合约:执行任何状态更改函数,并自动获取 ABI。
  • 合约验证,以区分于 EOA。
  • 事件日志检索和过滤。
  • 从 Etherscan v2 API 自动获取 ABI,覆盖所有 60 多个网络,无需提前知道 ABI。
  • ABI 解析和验证,支持函数发现。

交易支持

  • 灵活的钱包支持:使用私钥或助记词(BIP-39)配置,支持 HD 路径。
  • 在所有支持的网络上进行原生代币转账。
  • 交易规划的 Gas 估算。
  • 交易状态和收据信息。
  • 带有描述性消息的错误处理。

消息签名能力

  • 个人消息签名:为认证和验证签署任意消息。
  • EIP-712 类型化数据签名:为无 Gas 交易和元交易签署结构化数据。
  • SIWE 支持:启用 Sign-In With Ethereum 认证流程。
  • Permit 签名:为无 Gas 代币操作创建链下批准。
  • 元交易支持:为中继服务和无 Gas 转账签署交易数据。

AI 引导工作流(提示)

  • 交易准备:规划和执行转账的指导。
  • 钱包分析:分析钱包活动和持有量的工具。
  • 智能合约探索:交互式 ABI 获取和合约分析。
  • 合约交互:在智能合约上安全执行写操作。
  • 网络信息:了解 EVM 网络和比较。
  • 批准审计:审查和管理代币批准。
  • 错误诊断:故障排除交易失败。

使用方式

先决条件

  • Bun 1.0.0 或更高版本(推荐)。
  • Node.js 20.0.0 或更高版本(如果不使用 Bun)。
  • 可选:Etherscan API 密钥用于 ABI 获取。

配置

服务器使用以下环境变量。对于写操作和 ABI 获取,必须配置这些变量:

  • 钱包配置:可以使用私钥或助记词。
    • 选项 1:私钥。
    • 选项 2:助记词(推荐用于 HD 钱包)。助记词选项支持分层确定性(HD)钱包派生:使用 BIP-39 标准助记词(12 或 24 个单词),支持 BIP-44 派生路径:m/44'/60'/0'/0/{accountIndex},EVM_ACCOUNT_INDEX 允许从同一助记词派生不同账户,默认账户索引为 0。
  • 钱包用于:转账原生代币(transfer_native 工具)、转账 ERC20 代币(transfer_erc20 工具)、批准代币支出(approve_token_spending 工具)、写入智能合约(write_contract 工具)、签署消息用于认证(sign_message 工具)、签署结构化数据用于无 Gas 交易(sign_typed_data 工具)。
  • 安全提示:切勿将私钥或助记词提交到版本控制,使用环境变量或安全的密钥管理系统,安全存储助记词,考虑为不同目的使用不同的账户索引。
  • Etherscan API 密钥:可选,但对于从区块浏览器自动获取 ABI(get_contract_abi 工具)、读取合约时自动获取 ABI(read_contract 工具带 abiJson 参数)以及 fetch_and_analyze_abi 提示是必需的。从 Etherscan 获取免费 API 密钥,同一密钥通过 Etherscan v2 API 在所有 60 多个 EVM 网络上工作。

默认配置

  • 默认链 ID:1(Ethereum Mainnet)。
  • 服务器端口:3001。
  • 服务器主机:0.0.0.0(可从任何网络接口访问)。 这些值在应用程序中硬编码。如需修改,可以编辑以下文件:链配置:src/core/chains.ts;服务器配置:src/server/http-server.ts。

运行服务器

  • 使用 npx(无需安装):可以直接使用 npx 运行 MCP EVM 服务器。
  • 本地运行服务器:使用 stdio 启动服务器(用于嵌入 CLI 工具),或使用 SSE 启动 HTTP 服务器(用于 Web 应用程序)。

连接服务器

使用任何 MCP 兼容客户端连接到此 MCP 服务器。对于测试和调试,可以使用 MCP Inspector。

从 Cursor 连接

  1. 打开 Cursor 并转到设置(左下角的齿轮图标)。
  2. 点击左侧边栏中的“Features”。
  3. 向下滚动到“MCP Servers”部分。
  4. 点击“Add new MCP server”。
  5. 输入以下详细信息:服务器名称:evm-mcp-server;类型:command;命令:npx @mcpdotdirect/evm-mcp-server。 连接后,可以直接在 Cursor 中使用 MCP 服务器的功能。服务器将出现在 MCP Servers 列表中,并可以根据需要启用/禁用。

使用 mcp.json 与 Cursor

为了更便携的配置,可以在项目根目录创建 .cursor/mcp.json 文件。将此文件放在项目的 .cursor 目录中(如果不存在则创建),Cursor 将在该项目中工作时自动检测并使用这些 MCP 服务器配置。这种方法便于:与团队共享 MCP 配置、版本控制 MCP 设置、为不同项目使用不同的服务器配置。

示例:使用 SSE 的 HTTP 模式

如果正在开发 Web 应用程序并希望连接到带有 Server-Sent Events (SSE) 的 HTTP 服务器,可以使用此配置。这直接连接到 HTTP 服务器的 SSE 端点,适用于:需要从浏览器连接到 MCP 服务器的 Web 应用程序、运行本地命令不理想的环境、在多个用户或应用程序之间共享单个 MCP 服务器实例。

使用 Claude CLI 连接

如果使用 Claude CLI,只需两个命令即可连接到 MCP 服务器。

适用场景

evm-mcp-server 适用于以下场景:

  • AI 智能体需要与区块链网络交互,例如查询余额、转账代币或与智能合约交互。
  • 开发人员希望将区块链功能集成到 AI 助手或聊天机器人中。
  • 需要跨多个 EVM 网络进行统一操作的工具。
  • 使用自然语言进行区块链操作,例如通过 Cursor 或 Claude CLI 询问“检查 vitalik.eth 的当前 ETH 余额”。

限制

  • 需要配置钱包私钥或助记词才能进行写操作。
  • 自动 ABI 获取需要 Etherscan API 密钥。
  • 默认配置硬编码,修改需要编辑源代码。
  • 安全考虑:私钥仅用于交易签名,服务器从不存储。对于生产使用,考虑实施额外的认证机制,使用 HTTPS,实施速率限制,对于高价值服务,考虑添加确认步骤。
  • 项目使用 MIT 许可证。