FindBlock
FreeNot checkedAn MCP server for retrieving block numbers by timestamp, enabling fast and precise on-chain data queries.
About
An MCP server for retrieving block numbers by timestamp, enabling fast and precise on-chain data queries.
README
An MCP server for retrieving block numbers by timestamp, enabling fast and precise on-chain data queries.
Features
- Block Timestamp Search: Find blocks before/after specific timestamps with optional inclusivity.
- Chain Discovery: List and retrieve details for thousands of EVM chains.
- RPC Proxying: Forward JSON-RPC calls to optimal endpoints for any chain.
Requirements
- Python 3.10+
- uv for dependency management (recommended)
Installation
Clone & Install:
git clone https://github.com/kukapay/findblock-mcp.git cd findblock-mcp uv syncInstall to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install main.py --name "Find Block"Configuration file as a reference:
{ "mcpServers": { "Find Block": { "command": "uv", "args": [ "--directory", "/path/to/findblock-mcp", "run", "main.py" ] } } }Replace /path/to/findblock-mcp with your actual installation path.
Usage
Once installed (e.g., in Claude Desktop), interact with the tools via natural language prompts. The LLM will automatically discover and invoke them. Below are detailed tool descriptions with parameters and examples.
Tools
1. find_block_before(chain_id: int, timestamp: int, inclusive: bool = False)
Locates the block immediately before (or at, if inclusive=True) a given UNIX timestamp. Returns Markdown-formatted block details including number, timestamp, hash, and parent hash.
Parameters:
chain_id(int, required): The EVM Chain ID.timestamp(int, required): UNIX timestamp (seconds since epoch).inclusive(bool, optional, default=False): Include the block at the exact timestamp if it matches.
Example Prompt:
Find the last Ethereum block before January 1, 2024.
Expected Output:
### 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)
Locates the block immediately after (or at, if inclusive=True) a given UNIX timestamp. Returns Markdown-formatted block details including number, timestamp, hash, and parent hash.
Parameters:
chain_id(int, required): The EVM Chain ID.timestamp(int, required): UNIX timestamp (seconds since epoch).inclusive(bool, optional, default=False): Include the block at the exact timestamp if it matches.
Example Prompt:
What's the first Polygon block after March 15, 2023, 12:00 UTC?
Expected Output:
### Block Details (After Timestamp)
- **Number:** 45000000
- **Timestamp:** 1678867201 (UNIX)
- **Hash:** `0x123abc...456def`
- **Parent Hash:** `0x789ghi...012jkl`
3. list_chains()
Retrieves a list of all available EVM chains supported by FindBlock, formatted as a Markdown bullet list with chain names and IDs.
Parameters:
- None
Example Prompt:
Show me a list of popular EVM chains I can query.
Expected Output:
### 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)
Fetches detailed information for a specific EVM chain by its Chain ID, returned as Markdown with name and ID.
Parameters:
chain_id(int, required): The EVM Chain ID (e.g., 1 for Ethereum Mainnet).
Example Prompt:
Tell me about Ethereum Mainnet.
Expected Output:
### Chain Details
- **Name:** Ethereum
- **Chain ID:** 1
5. rpc_call(chain_id: int, method: str, params: List[Any] = [], request_id: int = 1)
Proxies an EVM JSON-RPC request to the best-performing RPC endpoint for the specified chain. Supports any standard EVM method (e.g., eth_blockNumber, eth_getBalance). Returns Markdown with success results or error details.
Parameters:
chain_id(int, required): The EVM Chain ID.method(str, required): The JSON-RPC method name.params(List[Any], optional, default=[]): Array of parameters for the method.request_id(int, optional, default=1): Unique ID for the request.
Example Prompt:
What's the current block number on Binance Smart Chain?
Expected Output (success case):
### RPC Result
**ID:** 42
**Result:**
"0x1a2b3c4d"
License
This project is licensed under the MIT License - see the LICENSE file for details.
Installing FindBlock
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/kukapay/findblock-mcpFAQ
Is FindBlock MCP free?
Yes, FindBlock MCP is free — one-click install via Unyly at no cost.
Does FindBlock need an API key?
No, FindBlock runs without API keys or environment variables.
Is FindBlock hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install FindBlock in Claude Desktop, Claude Code or Cursor?
Open FindBlock on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare FindBlock with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
