maintenance_status
Monitor and verify the maintenance status of Arbitrum Nitro nodes by checking seconds since the last maintenance. Use this tool to ensure node health and operational efficiency.
Instructions
Check maintenance status - seconds since last maintenance (requires admin API)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chainName | No | Chain name (e.g., 'Xai', 'Arbitrum One') - will auto-resolve to RPC URL | |
| rpcUrl | No | The RPC URL of the Arbitrum node (optional if default is set) |
Implementation Reference
- src/index.ts:652-666 (handler)Main handler for the 'maintenance_status' MCP tool. Resolves RPC URL using chain name or provided URL, instantiates NitroNodeClient, calls getMaintenanceStatus(), and returns the result as JSON text content.case "maintenance_status": { const rpcUrl = await this.resolveRpcUrl( (args.rpcUrl as string) || (args.chainName as string) ); const nodeClient = new NitroNodeClient(rpcUrl); const result = await nodeClient.getMaintenanceStatus(); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
- src/index.ts:1464-1483 (registration)Tool registration and input schema definition in the getAvailableTools() method, returned by listTools handler.name: "maintenance_status", description: "Check maintenance status - seconds since last maintenance (requires admin API)", 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:412-430 (handler)Core handler method in NitroNodeClient that makes the RPC call to 'maintenance_secondsSinceLastMaintenance' and processes the response into MaintenanceStatus interface.async getMaintenanceStatus(): Promise<MaintenanceStatus> { try { const seconds = await this.makeRpcCall( "maintenance_secondsSinceLastMaintenance", [] ); return { secondsSinceLastMaintenance: typeof seconds === "number" ? seconds : parseInt(seconds, 10), }; } catch (error) { return { secondsSinceLastMaintenance: -1, error: `Maintenance status not supported on this RPC endpoint: ${ (error as Error).message }`, }; } }
- TypeScript interface defining the MaintenanceStatus return type used by the tool.export interface MaintenanceStatus { secondsSinceLastMaintenance: number; error?: string; }