🚀 Etherscan MCP 服务器
Etherscan MCP 服务器是一个基于 Go 语言实现的 Etherscan API 客户端,专为 模型上下文协议 (MCP) 量身打造。它能够让 LLM 应用程序轻松访问以太坊区块链数据,为区块链数据的获取和使用提供了极大的便利。
✨ 主要特性
- 多链支持:通过访问 Etherscan API V2,实现了对多链的支持。使用单一 API 密钥,就可以调用 50 多条支持的链。
- 丰富的数据获取方式:支持多种区块链数据的获取,涵盖账户余额查询、块信息获取、合约数据(ABI、源代码)、气价 oracle、代币信息、交易数据等众多功能。
📦 安装指南
- 克隆仓库:
git clone https://github.com/huahuayu/etherscan-mcp-server.git
- 配置和安装步骤:
- 步骤 1:若尚未安装 Go 环境,需先下载并安装。
- 步骤 2:将上述仓库克隆到本地开发环境。
- 步骤 3:在终端进入仓库目录,运行以下命令进行安装:
go install
- 步骤 4:安装完成后,确保将可执行文件添加到系统 PATH 环境变量中。
💻 使用示例
基础用法
服务操作
- 启动服务:
mcp-server start
- 停止服务:
mcp-server stop
- 重启服务:
mcp-server restart
配置文件
默认情况下,服务器会读取位于 $HOME/.etherscan-mcp/config.yaml
的配置文件。您可以编辑此文件来进行以下自定义设置:
- API 密钥:指定您的 Etherscan API 密钥(从 https://etherscan.io/myapikey 获取)。
- 监听地址:定义服务器绑定的 IP 地址。
- 监听端口:配置服务器运行的端口号。
示例命令
mcp-server get-account-balance --address 0x1234567890abcdeF123456789abcdEF123456789 --chain-id 1
mcp-server get-block-by-number --chain-id 1 --block-number 1000000
mcp-server get-token-balance --address 0x1234567890abcdeF123456789abcdEF123456789 --chain-id 1 --contract-address 0xEeeeeEeeeEeC9c7B2CBb6bb42C975a9769e0Eed0af
高级用法
该 Etherscan MCP 服务器提供了一系列工具用于访问区块链数据,每个工具都接受特定参数并返回结构化的区块链数据:
- getAccountBalance - 获取特定账户在指定链上的余额信息
- getBlockByNumber - 根据区块编号查询区块详情
- getBlockRewards - 获取指定区块的奖励信息
- getContractABI - 获取已验证合约的 ABI 接口
- getContractSourceCode - 获取已验证合约的源代码
- executeContractMethod - 执行读取类合约函数
- getGasOracle - 获取当前气价 oracle 输出数据
- getTokenBalance - 获取指定账户在特定链上的代币余额信息
- getTokenDetails - 获取代币的详细信息
- getTransactionByHash - 根据交易哈希获取交易详情
- getTransactionByBlockNumberAndIndex - 根据区块编号和索引获取交易详情
- getTransactionCount - 获取指定地址发送的交易总数
- getTransactionReceipt - 查看交易收据状态
- getTransactionStatus - 查询合约执行状态
- getTransactionsByAddress - 根据地址获取交易列表
- getInternalTransactionsByAddress - 根据地址获取内部交易列表
- getTokenTransfersByAddress - 根据地址获取代币转账记录
- getERC721Transfers - 根据地址获取 ERC721 代币的转移记录
- getLatestBlockNumber - 获取最新区块编号
📄 许可证
本项目采用 MIT 许可证。