getBlockNumber
Retrieve the current block number from Ethereum networks to monitor blockchain progress, verify transaction confirmations, or synchronize with network state.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Optional. Either a network name or custom RPC URL. Use getAllNetworks to see available networks and their details, or getNetwork to get info about a specific network. You can use any network name returned by these tools as a provider value. | |
| chainId | No | Optional. The chain ID to use. If provided with a named network and they don't match, the RPC's chain ID will be used. |
Implementation Reference
- src/tools/core.ts:60-72 (handler)The handler function that executes the getBlockNumber tool. It calls ethersService.getBlockNumber with the provided provider and chainId, formats the result, and handles errors using createErrorResponse.async ({ provider, chainId }) => { try { const blockNumber = await ethersService.getBlockNumber(provider, chainId); return { content: [{ type: "text", text: `Current block number: ${blockNumber}` }] }; } catch (error) { return createErrorResponse(error, 'getting block number'); } }
- src/tools/core.ts:54-59 (schema)Zod schema for input validation of the getBlockNumber tool, defining optional 'provider' (network/RPC) and 'chainId' parameters.{ provider: z.string().optional().describe(PROVIDER_DESCRIPTION), chainId: z.number().optional().describe( "Optional. The chain ID to use. If provided with a named network and they don't match, the RPC's chain ID will be used." ) },
- src/tools/core.ts:52-73 (registration)The MCP server.tool registration call for getBlockNumber, which includes the tool name, input schema, and handler function within the registerCoreTools export.server.tool( "getBlockNumber", { provider: z.string().optional().describe(PROVIDER_DESCRIPTION), chainId: z.number().optional().describe( "Optional. The chain ID to use. If provided with a named network and they don't match, the RPC's chain ID will be used." ) }, async ({ provider, chainId }) => { try { const blockNumber = await ethersService.getBlockNumber(provider, chainId); return { content: [{ type: "text", text: `Current block number: ${blockNumber}` }] }; } catch (error) { return createErrorResponse(error, 'getting block number'); } } );