Back to MCP directory
publicPublicdnsLocal runtime

EVM Blockchain

一个支持多链交互的EVM兼容区块链服务MCP服务器,提供统一的区块链操作接口,支持30+网络和ENS解析。

article

README

🚀 EVM 服务器

本项目是 EVM(Ethereum 虚拟机)服务器,支持多种区块链网络,提供丰富的资源接口和工具,可用于查询区块链数据、进行代币交互、操作智能合约等。

🚀 快速开始

开发步骤

  1. 安装依赖:npm install
  2. 启动服务器:npm run dev
  3. 调试工具:使用 ts-node 进行模块调试

配置文件

  • config/chains.ts:定义支持的区块链网络配置。
  • config/secrets.ts:存储敏感信息,如 API 密钥。

✨ 主要特性

  • 区块链数据:支持查询多个区块链网络的链信息、区块数据、交易记录等。
  • 代币交互:支持 ERC20、ERC721 和 ERC1155 代币的余额查询、转账等功能。
  • 智能合约:提供读取和写入智能合约的能力,支持 ABI 接口调用。
  • ENS 解析:支持将 ENS 名称解析为地址。
  • 工具与资源:提供了多种区块链开发工具和资源接口。

📦 安装指南

  1. 安装依赖:npm install
  2. 启动服务器:npm run dev

📚 详细文档

项目结构

mcp-evm-server/
├── src/
│   ├── index.ts                # 主标准输入输出服务器入口文件
│   ├── server/                 # 服务器相关文件
│   │   ├── http-server.ts      # 带 SSE 的 HTTP 服务器实现
│   │   └── server.ts           # 通用服务器设置
│   ├── core/
│   │   ├── chains.ts           # 链定义和工具函数
│   │   ├── resources.ts        # MCP 资源实现
│   │   ├── tools.ts            # MCP 工具实现
│   │   ├── prompts.ts          # MCP 提示实现
│   │   └── services/           # 核心区块链服务
│   │       ├── index.ts        # 操作导出
│   │       ├── balance.ts      # 平衡服务
│   │       ├── transfer.ts     # 代币转移服务
│   │       ├── utils.ts        # 工具函数
│   │       ├── tokens.ts       # 代币元数据服务
│   │       ├── contracts.ts    # 合约交互服务
│   │       ├── transactions.ts # 交易服务
│   │       └── blocks.ts       # 区块服务
│   │       └── clients.ts      # RPC 客户端工具
├── package.json
├── tsconfig.json
└── README.md

资源接口

区块链资源 URI 模式

| 资源 URI 模式 | 描述 | |-----------|-------------| | evm://{network}/chain | 特定网络的链信息 | | evm://chain | Ethereum 主网链信息 | | evm://{network}/block/{blockNumber} | 按编号查询区块数据 | | evm://{network}/block/latest | 最新区块数据 | | evm://{network}/address/{address}/balance | 查询地址的原生代币余额 | | evm://{network}/tx/{txHash} | 交易详情查询 | | evm://{network}/tx/{txHash}/receipt | 交易收据及日志 |

代币资源 URI 模式

| 资源 URI 模式 | 描述 | |-----------|-------------| | evm://{network}/token/{tokenAddress} | ERC20 代币信息 | | evm://{network}/token/{tokenAddress}/balanceOf/{address} | 查询指定地址的 ERC20 代币余额 | | evm://{network}/token/{tokenAddress}/nft/{tokenId} | 查询指定 tokenId 的 NFT 信息 | | evm://{network}/token/{tokenAddress}/metadata | 获取代币元数据 | | evm://{network}/token/{tokenAddress}/transfer | 发送 ERC20 代币 |

工具实现

核心工具类

  • ChainManager:管理多个区块链网络的连接和配置。
  • TxBuilder:交易构建器,支持多种链上操作。
  • ContractCaller:智能合约调用工具,支持 ABI 接口。

代币工具类

  • TokenBalanceQuery:用于查询代币余额。
  • TokenTransfer:实现代币转账功能。
  • NFTManager:管理 NFT 资产,支持 mint、burn 等操作。

安全注意事项

  1. 私钥安全:所有私钥操作必须在可信环境中进行,禁止明文存储或传输。
  2. 网络隔离:生产环境和测试环境应严格隔离,防止数据泄露。
  3. 权限控制:对敏感操作实施严格的权限验证。
  4. 监控审计:部署实时监控和审计系统,记录所有关键操作。

术语表

  • EVM:Ethereum 虚拟机,运行智能合约的环境。
  • ERC20:基于 Ethereum 的代币标准。
  • ERC721:NFT 标准协议。
  • ERC1155:多令牌标准协议。
  • SSE:服务器端事件,用于实时通信。

📄 许可证

本项目遵循 MIT 协议。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client