返回市场
以太坊扫描-MCP服务器

以太坊扫描-MCP服务器

作者:WrldRelief2 星标更新:2025-07-05

项目介绍

Etherscan MCP 服务器

Etherscan API 客户端的 Go 实现,用于 模型上下文协议 (MCP),使大型语言模型 (LLM) 应用程序能够访问 Etherscan 区块链数据。

特性

  • 访问支持多链的 Etherscan API V2
  • 使用单个 API 密钥即可访问超过 50 条支持的链
  • 支持多种区块链数据检索方法:
    • 账户余额
    • 区块信息
    • 合约数据(ABI,源代码)
    • 气象预言机
    • 代币信息
    • 交易数据
    • 更多

需求

安装

  1. 克隆仓库:

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

    ETHERSCAN_API_KEY=your_api_key_here
    
  3. 构建服务器:

    make build
    
  4. 安装服务器:

    make install # 安装到 /usr/local/bin
    

使用

默认模式(标准输入/输出)

使用标准输入/输出通信运行服务器(默认模式):

./bin/etherscan-mcp-server

此模式适用于直接集成与通过标准输入/输出通信的 LLM 应用程序。

MCP 配置:

{
  "mcpServers": {
    "etherscan-mcp-server": {
      "command": "etherscan-mcp-server",
      "env": {
        "ETHERSCAN_API_KEY": "$your_api_key"
      }
    }
   }
}

重启光标并检查是否成功:

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 服务器模式(默认是标准输入/输出模式)
  • --port <port>:指定 SSE 服务器的端口(默认为 PORT 环境变量或 4000)

连接终端(SSE 模式)

当以 SSE 模式运行时,服务器提供:

  • SSE 终端http://localhost:4000/sse

支持的链

支持 50 多条链,请参阅 https://docs.etherscan.io/etherscan-v2/getting-started/supported-chains

示例查询

您可以使用如下自然语言查询:

账户和余额信息

  • "地址 0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae 的 ETH 余额是多少?"
  • "显示 BSC 上地址 0x123abc... 的 USDT 余额"
  • "0xvitalik.eth 地址发出了多少笔交易?"

区块信息

  • "获取最新 Polygon 区块的信息"
  • "区块 17000000 中矿工的奖励是什么?"
  • "谁在以太坊上挖了区块 16900000?"

合约交互

  • "显示 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 的源代码"
  • "Polygon 上的 USDC 合约的 ABI 是什么?"
  • "调用 USDT 合约的 balanceOf 函数,参数是我的地址"

交易信息

  • "给我交易 0x123456789abcdef... 的详情"
  • "交易 0xabcdef... 是否已确认?"
  • "交易 0x789abc... 使用的 gas 价格是多少?"

气费和网络

  • "以太坊上的当前 gas 价格是多少?"
  • "现在推荐的快速交易 gas 价格是多少?"
  • "以太坊网络上有多少笔待处理交易?"

代币信息

  • "告诉我关于 LINK 代币合约的情况"
  • "地址 0x123... 拥有哪些 ERC-721 NFT?"
  • "显示 0xvitalik.eth 最近的代币转移"

自定义查询

  • "跟踪过去 1000 个区块中所有转移到 Binance 热钱包的 USDC 转移"
  • "在区块 17000000 中收到最多 ETH 的地址是哪些?"
  • "比较类似交易在以太坊和 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