以太坊区块链数据工具

一个通过Etherscan V2 API提供以太坊区块链数据工具的多链服务器,支持72+区块链网络,包括余额查询、交易历史、合约工具等功能。

  • by dennisonbertram
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 dennisonbertram/mcp-etherscan-server

使用说明

MCP以太网扫描服务器

MCP(模型上下文协议)服务器,通过以下方式提供以太坊区块链数据工具 Etherscan的V2 API.支持 72+区块链网络 使用单个API密钥,包括以太坊、Arbitrum、Base、Polygon、Optimism等等。

特性

核心功能

  • 多链支持:72多个网络(以太坊、L2、侧链、测试网)
  • 余额检查:获取任何地址的本地令牌余额
  • 交易历史记录:查看最近交易的详细信息
  • 代币转移:跟踪ERC20/ERC721/ERC1155代币转移
  • 合同工具:获取ABI、源代码、验证合约
  • 油价:监控各网络当前的天然气价格
  • ENS 分辨率:将以太坊地址解析为ENS名称

V2 API功能(新增)

  • Beacon提款:跟踪ETH 2.0质押提款
  • 令牌信息:获取全面的代币元数据和社交链接
  • 代币持有者:查看任何代币的最高持有者
  • 代币投资组合:获取地址的所有令牌余额
  • 事件日志:使用高级筛选查询合同事件
  • 网络统计:ETH供应、价格、市值数据
  • 每日统计:历史交易计数

支持的网络

72+个网络,包括:

类别 网络
以太坊 主网、沙普利亚、Holesky、Hoodi
层2 仲裁,乐观,基础,zkSync,滚动,线性,地幔,爆炸
侧链 多边形、BNB链、雪崩、Fantom、Gnosis
新兴 Berachain、Sonic、Taiko、Unichain、World、Abstract

看 docs/api/NETWORK_SUPPORT.md 查看完整列表。

先决条件

  • Node.js>=18
  • Etherscan API密钥(在https://etherscan.io/apis)
  • 一个API密钥适用于所有72+网络!

安装

  1. 克隆存储库:
git clone [your-repo-url]
cd mcp-etherscan-server
  1. 安装依赖项:
npm install
  1. 创建一个 .env 根目录中的文件:
ETHERSCAN_API_KEY=your_api_key_here
  1. 构建项目:
npm run build

运行服务器

启动服务器:

npm start

服务器将在stdio上运行,使其与Claude Desktop等MCP客户端兼容。

运作原理

该服务器实现模型上下文协议(MCP),通过Etherscan的API提供与以太坊区块链数据交互的工具。每个工具都作为MCP端点公开,兼容的客户端可以调用该端点。

可用工具(共24个)

帐户工具

工具 说明
check-balance 获取任何地址的本机令牌余额
get-transactions 带有时间戳和值的最近交易
get-token-transfers 带有代币详细信息的ERC20代币转移
get-internal-transactions 具有跟踪详细信息的内部交易
get-mined-blocks 由具有奖励的地址挖掘的区块
get-beacon-withdrawals ETH 2.0质押提款

令牌工具(V2)

工具 说明
get-token-info 全面的代币元数据和社交链接
get-token-holders 余额最高的代币持有者
get-token-portfolio 地址的所有令牌余额

合同工具

工具 说明
get-contract-abi JSON格式的合约ABI
get-contract-source 已验证的源代码和元数据
get-contract-creation 创建者地址和部署tx
verify-contract 提交合同以供验证
check-verification 检查验证状态
verify-proxy 验证代理合同
get-verified-contracts 最近验证的合同

块工具

工具 说明
get-block-details 区块信息(哈希、gas、交易)
get-block-reward 块和叔叔奖励

网络工具(V2)

工具 说明
get-gas-prices 桂目前的天然气价格
get-network-stats ETH供应、价格、市值
get-daily-stats 每日交易统计
get-logs 带有主题过滤的事件日志
list-networks 所有支持的72+网络

实用工具

工具 说明
get-ens-name 将地址解析为ENS名称

与Claude Desktop一起使用

要将此服务器添加到Claude Desktop,请执行以下操作:

  1. 在Claude Desktop设置中,添加以下服务器配置:

    {
      "mcpServers": {
        "etherscan": {
          "command": "node",
          "args": ["/path/to/mcp-etherscan-server/build/index.js"],
          "env": {
            "ETHERSCAN_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    
  2. Etherscan工具现在可以在您的Claude对话中使用

Claude中的示例用法

Check the balance of 0x742d35Cc6634C0532925a3b844Bc454e4438f44e on Ethereum
Show me recent transactions for vitalik.eth on mainnet
Get token holders for USDC on Polygon
List all supported networks

指定网络

所有工具均支持 network 参数。您可以使用:

  • 网络段塞: "ethereum", "polygon", "arbitrum", "base"
  • 链ID: 1, 137, 42161, 8453
Check balance of 0x... on arbitrum
Check balance of 0x... with chainId 42161

文档

API综合文档可在 docs/ 目录:

发展

项目结构

src/
├── index.ts              # Entry point
├── server.ts             # MCP server with 24 tools
├── config/
│   └── networks.ts       # 72+ network configurations
├── api/
│   └── v2-request-builder.ts  # V2 API request builder
├── services/
│   └── etherscanService.ts    # Etherscan API service
├── types/
│   └── index.ts          # TypeScript type definitions
└── __tests__/            # Test suites

建筑

npm run build    # Compile TypeScript
npm run test     # Run tests
npm start        # Start server

添加新网络

网络配置在 src/config/networks.ts。V2 API自动处理 chainid 参数。

V2 API迁移

此服务器使用Etherscan的V2 API,该API:

  • 使用统一的端点: https://api.etherscan.io/v2/api
  • 需要 chainid 所有请求的参数
  • 使用单个API密钥支持72+个网络
  • 弃用旧的每个网络API URL

看 Etherscan V2迁移指南 了解详情。

许可证

MIT许可证-有关详细信息,请参阅许可证文件