使用说明
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+网络!
安装
- 克隆存储库:
git clone [your-repo-url]
cd mcp-etherscan-server
- 安装依赖项:
npm install
- 创建一个
.env根目录中的文件:
ETHERSCAN_API_KEY=your_api_key_here
- 构建项目:
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,请执行以下操作:
-
在Claude Desktop设置中,添加以下服务器配置:
{ "mcpServers": { "etherscan": { "command": "node", "args": ["/path/to/mcp-etherscan-server/build/index.js"], "env": { "ETHERSCAN_API_KEY": "your_api_key_here" } } } } -
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许可证-有关详细信息,请参阅许可证文件