EVM MCP 服务器
一个全面的模型上下文协议 (MCP) 服务器,可在多个兼容 EVM 的网络中提供区块链服务。该服务器使 AI 代理能够通过统一的接口与以太坊、Optimism、Arbitrum、Base、Polygon 以及许多其他 EVM 链进行交互。
📋 内容
🔭 概述
MCP EVM 服务器利用模型上下文协议 (MCP) 为 AI 代理提供区块链服务。它支持多种服务,包括:
- 读取区块链状态(余额、交易、区块等)
- 与智能合约交互
- 转移代币(原生代币、ERC20、ERC721、ERC1155)
- 查询代币元数据和余额
- 跨 30 多个 EVM 网络的链特定服务
- 所有地址参数的ENS 名称解析(使用人类可读的名称,如“vitalik.eth”,而不是地址)
所有服务均通过 MCP 工具和资源的统一接口公开,方便 AI 代理发现和使用区块链功能。所有接受以太坊地址的工具也支持 ENS 域名,并在后台自动将其解析为地址。
✨ 特点
区块链数据访问
- 支持 30 多个 EVM 兼容网络的多链
- 链信息,包括 blockNumber、chainId 和 RPC
- 通过数字、哈希或最新数据来阻止数据访问
- 带有解码日志的交易详细信息和收据
- 原生代币和所有代币标准的地址余额
- ENS 解析人类可读的以太坊地址(使用“vitalik.eth”而不是“0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045”)
代币服务
- ERC20代币
- 获取代币元数据(名称、符号、小数、供应量)
- 检查代币余额
- 在地址之间转移代币
- 批准支出限额
- NFT(ERC721)
- 获取集合和令牌元数据
- 验证代币所有权
- 在地址之间转移 NFT
- 检索代币 URI 并统计持有量
- 多代币(ERC1155)
- 获取代币余额和元数据
- 转移代币数量
- 访问令牌 URI
智能合约交互
- 通过视图/纯函数读取合约状态
- 使用私钥签名编写服务
- 合同验证以区别于 EOA
- 事件日志检索和过滤
全面的交易支持
- 原生代币在所有支持网络上传输
- 交易规划的Gas 估算
- 交易状态和收据信息
- 使用描述性消息进行错误处理
🌐 支持的网络
主网
- 以太坊(ETH)
- 乐观主义(OP)
- 仲裁(ARB)
- 新仲裁庭
- 根据
- 多边形(MATIC)
- 多边形 zkEVM
- 雪崩(AVAX)
- 币安智能链(BSC)
- zkSync 时代
- 莱尼亚
- 塞洛
- Gnosis(xDai)
- 幻影(FTM)
- Filecoin(FIL)
- 月光
- 月河
- 克洛诺斯
- 滚动
- 地幔
- 蝠鲼
- 爆炸
- 弗拉克斯塔尔
- 模式
- 梅蒂斯人
- 克罗马
- 佐拉
- 极光
- 坎托
测试网
- 塞波利亚
- 乐观塞波利亚
- 塞波利亚仲裁庭
- 塞波利亚基地
- 多边形淘
- 雪崩富士
- BSC 测试网
- zkSync Sepolia
- 线状塞波利亚
- 滚动塞波利亚
- 披风
- 蝠鲼
- 爆炸棕褐色
- Fraxtal 测试网
- 模式测试网
- 梅蒂斯·塞波利亚
- 克罗马塞波利亚
- 佐拉·塞波利亚
- 塞洛·阿尔法霍雷斯
- 戈利
- 霍莱斯基
🛠️ 先决条件
- Bun 1.0.0 或更高版本
- Node.js 18.0.0 或更高版本(如果不使用 Bun)
📦安装
⚙️ 服务器配置
服务器使用以下默认配置:
- 默认链 ID :1(以太坊主网)
- 服务器端口:3001
- 服务器主机:0.0.0.0(可从任何网络接口访问)
这些值在应用程序中是硬编码的。如果需要修改它们,可以编辑以下文件:
- 对于链配置:
src/core/chains.ts
- 对于服务器配置:
src/server/http-server.ts
🚀 使用方法
使用 npx(无需安装)
您可以使用 npx 直接运行 MCP EVM 服务器,无需安装:
本地运行服务器
使用 stdio 启动服务器(用于嵌入 CLI 工具):
或者使用 SSE 为 Web 应用程序启动 HTTP 服务器:
连接到服务器
使用任何兼容 MCP 的客户端连接到此 MCP 服务器。您可以使用MCP 检查器进行测试和调试。
从光标连接
要从 Cursor 连接到 MCP 服务器:
- 打开 Cursor 并转到“设置”(左下角的齿轮图标)
- 点击左侧边栏中的“功能”
- 向下滚动到“MCP 服务器”部分
- 点击“添加新的 MCP 服务器”
- 输入以下详细信息:
- 服务器名称:
evm-mcp-server
- 类型:
command
- 命令:
npx @mcpdotdirect/evm-mcp-server
- 服务器名称:
- 点击“保存”
连接后,您可以直接在 Cursor 中使用 MCP 服务器的功能。该服务器将显示在 MCP 服务器列表中,您可以根据需要启用/禁用。
使用 mcp.json 和 Cursor
为了获得可与团队共享或跨项目使用的更便携的配置,您可以在项目的根目录中创建一个.cursor/mcp.json
文件:
将此文件放在项目的.cursor
目录中(如果不存在,请创建一个),Cursor 会在处理该项目时自动检测并使用这些 MCP 服务器配置。这种方法可以轻松实现以下操作:
- 与您的团队共享 MCP 配置
- 版本控制您的 MCP 设置
- 对不同的项目使用不同的服务器配置
示例:带有 SSE 的 HTTP 模式
如果您正在开发 Web 应用程序并希望使用服务器发送事件 (SSE) 连接到 HTTP 服务器,则可以使用以下配置:
这直接连接到 HTTP 服务器的 SSE 端点,这对于以下方面很有用:
- 需要从浏览器连接到 MCP 服务器的 Web 应用程序
- 不适合运行本地命令的环境
- 在多个用户或应用程序之间共享单个 MCP 服务器实例
要使用此配置:
- 如果不存在,请在项目根目录中创建一个
.cursor
目录 - 将上述 JSON 保存为
.cursor
目录中的mcp.json
- 重新启动 Cursor 或打开您的项目
- Cursor 将检测配置并提供启用服务器
示例:在 Cursor 中使用 MCP 服务器
使用mcp.json
配置 MCP 服务器后,您可以轻松地在 Cursor 中使用它。以下是示例工作流程:
- 在您的项目中创建一个新的 JavaScript/TypeScript 文件:
- 在 Cursor 中打开文件后,您可以要求 Cursor 执行以下操作:
- “检查 vitalik.eth 的当前 ETH 余额”
- “查看以太坊上的 USDC 价格”
- “向我展示关于乐观主义的最新区块”
- 检查 0x1234... 是否为合约地址
- Cursor 将使用 MCP 服务器执行这些操作并在您的对话中直接返回结果。
MCP 服务器处理所有区块链通信,同时允许 Cursor 通过自然语言理解和执行与区块链相关的任务。
使用 Claude CLI 进行连接
如果您使用 Claude CLI,则只需两个命令即可连接到 MCP 服务器:
示例:使用 ENS 获取代币余额
示例:解析 ENS 名称
📚 API 参考
工具
服务器为代理提供以下 MCP 工具。所有接受地址参数的工具均支持以太坊地址和 ENS 域名。
代币服务
工具名称 | 描述 | 关键参数 |
---|---|---|
get-token-info | 获取 ERC20 代币元数据 | tokenAddress (地址/ENS), network |
get-token-balance | 检查 ERC20 代币余额 | tokenAddress (地址/ENS)、 ownerAddress (地址/ENS)、 network |
transfer-token | 转移 ERC20 代币 | privateKey 、 tokenAddress (地址/ENS)、 toAddress (地址/ENS)、 amount 、 network |
approve-token-spending | 批准令牌限额 | privateKey 、 tokenAddress (地址/ENS)、 spenderAddress (地址/ENS)、 amount 、 network |
get-nft-info | 获取 NFT 元数据 | tokenAddress (地址/ENS)、 tokenId 、 network |
check-nft-ownership | 验证 NFT 所有权 | tokenAddress (地址/ENS)、 tokenId 、 ownerAddress (地址/ENS)、 network |
transfer-nft | 转移NFT | privateKey 、 tokenAddress (地址/ENS)、 tokenId 、 toAddress (地址/ENS)、 network |
get-nft-balance | 统计拥有的 NFT 数量 | tokenAddress (地址/ENS)、 ownerAddress (地址/ENS)、 network |
get-erc1155-token-uri | 获取 ERC1155 元数据 | tokenAddress (地址/ENS)、 tokenId 、 network |
get-erc1155-balance | 检查 ERC1155 余额 | tokenAddress (地址/ENS)、 tokenId 、 ownerAddress (地址/ENS)、 network |
transfer-erc1155 | 转移 ERC1155 代币 | privateKey 、 tokenAddress (地址/ENS)、 tokenId 、 amount 、 toAddress (地址/ENS)、 network |
区块链服务
工具名称 | 描述 | 关键参数 |
---|---|---|
get-chain-info | 获取网络信息 | network |
get-balance | 获取原生代币余额 | address (地址/ENS)、 network |
transfer-eth | 发送原生代币 | privateKey , to (地址/ENS), amount , network |
get-transaction | 获取交易详情 | txHash , network |
read-contract | 读取智能合约状态 | contractAddress (地址/ENS)、 abi 、 functionName 、 args 、 network |
write-contract | 写入智能合约 | contractAddress (地址/ENS)、 abi 、 functionName 、 args 、 privateKey 、 network |
is-contract | 检查地址是否为合约 | address (地址/ENS)、 network |
resolve-ens | 将 ENS 名称解析为地址 | ensName , network |
资源
服务器通过以下 MCP 资源 URI 公开区块链数据。所有接受地址的资源 URI 也支持 ENS 名称,这些名称会自动解析为地址。
区块链资源
资源 URI 模式 | 描述 |
---|---|
evm://{network}/chain | 特定网络的链信息 |
evm://chain | 以太坊主网链信息 |
evm://{network}/block/{blockNumber} | 按号码阻止数据 |
evm://{network}/block/latest | 最新区块数据 |
evm://{network}/address/{address}/balance | 原生代币余额 |
evm://{network}/tx/{txHash} | 交易详情 |
evm://{network}/tx/{txHash}/receipt | 带有日志的交易收据 |
代币资源
资源 URI 模式 | 描述 |
---|---|
evm://{network}/token/{tokenAddress} | ERC20代币信息 |
evm://{network}/token/{tokenAddress}/balanceOf/{address} | ERC20 代币余额 |
evm://{network}/nft/{tokenAddress}/{tokenId} | NFT(ERC721)代币信息 |
evm://{network}/nft/{tokenAddress}/{tokenId}/isOwnedBy/{address} | NFT 所有权验证 |
evm://{network}/erc1155/{tokenAddress}/{tokenId}/uri | ERC1155 代币 URI |
evm://{network}/erc1155/{tokenAddress}/{tokenId}/balanceOf/{address} | ERC1155 代币余额 |
🔒 安全注意事项
- 私钥仅用于交易签名,服务器永远不会存储
- 考虑实施额外的身份验证机制以供生产使用
- 在生产环境中使用 HTTPS 作为 HTTP 服务器
- 实施速率限制以防止滥用
- 对于高价值服务,考虑添加确认步骤
📁 项目结构
🛠️ 开发
要修改或扩展服务器:
- 在
src/core/services/
下的相应文件中添加新服务 - 在
src/core/tools.ts
中注册新工具 - 在
src/core/resources.ts
中注册新资源 - 在
src/core/chains.ts
中添加新的网络支持 - 要更改服务器配置,请编辑
src/server/http-server.ts
中的硬编码值
📄 许可证
该项目根据MIT 许可证条款进行授权。
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
一个综合服务器,使AI代理能够通过统一的接口与多个兼容EVM的区块链网络进行交互,支持ENS解析、代币操作和智能合约交互。
Related MCP Servers
- -securityAlicense-qualityAn MCP server providing tools for AI agents to mint ERC-20 tokens across multiple blockchains.Last updated -69JavaScriptMIT License
- -securityAlicense-qualityA comprehensive toolkit for building AI agents with blockchain capabilities, enabling interactions with multiple blockchain networks for tasks like wallet management, fund transfers, smart contract interactions, and cross-chain asset bridging.Last updated -2TypeScriptGPL 3.0
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI agents to interact with 30+ Ethereum-compatible blockchain networks, providing services like token transfers, contract interactions, and ENS resolution through a unified interface.Last updated -28230252TypeScriptMIT License
Armor Crypto MCPofficial
AsecurityAlicenseAqualityAn MCP server providing unified access to blockchain operations, bridging, swapping, and crypto trading strategies for AI agents.Last updated -20141PythonGPL 3.0