以太坊区块链数据服务

一个与Etherscan API集成的MCP服务器,提供通过标准化MCP工具访问以太坊区块链数据的功能。

  • by muzamilfaisal1
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 muzamilfaisal1/EtherscanMcp

使用说明

Etherscan MCP服务器

模型上下文协议(MCP)服务器,与Etherscan API集成,通过标准化MCP工具提供对以太坊区块链数据的访问。

特性

此MCP服务器将所有主要Etherscan API端点公开为MCP工具,分为以下类别:

✨ 多链支持:所有工具都通过可选的支持Etherscan API V2的多链功能 chainid 参数。从以太坊(1)、BSC(56)、Polygon(137)、Base、Arbitrum和60多个其他支持的链中查询数据!

🧱 账户

  • get_balance -获取单个地址的ETH余额
  • get_multiple_balances -获取多个地址的ETH余额
  • get_transactions -获取地址的正常交易列表

⛓️ 积木

  • get_block_reward -按区块号获得区块和叔叔奖励
  • get_block_countdown -获取块开采前的估计时间
  • get_block_number_by_timestamp -获取最接近时间戳的块号

💸 交易

  • get_tx_status -获取交易执行状态
  • get_internal_transactions -通过哈希或地址获取内部交易

🧠 合同

  • get_abi -获取已验证合约的合约ABI
  • get_source_code -获取已验证合同的合同源代码

⛽ 气体跟踪器

  • get_gas_oracle -获取当前天然气价格(安全、建议、快速)

💰 代币

  • get_token_supply -获取ERC-20代币的总供应量
  • get_token_balance -获取地址的ERC-20代币余额

🧮 统计

  • get_eth_price -获取以美元和BTC表示的当前ETH价格
  • get_node_count -获取以太坊节点总数

先决条件

安装

促进地方发展

  1. 克隆或下载此存储库

  2. 安装依赖项:

npm install
  1. 将您的Etherscan API密钥设置为环境变量:
# Windows (PowerShell)
$env:ETHERSCAN_API_KEY="your-api-key-here"

# Windows (CMD)
set ETHERSCAN_API_KEY=your-api-key-here

# Linux/Mac
export ETHERSCAN_API_KEY=your-api-key-here

Smithery部署

部署到Smithery时,系统将提示用户提供自己的 ETHERSCAN_API_KEY 作为Smithery配置中的环境变量。服务器将自动使用提供的API密钥。

建筑

将TypeScript编译为JavaScript:

npm run build

用法

运行服务器

服务器使用stdio传输,应在MCP客户端中配置:

npm start

MCP客户端配置

将此服务器添加到您的MCP客户端配置中(例如,在Claude Desktop的 claude_desktop_config.json):

{
  "mcpServers": {
    "etherscan-mcp": {
      "command": "node",
      "args": ["path/to/etherscan-mcp/dist/index.js"],
      "env": {
        "ETHERSCAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

重要:始终提供您自己的Etherscan API密钥。切勿将API密钥提交给版本控制。

工具使用示例

连接到MCP客户端后,您可以使用以下工具:

  • 取得平衡: get_balance 随着 address: "0x..."
  • 获取交易记录: get_transactions 随着 address: "0x..." 以及可选的分页
  • 获取汽油价格: get_gas_oracle (无需参数)
  • 获取代币余额: get_token_balance 随着 contractaddress 和 address

多链使用

所有工具都支持可选 chainid 多链查询的参数:

  • 以太坊主网: chainid: 1 (如果省略,则默认)
  • BNB智能链: chainid: 56
  • 多边形: chainid: 137
  • 基础: chainid: 8453
  • 仲裁: chainid: 42161

示例:查询BSC余额 get_balance({ address: "0x...", chainid: 56 })

请参阅 Etherscan API文档 查看支持的链的完整列表。

发展

项目结构

.
├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md

脚本

  • npm run build -编译TypeScript
  • npm start -运行已编译的服务器
  • npm run dev -在一个命令中构建和运行

API费率限制

Etherscan API有基于您的API密钥层的速率限制:

  • 免费等级:5次通话/秒
  • 标准层:10个呼叫/秒
  • 高级层:15个呼叫/秒

如果超过速率限制,服务器将返回错误。

错误处理

服务器验证所有必需的参数,并返回相应的MCP错误:

  • InvalidParams -参数缺失或无效
  • MethodNotFound -未知工具名称
  • InternalError -API调用失败或其他错误

许可证

麻省理工学院

#� �E�t�h�e�r�s�c�a�n�M�c�p� � �