getBlockDetails
Retrieve detailed information about a specific Ethereum block, including transactions, timestamps, and gas data, using block numbers or network identifiers.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| blockTag | Yes | The block number or the string 'latest' | |
| 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:421-452 (registration)Registration of the 'getBlockDetails' MCP tool, including input schema (blockTag, provider, chainId), description, and handler function that delegates to ethersService.getBlockDetails and formats the response.server.tool( "getBlockDetails", { blockTag: z.union([z.string(), z.number()]).describe( "The block number or the string 'latest'" ), 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 ({ blockTag, provider, chainId }) => { try { const blockDetails = await ethersService.getBlockDetails(blockTag, provider, chainId); return { content: [{ type: "text", text: JSON.stringify(blockDetails, null, 2) }] }; } catch (error) { return { isError: true, content: [{ type: "text", text: `Error getting block details: ${error instanceof Error ? error.message : String(error)}` }] }; } } );
- src/tools/core.ts:432-452 (handler)The handler function that executes the tool logic: fetches block details using ethersService and returns formatted JSON response or error.async ({ blockTag, provider, chainId }) => { try { const blockDetails = await ethersService.getBlockDetails(blockTag, provider, chainId); return { content: [{ type: "text", text: JSON.stringify(blockDetails, null, 2) }] }; } catch (error) { return { isError: true, content: [{ type: "text", text: `Error getting block details: ${error instanceof Error ? error.message : String(error)}` }] }; } } );
- src/tools/core.ts:423-431 (schema)Zod schema for input validation of the getBlockDetails tool parameters.{ blockTag: z.union([z.string(), z.number()]).describe( "The block number or the string 'latest'" ), 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." ) },