Skip to main content
Glama

EVM MCP Server

by mcpdotdirect

EVM MCP 服务器

许可证:MITEVM网络TypeScript越南

一个全面的模型上下文协议 (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)

  • 月光

  • 月河

  • 克洛诺斯

  • 滚动

  • 地幔

  • 蝠鲼

  • 爆炸

  • 弗拉克斯塔尔

  • 模式

  • 梅蒂斯人

  • 克罗马

  • 佐拉

  • 极光

  • 坎托

  • 流动

  • Lumia

测试网

  • 塞波利亚

  • 乐观塞波利亚

  • 塞波利亚仲裁庭

  • 塞波利亚基地

  • 多边形淘

  • 雪崩富士

  • BSC 测试网

  • zkSync Sepolia

  • 线状塞波利亚

  • 滚动塞波利亚

  • 披风

  • 蝠鲼

  • 爆炸棕褐色

  • Fraxtal 测试网

  • 模式测试网

  • 梅蒂斯·塞波利亚

  • 克罗马塞波利亚

  • 佐拉·塞波利亚

  • 塞洛·阿尔法霍雷斯

  • 戈利

  • 霍莱斯基

  • Flow 测试网

  • Lumia 测试网

🛠️ 先决条件

  • Bun 1.0.0 或更高版本

  • Node.js 18.0.0 或更高版本(如果不使用 Bun)

📦安装

# Clone the repository git clone https://github.com/mcpdotdirect/mcp-evm-server.git cd mcp-evm-server # Install dependencies with Bun bun install # Or with npm npm install

⚙️ 服务器配置

服务器使用以下默认配置:

  • 默认链 ID :1(以太坊主网)

  • 服务器端口:3001

  • 服务器主机:0.0.0.0(可从任何网络接口访问)

这些值在应用程序中是硬编码的。如果需要修改它们,可以编辑以下文件:

  • 对于链配置: src/core/chains.ts

  • 对于服务器配置: src/server/http-server.ts

🚀 使用方法

使用 npx(无需安装)

您可以使用 npx 直接运行 MCP EVM 服务器,无需安装:

# Run the server in stdio mode (for CLI tools) npx @mcpdotdirect/evm-mcp-server # Run the server in HTTP mode (for web applications) npx @mcpdotdirect/evm-mcp-server --http

本地运行服务器

使用 stdio 启动服务器(用于嵌入 CLI 工具):

# Start the stdio server bun start # Development mode with auto-reload bun dev

或者使用 SSE 为 Web 应用程序启动 HTTP 服务器:

# Start the HTTP server bun start:http # Development mode with auto-reload bun dev:http

连接到服务器

使用任何兼容 MCP 的客户端连接到此 MCP 服务器。您可以使用MCP 检查器进行测试和调试。

从光标连接

要从 Cursor 连接到 MCP 服务器:

  1. 打开 Cursor 并转到“设置”(左下角的齿轮图标)

  2. 点击左侧边栏中的“功能”

  3. 向下滚动到“MCP 服务器”部分

  4. 点击“添加新的 MCP 服务器”

  5. 输入以下详细信息:

    • 服务器名称: evm-mcp-server

    • 类型: command

    • 命令: npx @mcpdotdirect/evm-mcp-server

  6. 点击“保存”

连接后,您可以直接在 Cursor 中使用 MCP 服务器的功能。该服务器将显示在 MCP 服务器列表中,您可以根据需要启用/禁用。

使用 mcp.json 和 Cursor

为了获得可与团队共享或跨项目使用的更便携的配置,您可以在项目的根目录中创建一个.cursor/mcp.json文件:

{ "mcpServers": { "evm-mcp-server": { "command": "npx", "args": [ "-y", "@mcpdotdirect/evm-mcp-server" ] }, "evm-mcp-http": { "command": "npx", "args": [ "-y", "@mcpdotdirect/evm-mcp-server", "--http" ] } } }

将此文件放在项目的.cursor目录中(如果不存在,请创建一个),Cursor 会在处理该项目时自动检测并使用这些 MCP 服务器配置。这种方法可以轻松实现以下操作:

  1. 与您的团队共享 MCP 配置

  2. 版本控制您的 MCP 设置

  3. 对不同的项目使用不同的服务器配置

示例:带有 SSE 的 HTTP 模式

如果您正在开发 Web 应用程序并希望使用服务器发送事件 (SSE) 连接到 HTTP 服务器,则可以使用以下配置:

{ "mcpServers": { "evm-mcp-sse": { "url": "http://localhost:3001/sse" } } }

这直接连接到 HTTP 服务器的 SSE 端点,这对于以下方面很有用:

  • 需要从浏览器连接到 MCP 服务器的 Web 应用程序

  • 不适合运行本地命令的环境

  • 在多个用户或应用程序之间共享单个 MCP 服务器实例

要使用此配置:

  1. 如果不存在,请在项目根目录中创建一个.cursor目录

  2. 将上述 JSON 保存为.cursor目录中的mcp.json

  3. 重新启动 Cursor 或打开您的项目

  4. Cursor 将检测配置并提供启用服务器的功能

