Skip to main content
Glama

getFeeData

Retrieves current gas fee data for Ethereum network transactions. Specify network or chain ID to get accurate gas prices, max fees, and priority fees for transaction planning.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
providerNoOptional. 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.
chainIdNoOptional. 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

  • The handler function that implements the core logic of the getFeeData tool. It retrieves fee data using ethersService, formats gas prices, and returns a formatted text response.
    async ({ provider, chainId }) => { try { const feeData = await ethersService.getFeeData(provider, chainId); // Format the fee data for human readability const formatted = { gasPrice: feeData.gasPrice ? ethers.formatUnits(feeData.gasPrice, "gwei") + " gwei" : "Not available", maxFeePerGas: feeData.maxFeePerGas ? ethers.formatUnits(feeData.maxFeePerGas, "gwei") + " gwei" : "Not available", maxPriorityFeePerGas: feeData.maxPriorityFeePerGas ? ethers.formatUnits(feeData.maxPriorityFeePerGas, "gwei") + " gwei" : "Not available" }; return { content: [{ type: "text", text: `Fee Data: Gas Price: ${formatted.gasPrice} Max Fee Per Gas: ${formatted.maxFeePerGas} Max Priority Fee Per Gas: ${formatted.maxPriorityFeePerGas}` }] }; } catch (error) { return createErrorResponse(error, 'getting fee data'); } }
  • Zod schema defining the input parameters for the getFeeData tool: optional provider (network name or RPC URL) and chainId.
    { 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." ) },
  • The server.tool() call that registers the getFeeData tool with the MCP server, including name, input schema, and handler function.
    "getFeeData", { 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 feeData = await ethersService.getFeeData(provider, chainId); // Format the fee data for human readability const formatted = { gasPrice: feeData.gasPrice ? ethers.formatUnits(feeData.gasPrice, "gwei") + " gwei" : "Not available", maxFeePerGas: feeData.maxFeePerGas ? ethers.formatUnits(feeData.maxFeePerGas, "gwei") + " gwei" : "Not available", maxPriorityFeePerGas: feeData.maxPriorityFeePerGas ? ethers.formatUnits(feeData.maxPriorityFeePerGas, "gwei") + " gwei" : "Not available" }; return { content: [{ type: "text", text: `Fee Data: Gas Price: ${formatted.gasPrice} Max Fee Per Gas: ${formatted.maxFeePerGas} Max Priority Fee Per Gas: ${formatted.maxPriorityFeePerGas}` }] }; } catch (error) { return createErrorResponse(error, 'getting fee data'); } } );

Latest Blog Posts

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/crazyrabbitLTC/mcp-ethers-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server