
Etherscan MCP Server

2025.04.07
1
Go区块链数据访问Etherscan API 客户端金融服务
Etherscan MCP Server 是一个基于 Go 语言实现的 Etherscan API 客户端,专为 Model Context Protocol (MCP) 设计,旨在为大型语言模型(LLM)应用提供访问 Etherscan 区块链数据的能力。该服务支持多链访问,允许用户通过单一 API 密钥访问超过 50 种不同的区块链网络。核心功能包括账户余额查询、区块信息获取、合约数据检索、Gas 价格预测、代币信息查询以及交易数据获取等。
View on GitHub
Overview
基本能力
产品定位
Etherscan MCP Server 是一个为 LLM 应用设计的区块链数据访问服务,通过 MCP 协议提供对 Etherscan API 的访问能力。
核心功能
- 支持 Etherscan API V2,提供多链支持
- 使用单一 API 密钥访问超过 50 种支持的区块链
- 提供多种区块链数据检索方法,包括但不限于:
- 账户余额查询
- 区块信息获取
- 合约数据(ABI、源代码)检索
- Gas 价格预测
- 代币信息查询
- 交易数据获取
适用场景
- LLM 应用需要访问区块链数据
- 开发者需要快速集成 Etherscan API 到他们的应用中
- 需要多链支持的区块链数据分析
工具列表
- getAccountBalance - 获取特定区块链上账户的余额
- getBlockByNumber - 通过区块号获取区块信息
- getBlockRewards - 通过区块号获取区块奖励
- getContractABI - 获取已验证合约的 ABI
- getContractSourceCode - 获取已验证合约的源代码
- executeContractMethod - 执行合约读取函数
- getGasOracle - 获取当前 Gas 价格预测
- getTokenBalance - 获取特定区块链上账户的代币余额
- getTokenDetails - 获取全面的代币信息
- getTransactionByHash - 通过哈希获取交易详情
- getTransactionByBlockNumberAndIndex - 通过区块号和索引获取交易
- getTransactionCount - 获取地址发送的交易数量
- getTransactionReceipt - 检查交易收据状态
- getTransactionStatus - 检查合约执行状态
- getTransactionsByAddress - 获取地址的交易列表
- getInternalTransactionsByAddress - 获取地址的内部交易列表
- getTokenTransfersByAddress - 获取地址的代币转账列表
- getERC721Transfers - 获取地址的 ERC721 代币转账列表
- getLatestBlockNumber - 获取最新的区块号
常见问题解答
- 如何获取 Etherscan API 密钥? 访问 https://etherscan.io/myapikey 获取 API 密钥。
- 支持哪些区块链? 支持超过 50 种区块链,具体列表请参考 https://docs.etherscan.io/etherscan-v2/getting-started/supported-chains。
使用教程
使用依赖
- 需要 Etherscan API 密钥
安装教程
-
克隆仓库:
bash git clone https://github.com/huahuayu/etherscan-mcp-server.git cd etherscan-mcp-server
-
设置 Etherscan API 密钥环境变量:
bash ETHERSCAN_API_KEY=your_api_key_here
-
构建服务器:
bash make build
-
安装服务器:
bash make install # 安装到 /usr/local/bin
调试方式
默认模式(标准输入/输出)
运行服务器使用 stdin/stdout 通信(默认模式):
./bin/etherscan-mcp-server
SSE 模式
运行服务器在 Server-Sent Events 模式:
./bin/etherscan-mcp-server --sse
在 SSE 模式下,服务器监听 HTTP 并提供 SSE 端点。
服务器选项
--sse
: 启用 SSE 服务器模式(默认为 stdin/stdout 模式)--port <port>
: 指定 SSE 服务器的端口(默认为 PORT 环境变量或 4000)