FindBlock MCP
MCP服务器,用于按时间戳检索块号,实现快速准确的链上数据查询。
特性
- 块时间戳搜索:使用可选的包容性查找特定时间戳之前/之后的块。
- 链发现:列出并检索数千个EVM链的详细信息。
- RPC代理:将JSON-RPC调用转发到任何链的最佳端点。
需求
- Python 3.10+
- 紫外线 用于依赖关系管理(推荐)
安装
- 克隆和安装:
git clone https://github.com/kukapay/findblock-mcp.git
cd findblock-mcp
uv sync - 安装到Claude桌面:
将服务器安装为Claude Desktop应用程序:
uv run mcp install main.py --name "Find Block"配置文件作为参考:
{
"mcpServers": {
"Find Block": {
"command": "uv",
"args": [ "--directory", "/path/to/findblock-mcp", "run", "main.py" ]
}
}
}将/path/to/findblock mcp替换为实际安装路径。
用法
安装后(例如,在Claude Desktop中),通过自然语言提示与工具进行交互。LLM将自动发现并调用它们。下面是详细的工具描述,包括参数和示例。
工具
1. find_block_before(chain_id: int, timestamp: int, inclusive: bool = False)
将块定位在紧邻之前(或,如果 inclusive=True)给定的UNIX时间戳。返回Markdown格式的块详细信息,包括数字、时间戳、哈希和父哈希。
参数:
chain_id(int,必填):EVM链ID。timestamp(int,必填):UNIX时间戳(自纪元以来的秒数)。inclusive(bool,可选,default=False):如果匹配,则在精确的时间戳处包含块。
示例提示:
查找2024年1月1日之前的最后一个以太坊区块。
期望输出:
### Block Details (Before Timestamp)
- **Number:** 19300000
- **Timestamp:** 1704067199 (UNIX)
- **Hash:** `0xabc123...def456`
- **Parent Hash:** `0xdef789...ghi012`2. find_block_after(chain_id: int, timestamp: int, inclusive: bool = False)
在以下情况下立即定位块 inclusive=True)给定的UNIX时间戳。返回Markdown格式的块详细信息,包括数字、时间戳、哈希和父哈希。
参数:
chain_id(int,必填):EVM链ID。timestamp(int,必填):UNIX时间戳(自纪元以来的秒数)。inclusive(bool,可选,default=False):如果匹配,则在精确的时间戳处包含块。
示例提示:
2023年3月15日12:00 UTC之后的第一个多边形块是什么?
期望输出:
### Block Details (After Timestamp)
- **Number:** 45000000
- **Timestamp:** 1678867201 (UNIX)
- **Hash:** `0x123abc...456def`
- **Parent Hash:** `0x789ghi...012jkl`3. list_chains()
检索FindBlock支持的所有可用EVM链的列表,格式为带有链名和ID的Markdown项目符号列表。
参数:
- 无
示例提示:
给我看一个我可以查询的流行EVM链列表。
期望输出:
### Available Chains
- **Ethereum** (Chain ID: 1)
- **Binance Smart Chain** (Chain ID: 56)
- **Polygon** (Chain ID: 137)
- **Avalanche C-Chain** (Chain ID: 43114)
- ... (truncated for brevity; full list includes 1,000+ chains)4. get_chain(chain_id: int)
通过链ID获取特定EVM链的详细信息,该链ID以Markdown的形式返回,并带有名称和ID。
参数:
chain_id(int,必填):EVM链ID(例如,以太坊主网为1)。
示例提示:
告诉我以太坊主网的情况。
期望输出:
### Chain Details
- **Name:** Ethereum
- **Chain ID:** 15. rpc_call(chain_id: int, method: str, params: List[Any] = [], request_id: int = 1)
将EVM JSON-RPC请求代理到指定链的最佳性能RPC端点。支持任何标准EVM方法(例如。, eth_blockNumber, eth_getBalance).返回带有成功结果或错误详细信息的Markdown。
参数:
chain_id(int,必填):EVM链ID。method(str,必填):JSON-RPC方法名称。params(List\[Any\],可选,默认值=\[\]):方法的参数数组。request_id(int,可选,默认=1):请求的唯一ID。
示例提示:
币安智能链上的当前区块号是多少?
期望输出 (成功案例):
### RPC Result
**ID:** 42
**Result:**
"0x1a2b3c4d"许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
