关于 Etherscan MCP Server
这是一款 Go 语言 MCP 服务,为 LLM 应用提供 Etherscan 区块链数据访问。它通过 Etherscan API V2 支持 50 多条链,并提供账户、区块、合约、Gas、代币和交易查询。
主要功能
- 01查询 50 多条链的数据
- 02获取账户和代币余额
- 03检查区块与交易
- 04读取合约 ABI 和源代码
- 05查看 Gas 价格和代币详情
适用场景
- 01查询账户余额或交易记录
- 02检查区块或交易回执
- 03查看已验证合约详情
- 04对比支持链上的代币数据
MCP 相关
它将 Etherscan API V2 区块链查询作为 MCP 工具提供,支持 stdio 和 SSE 模式;使用时需要 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Etherscan MCP 服务
这是一个 Go 语言实现的 Etherscan API 客户端,适用于 Model Context Protocol (MCP),使大模型应用能够访问 Etherscan 区块链数据。
功能
- 访问 Etherscan API V2,支持多条链
- 使用一个 API 密钥即可访问 50 多条受支持的链
- 支持多种区块链数据检索方式:
- 账户余额
- 区块信息
- 合约数据(ABI、源代码)
- Gas 预言机
- 代币信息
- 交易数据
- 以及更多
要求
- Etherscan API 密钥(从 https://etherscan.io/myapikey 获取)
安装
-
克隆仓库:
git clone https://github.com/huahuayu/etherscan-mcp-server.git cd etherscan-mcp-server -
设置 Etherscan API 密钥环境变量:
ETHERSCAN_API_KEY=your_api_key_here -
构建服务:
make build -
安装服务:
make install # install to /usr/local/bin
用法
默认模式(标准输入/输出)
使用 stdin/stdout 通信运行服务(默认模式):
./bin/etherscan-mcp-server
此模式适用于直接集成通过 stdin/stdout 通信的大模型应用。
MCP 配置:
{
"mcpServers": {
"etherscan-mcp-server": {
"command": "etherscan-mcp-server",
"env": {
"ETHERSCAN_API_KEY": "$your_api_key"
}
}
}
}
重启 cursor 并检查是否成功:

SSE 模式
以 Server-Sent Events 模式运行服务:
./bin/etherscan-mcp-server --sse
在 SSE 模式下,服务会监听 HTTP 并提供一个 SSE 端点。
SSE MCP 配置:
{
"mcpServers": {
"etherscan-mcp-server": {
"url": "http://localhost:4000/sse",
"env": {
"ETHERSCAN_API_KEY": "$your_api_key"
}
}
}
}
服务选项
--sse:启用 SSE 服务模式(默认使用 stdin/stdout 模式)--port <port>:指定 SSE 服务的端口(默认使用 PORT 环境变量或 4000)
连接端点(SSE 模式)
在 SSE 模式下运行时,服务会提供:
- SSE 端点:
http://localhost:4000/sse
支持的链
支持 50 多条链,完整列表及对应的 Chain ID 请参阅 Etherscan V2 支持的链。
免费版限制与 RPC 回退说明: 根据 Etherscan 的支持链政策,部分网络无法使用免费 API 计划。这些网络包括但不限于:
- BNB Smart Chain (BSC) — Chain ID:56
- Base — Chain ID:8453
- Avalanche C-Chain — Chain ID:43114
对于这三条链,本服务内置了 RPC 回退机制:当 Etherscan API 返回
NOTOK时,会自动回退到免费的公共 RPC 端点,并使用标准 JSON-RPC 方法。在这些链上使用以下工具无需付费计划:
工具 JSON-RPC 方法 getLatestBlockNumbereth_blockNumbergetAccountBalanceeth_getBalancegetTokenBalanceeth_call(balanceOf)getTokenDetailseth_call(name/symbol/decimals)getTransactionByHasheth_getTransactionByHashgetTransactionReceipteth_getTransactionReceiptgetTransactionCounteth_getTransactionCountexecuteContractMethodeth_call使用的 RPC 端点:
- BSC:
https://binance.llamarpc.com- Base:
https://base.llamarpc.com- Avalanche C-Chain:
https://api.avax.network/ext/bc/C/rpc其他 Etherscan 专用工具(如
getContractABI、getTransactionsByAddress)在这些链上仍需 Etherscan 付费计划。
示例查询
你可以使用以下自然语言进行查询:
账户与余额信息
- “地址 0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae 的 ETH 余额是多少?”
- “显示地址 0x123abc... 在 BSC 上的 USDT 代币余额”
- “0xvitalik.eth 从这个地址发起了多少笔交易?”
区块信息
- “获取 Polygon 最新区块的信息”
- “区块 17000000 的矿工奖励是多少?”
- “谁挖出了 Ethereum 上的区块 16900000?”
合约交互
- “显示地址 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 处的源代码”
- “Polygon 上 USDC 合约的 ABI 是什么?”
- “使用我的地址作为参数,调用 USDT 合约的 balanceOf 函数”
交易信息
- “提供交易 0x123456789abcdef... 的详细信息”
- “交易 0xabcdef... 已确认了吗?”
- “交易 0x789abc... 使用的 Gas 价格是多少?”
Gas 和网络
- “Ethereum 当前的 Gas 价格是多少?”
- “现在快速交易的推荐 Gas 价格是多少?”
- “Ethereum 网络上有多少笔待处理的交易?”
代币信息
- “介绍一下 LINK 代币合约”
- “地址 0x123... 拥有哪些 ERC-721 NFT?”
- “显示 0xvitalik.eth 最近的代币转账记录”
自定义查询
- “追踪过去 1000 个区块中转入 Binance 热钱包的所有 USDC 转账”
- “区块 17000000 中哪些地址收到的 ETH 最多?”
- “比较 Ethereum 和 Arbitrum 上类似交易的 Gas 用量”
可用工具
Etherscan MCP 服务提供以下工具,用于访问区块链数据:
- getAccountBalance - 获取特定区块链上某个账户的余额
- getBlockByNumber - 根据区块编号获取区块信息
- getBlockRewards - 根据区块编号获取区块奖励
- getContractABI - 获取已验证合约的 ABI
- getContractSourceCode - 获取已验证合约的源代码
- executeContractMethod - 执行合约只读函数
- getGasOracle - 获取当前 Gas 价格预言机输出
- getTokenBalance - 获取特定区块链上某个账户的代币余额
- getTokenDetails - 获取全面的代币信息
- getTransactionByHash - 根据哈希获取交易详情
- getTransactionByBlockNumberAndIndex - 根据区块编号和索引获取交易
- getTransactionCount - 获取从某个地址发出的交易数量
- getTransactionReceipt - 检查交易收据状态
- getTransactionStatus - 检查合约执行状态
- getTransactionsByAddress - 获取某个地址的交易列表
- getInternalTransactionsByAddress - 获取某个地址的内部交易列表
- getTokenTransfersByAddress - 获取某个地址的代币转账列表
- getERC721Transfers - 获取某个地址的 ERC721 代币转账列表
- getLatestBlockNumber - 获取最新区块编号
每个工具都接受特定参数,并以结构化格式提供区块链数据。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。