node_health
Monitor Arbitrum node health status to verify operational status and connectivity. Requires admin API access for accurate health checks.
Instructions
Check Arbitrum node health status (requires admin API access - may not work with public RPCs)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rpcUrl | No | The RPC URL of the Arbitrum node (optional if default is set) | |
| chainName | No | Chain name (e.g., 'Xai', 'Arbitrum One') - will auto-resolve to RPC URL |
Implementation Reference
- src/clients/nitro-node-client.ts:70-85 (handler)Core handler function that executes the RPC call to 'arb_getHealth' to retrieve node health status and handles errors gracefully.async getHealth(): Promise<NodeHealth> { try { const response = await this.makeRpcCall("arb_getHealth", []); return { status: response.status || "unknown", lastUpdated: new Date().toISOString(), }; } catch (error) { return { status: "unavailable", lastUpdated: new Date().toISOString(), error: "Health check not supported on this RPC endpoint. This method typically requires access to a node's admin API.", }; } }
- src/index.ts:154-168 (handler)MCP server request handler for the 'node_health' tool call, which resolves the RPC URL, instantiates NitroNodeClient, calls getHealth(), and returns the JSON-formatted result.case "node_health": { const rpcUrl = await this.resolveRpcUrl( (args.rpcUrl as string) || (args.chainName as string) ); const nodeClient = new NitroNodeClient(rpcUrl); const health = await nodeClient.getHealth(); return { content: [ { type: "text", text: JSON.stringify(health, null, 2), }, ], }; }
- src/index.ts:854-873 (schema)Tool schema definition and registration in the list of available tools, including input schema for rpcUrl or chainName.{ name: "node_health", description: "Check Arbitrum node health status (requires admin API access - may not work with public RPCs)", inputSchema: { type: "object" as const, properties: { rpcUrl: { type: "string", description: "The RPC URL of the Arbitrum node (optional if default is set)", }, chainName: { type: "string", description: "Chain name (e.g., 'Xai', 'Arbitrum One') - will auto-resolve to RPC URL", }, }, required: [], },
- src/clients/nitro-node-client.ts:3-7 (schema)TypeScript interface defining the structure of the NodeHealth response object used by the getHealth() method.export interface NodeHealth { status: string; lastUpdated: string; error?: string; }