示例:在 Cursor 中使用 MCP 服务器

使用mcp.json配置 MCP 服务器后,您可以轻松地在 Cursor 中使用它。以下是示例工作流程:

  1. 在您的项目中创建一个新的 JavaScript/TypeScript 文件:

// blockchain-example.js async function main() { try { // Get ETH balance for an address using ENS console.log("Getting ETH balance for vitalik.eth..."); // When using with Cursor, you can simply ask Cursor to: // "Check the ETH balance of vitalik.eth on mainnet" // Or "Transfer 0.1 ETH from my wallet to vitalik.eth" // Cursor will use the MCP server to execute these operations // without requiring any additional code from you // This is the power of the MCP integration - your AI assistant // can directly interact with blockchain data and operations } catch (error) { console.error("Error:", error.message); } } main();
  1. 在 Cursor 中打开文件后,您可以要求 Cursor 执行以下操作:

    • “检查 vitalik.eth 的当前 ETH 余额”

    • “查看以太坊上的 USDC 价格”

    • “向我展示关于乐观主义的最新区块”

    • 检查 0x1234... 是否为合约地址

  2. Cursor 将使用 MCP 服务器执行这些操作并在您的对话中直接返回结果。

MCP 服务器处理所有区块链通信,同时允许 Cursor 通过自然语言理解和执行与区块链相关的任务。

使用 Claude CLI 进行连接

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

# Add the MCP server claude mcp add evm-mcp-server npx @mcpdotdirect/evm-mcp-server # Start Claude with the MCP server enabled claude

示例:使用 ENS 获取代币余额

// Example of using the MCP client to check a token balance using ENS const mcp = new McpClient("http://localhost:3000"); const result = await mcp.invokeTool("get-token-balance", { tokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC on Ethereum ownerAddress: "vitalik.eth", // ENS name instead of address network: "ethereum" }); console.log(result); // { // tokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // owner: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", // network: "ethereum", // raw: "1000000000", // formatted: "1000", // symbol: "USDC", // decimals: 6 // }

示例:解析 ENS 名称

// Example of using the MCP client to resolve an ENS name to an address const mcp = new McpClient("http://localhost:3000"); const result = await mcp.invokeTool("resolve-ens", { ensName: "vitalik.eth", network: "ethereum" }); console.log(result); // { // ensName: "vitalik.eth", // normalizedName: "vitalik.eth", // resolvedAddress: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", // network: "ethereum" // }

📚 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 服务器

  • 实施速率限制以防止滥用

  • 对于高价值服务,考虑添加确认步骤

📁 项目结构

mcp-evm-server/ ├── src/ │ ├── index.ts # Main stdio server entry point │ ├── server/ # Server-related files │ │ ├── http-server.ts # HTTP server with SSE │ │ └── server.ts # General server setup │ ├── core/ │ │ ├── chains.ts # Chain definitions and utilities │ │ ├── resources.ts # MCP resources implementation │ │ ├── tools.ts # MCP tools implementation │ │ ├── prompts.ts # MCP prompts implementation │ │ └── services/ # Core blockchain services │ │ ├── index.ts # Operation exports │ │ ├── balance.ts # Balance services │ │ ├── transfer.ts # Token transfer services │ │ ├── utils.ts # Utility functions │ │ ├── tokens.ts # Token metadata services │ │ ├── contracts.ts # Contract interactions │ │ ├── transactions.ts # Transaction services │ │ └── blocks.ts # Block services │ │ └── clients.ts # RPC client utilities ├── package.json ├── tsconfig.json └── README.md

🛠️ 开发

要修改或扩展服务器:

  1. src/core/services/下的相应文件中添加新服务

  2. src/core/tools.ts中注册新工具

  3. src/core/resources.ts中注册新资源

  4. src/core/chains.ts中添加新的网络支持

  5. 要更改服务器配置,请编辑src/server/http-server.ts中的硬编码值

📄 许可证

该项目根据MIT 许可证条款进行授权。

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that gives LLMs the ability to interact with Ethereum networks, manage wallets, query blockchain data, and execute smart contract operations through a standardized interface.
    Last updated -
    45
    9
    8
    MIT License
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables AI agents to interact with the Flow blockchain through RPC calls, supporting account balances, script execution, transactions, domain resolution, and contract interactions.
    Last updated -
    82
  • -
    security
    -
    license
    -
    quality
    Comprehensive Model Context Protocol server that enables AI agents to interact with 30+ Ethereum-compatible blockchain networks, supporting token transfers, smart contract interactions, and ENS name resolution through a unified interface.
    Last updated -
    1
    MIT License
  • A
    security
    A
    license
    A
    quality
    A comprehensive Model Context Protocol server that enables AI agents to interact with Starknet blockchain, query data, manage wallets, and work with smart contracts.
    Last updated -
    25
    10
    4
    MIT License

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mcpdotdirect/evm-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server