使用说明
Etherscan MCP服务器
用于的Etherscan API客户端的Go实现 模型上下文协议(MCP) 这使得LLM应用程序能够访问Etherscan区块链数据。
特性
- 访问Etherscan API V2以获得多链支持
- 使用单个API密钥 50个支撑链
- 支持多种区块链数据检索方法:
- 账户余额
- 块信息
- 合同数据(ABI,源代码)
- 燃气预言机
- 令牌信息
- 交易数据
- 还有更多
需求
- Etherscan API密钥(从https://etherscan.io/myapikey)
安装
-
克隆存储库:
git clone https://github.com/WrldRelief/etherscan-mcp-server.git cd etherscan-mcp-server -
设置Etherscan API密钥环境变量:
ETHERSCAN_API_KEY=your_api_key_here -
构建服务器:
make build -
安装服务器:
make install # install to /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"
}
}
}
}
重新启动游标并检查是否成功:
SSE模式
在服务器发送事件模式下运行服务器:
./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 env var或4000)
连接端点(SSE模式)
在SSE模式下运行时,服务器提供:
- SSE 终端:
http://localhost:4000/sse
支撑链
支持50+条链,请参考https://docs.etherscan.io/etherscan-v2/getting-started/supported-chains
查询示例
您可以使用以下自然语言查询:
账户和余额信息
- “地址0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae的ETH余额是多少?”
- “显示BSC上地址0x123abc…上USDT的代币余额”
- “0xvitalik.eth从这个地址进行了多少笔交易?”
块信息
- “获取有关最新多边形块的信息”
- “17000000区块矿工的奖励是什么?”
- “谁在以太坊上开采了16900000块?”
合同互动
- “显示0x1f9840a85d5af5f1d1762f925bdc4201f984处的源代码”
- “Polygon上USDC合约的ABI是多少?”
- “以我的地址为参数调用USDT合约的balanceOf函数”
交易信息
- “给我交易0x123456789abcdef的详细信息…”
- “交易0xabcdef…是否已确认?”
- “交易0x789abc中使用的天然气价格是多少…”
天然气和管网
- “以太坊目前的天然气价格是多少?”
- “现在快速交易的建议天然气价格是多少?”
- “以太坊网络上有多少交易悬而未决?”
令牌信息
- “告诉我关于LINK代币合约的情况”
- “ERC-721 NFT地址0x123…属于什么?”
- “显示0xvitalik.eth的最近令牌转移”
自定义查询
- “跟踪过去1000个区块中所有向币安热钱包转账的USDC”
- “在17000000区块中,哪些地址收到的ETH最多?”
- “比较以太坊与Arbitrum上类似交易的天然气使用情况”
可用工具
Etherscan MCP服务器提供以下访问区块链数据的工具:
- get账户余额 -获取特定区块链上的账户余额
- getBlockByNumber -按区块编号获取区块信息
- getBlockRewards -按区块编号获取区块奖励
- getContractABI -获取经过验证的合同的ABI
- getContractSourceCode -获取已验证合约的源代码
- 执行ContractMethod -执行读取合约功能
- getGasOracle -获取当前天然气价格预言输出
- getTokenBalance -获取特定区块链上账户的代币余额
- getTokenDetails -获取全面的代币信息
- getTransactionByHash -通过哈希获取交易详细信息
- getTransactionByBlockNumberAndIndex -按区块编号和索引获取交易
- getTransactionCount -获取从某个地址发送的交易数量
- getTransactionReceipt -检查交易收据状态
- getTransactionStatus -检查合同执行状态
- getTransactionsByAddress -按地址获取交易列表
- getInternal TransactionsByAddress -按地址获取内部交易列表
- getTokenTransfersByAddress -按地址获取代币转账列表
- getERC721传输 -按地址获取ERC721代币转移列表
- 获取最新区块编号 -获取最新的区块编号
每个工具都接受特定的参数,并以结构化格式提供区块链数据。
许可证
麻省理工学院