mcpField
E
Etherscan MCP Server

Etherscan MCP Server

本地服务
github.com/huahuayu金融数据1036 周前更新

关于 Etherscan MCP Server

这是一款 Go 语言 MCP 服务,为 LLM 应用提供 Etherscan 区块链数据访问。它通过 Etherscan API V2 支持 50 多条链,并提供账户、区块、合约、Gas、代币和交易查询。

主要功能

  1. 01查询 50 多条链的数据
  2. 02获取账户和代币余额
  3. 03检查区块与交易
  4. 04读取合约 ABI 和源代码
  5. 05查看 Gas 价格和代币详情

适用场景

  1. 01查询账户余额或交易记录
  2. 02检查区块或交易回执
  3. 03查看已验证合约详情
  4. 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 预言机
    • 代币信息
    • 交易数据
    • 以及更多

要求

安装

  1. 克隆仓库:

    git clone https://github.com/huahuayu/etherscan-mcp-server.git
    cd etherscan-mcp-server
    
  2. 设置 Etherscan API 密钥环境变量:

    ETHERSCAN_API_KEY=your_api_key_here
    
  3. 构建服务:

    make build
    
  4. 安装服务:

    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 并检查是否成功:

README 配图

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_blockNumber
getAccountBalanceeth_getBalance
getTokenBalanceeth_call (balanceOf)
getTokenDetailseth_call (name/symbol/decimals)
getTransactionByHasheth_getTransactionByHash
getTransactionReceipteth_getTransactionReceipt
getTransactionCounteth_getTransactionCount
executeContractMethodeth_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 服务提供以下工具,用于访问区块链数据:

  1. getAccountBalance - 获取特定区块链上某个账户的余额
  2. getBlockByNumber - 根据区块编号获取区块信息
  3. getBlockRewards - 根据区块编号获取区块奖励
  4. getContractABI - 获取已验证合约的 ABI
  5. getContractSourceCode - 获取已验证合约的源代码
  6. executeContractMethod - 执行合约只读函数
  7. getGasOracle - 获取当前 Gas 价格预言机输出
  8. getTokenBalance - 获取特定区块链上某个账户的代币余额
  9. getTokenDetails - 获取全面的代币信息
  10. getTransactionByHash - 根据哈希获取交易详情
  11. getTransactionByBlockNumberAndIndex - 根据区块编号和索引获取交易
  12. getTransactionCount - 获取从某个地址发出的交易数量
  13. getTransactionReceipt - 检查交易收据状态
  14. getTransactionStatus - 检查合约执行状态
  15. getTransactionsByAddress - 获取某个地址的交易列表
  16. getInternalTransactionsByAddress - 获取某个地址的内部交易列表
  17. getTokenTransfersByAddress - 获取某个地址的代币转账列表
  18. getERC721Transfers - 获取某个地址的 ERC721 代币转账列表
  19. getLatestBlockNumber - 获取最新区块编号

每个工具都接受特定参数,并以结构化格式提供区块链数据。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。