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-获取已验证合约的合约ABIget_source_code-获取已验证合同的合同源代码
⛽ 气体跟踪器
get_gas_oracle-获取当前天然气价格(安全、建议、快速)
💰 代币
get_token_supply-获取ERC-20代币的总供应量get_token_balance-获取地址的ERC-20代币余额
🧮 统计
get_eth_price-获取以美元和BTC表示的当前ETH价格get_node_count-获取以太坊节点总数
先决条件
- Node.js 18+
- npm或纱线
- Etherscan API密钥(在这里买一个)
安装
促进地方发展
- 克隆或下载此存储库
- 安装依赖项:
npm install- 将您的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-hereSmithery部署
部署到Smithery时,系统将提示用户提供自己的 ETHERSCAN_API_KEY 作为Smithery配置中的环境变量。服务器将自动使用提供的API密钥。
建筑
将TypeScript编译为JavaScript:
npm run build用法
运行服务器
服务器使用stdio传输,应在MCP客户端中配置:
npm startMCP客户端配置
将此服务器添加到您的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-编译TypeScriptnpm 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� � �
