Skip to main content
Glama
dewanshparashar

Arbitrum MCP Server

arbdebug_validateMessageNumber

Validate a specific message number on the Arbitrum MCP Server using debug API. Input includes RPC URL, chain name, and optional parameters for full validation or module root hash.

Instructions

Validate a specific message number (requires debug API)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNameNoChain name (e.g., 'Xai', 'Arbitrum One') - will auto-resolve to RPC URL
fullNoWhether to perform full validation
moduleRootNoOptional module root hash
msgNumYesMessage number to validate
rpcUrlNoThe RPC URL of the Arbitrum node (optional if default is set)

Implementation Reference

  • MCP tool handler implementation: resolves RPC URL, creates NitroNodeClient instance, calls validateMessageNumber method, and returns result as text content.
    case "arbdebug_validateMessageNumber": { const rpcUrl = await this.resolveRpcUrl( (args.rpcUrl as string) || (args.chainName as string) ); const nodeClient = new NitroNodeClient(rpcUrl); const result = await nodeClient.validateMessageNumber( args.msgNum as number, (args.full as boolean) || false, args.moduleRoot as string ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
  • src/index.ts:1403-1433 (registration)
    Tool registration in getAvailableTools(): defines name, description, and input schema for listTools response.
    name: "arbdebug_validateMessageNumber", description: "Validate a specific message number (requires debug 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", }, msgNum: { type: "number", description: "Message number to validate", }, full: { type: "boolean", description: "Whether to perform full validation", }, moduleRoot: { type: "string", description: "Optional module root hash", }, }, required: ["msgNum"], }, },
  • Input schema definition for the arbdebug_validateMessageNumber tool, specifying parameters and requirements.
    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", }, msgNum: { type: "number", description: "Message number to validate", }, full: { type: "boolean", description: "Whether to perform full validation", }, moduleRoot: { type: "string", description: "Optional module root hash", }, }, required: ["msgNum"], }, },
  • Helper method in NitroNodeClient that makes the RPC call to 'arbdebug_validateMessageNumber' and processes the response.
    async validateMessageNumber( msgNum: number, full: boolean = false, moduleRoot?: string ): Promise<ValidateBlockResult> { try { const params = [`0x${msgNum.toString(16)}`, full]; if (moduleRoot) { params.push(moduleRoot); } const result = await this.makeRpcCall( "arbdebug_validateMessageNumber", params ); return { valid: result.valid || true, latency: result.latency, globalState: result.globalState, }; } catch (error) { return { valid: false, error: `Validate message number not supported on this RPC endpoint: ${ (error as Error).message }`, }; } }

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/dewanshparashar/arbitrum-mcp'

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