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

以太坊扫描-MCP服务器

作者:huahuayu8 星标更新:2025-04-07

项目介绍

Etherscan MCP Server

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

特性

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

需求

安装

  1. 克隆仓库:

    git clone https://github.com/huahuayu/etherscan-mcp-server.git
    cd etherscan-m
    
  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个区块的矿工奖励是什么?"
  • "谁挖了Ethereum上的第16900000个区块?"

合约交互

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

交易信息

  • "给我详细信息关于交易0x123456789abcdef..."
  • "交易0xabcdef...是否已被确认?"
  • "交易0x789abc...使用的gas价格是多少?"

气费和网络

  • "Ethereum上的当前气费是多少?"
  • "现在推荐的快速交易的气费是多少?"
  • "Ethereum网络上有多少笔待处理的交易?"

代币信息

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

自定义查询

  • "跟踪过去1000个区块中所有转移到Binance热钱包的USDC"
  • "在第17000000个区块中收到最多ETH的地址有哪些?"
  • "比较类似交易在Ethereum和Arbitrum上的气费使用情况"

可用工具

Etherscan MCP Server提供了以下工具来访问区块链数据:

  1. getAccountBalance - 获取特定区块链上账户的余额
  2. getBlockByNumber - 根据区块号获取区块信息
  3. getBlockRewards - 根据区块号获取区块奖励
  4. getContractABI - 获取已验证合约的ABI
  5. getContractSourceCode - 获取已验证合约的源代码
  6. executeContractMethod - 执行读取合约函数
  7. getGasOracle - 获取当前气价预言机输出
  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