FindBlock MCP
Supports querying Binance Smart Chain for block numbers by timestamp, retrieving block details, and making JSON-RPC calls.
Allows querying Ethereum blockchain for block numbers by timestamp, retrieving block details, and making JSON-RPC calls to Ethereum nodes.
Supports querying Polygon blockchain for block numbers by timestamp, retrieving block details, and making JSON-RPC calls.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FindBlock MCPFind the block right before January 1, 2024 on Ethereum."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FindBlock MCP
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.
Related MCP server: thegraph-mcp
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:** 15. 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.
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kukapay/findblock-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server