Etherscan MCP Server

Etherscan MCP Server

以太坊浏览器 v2 API MCP 服务器

huahuayu

研究与数据
访问服务器

README

Etherscan MCP 服务器

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

特性

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

要求

  • Etherscan API 密钥 (从 https://etherscan.io/myapikey 获取)

安装

  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 # 安装到 /usr/local/bin
    

用法

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

使用 stdin/stdout 通信运行服务器(默认模式):

./bin/etherscan-mcp-server

此模式适用于与通过 stdin/stdout 通信的 LLM 应用程序直接集成。

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+ 条链,请参考 https://docs.etherscan.io/etherscan-v2/getting-started/supported-chains

示例查询

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

账户和余额信息

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

区块信息

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

合约交互

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

交易信息

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

Gas 和网络

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

Token 信息

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

自定义查询

  • "跟踪过去 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 - 获取特定区块链上账户的 token 余额
  9. getTokenDetails - 获取全面的 token 信息
  10. getTransactionByHash - 按哈希获取交易详情
  11. getTransactionByBlockNumberAndIndex - 按区块号和索引获取交易
  12. getTransactionCount - 获取从地址发送的交易数量
  13. getTransactionReceipt - 检查交易收据状态
  14. getTransactionStatus - 检查合约执行状态
  15. getTransactionsByAddress - 获取按地址列出的交易列表
  16. getInternalTransactionsByAddress - 获取按地址列出的内部交易列表
  17. getTokenTransfersByAddress - 获取按地址列出的 token 转移列表
  18. getERC721Transfers - 获取按地址列出的 ERC721 token 转移列表
  19. getLatestBlockNumber - 获取最新的区块号

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

许可证

MIT

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python