getGasPrice
Retrieve the current gas price for Ethereum transactions using a specified network or custom RPC URL. Supports chain ID validation for accurate network selection on the MCP Ethers Wallet server.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| 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. |
Implementation Reference
- src/tools/core.ts:76-98 (registration)Exact registration of the 'getGasPrice' MCP tool. Includes Zod input schema for optional provider and chainId parameters, and the inline async handler function that fetches the gas price via ethersService, formats it to Gwei/Wei, and returns formatted text response or error.server.tool( "getGasPrice", { 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 gasPriceWei = await ethersService.getGasPrice(provider, chainId); const gasPriceGwei = ethers.formatUnits(gasPriceWei, "gwei"); return { content: [{ type: "text", text: `Current gas price: ${gasPriceGwei} gwei (${gasPriceWei.toString()} wei)` }] }; } catch (error) { return createErrorResponse(error, 'getting gas price'); } } );
- src/tools/core.ts:84-97 (handler)Handler function for 'getGasPrice' tool: resolves provider/chainId, calls ethersService.getGasPrice(), formats using ethers.formatUnits, returns text content with Gwei and Wei values, or error response.async ({ provider, chainId }) => { try { const gasPriceWei = await ethersService.getGasPrice(provider, chainId); const gasPriceGwei = ethers.formatUnits(gasPriceWei, "gwei"); return { content: [{ type: "text", text: `Current gas price: ${gasPriceGwei} gwei (${gasPriceWei.toString()} wei)` }] }; } catch (error) { return createErrorResponse(error, 'getting gas price'); } }
- src/tools/core.ts:78-83 (schema)Input schema for 'getGasPrice' tool using Zod: optional string provider (with shared description), optional number 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." ) },