Server provides 8 EVM RPC tools with basic schemas and descriptions. All tools have input schemas (via Zod) and descriptions present, but descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameter descriptions exist but lack detail on formats, constraints, and valid ranges. No output schemas documented. Error handling is generic ('RPC call failed'). Tools follow EVM naming conventions but descriptions do not explain WHEN to use each tool or what distinguishes them. No parameter validation guidance (e.g., address format, block number format). Schemas are present but descriptions are too terse to guide LLM selection effectively.
Get current block number
Make a contract call
Get chain ID
Get account balance
Get block information
Get transaction information
Get account nonce
Trace a transaction execution with detailed steps
Descriptions are too terse (10-50 chars vs. 194-char baseline). 'Get current block number' and 'Get account balance' lack context on WHEN to use each tool, what it returns, or how it differs from similar tools.
Parameter descriptions lack format constraints and validation guidance. 'address' parameter has no mention of 0x prefix, length, or checksum requirements. 'block' parameter lacks explanation of valid formats (number, 'latest', 'pending', hex).
No output schemas documented. LLMs cannot predict what fields to expect from RPC responses (e.g., does eth_getBalance return a hex string or decimal? What fields does eth_getBlockByNumber include?). This forces LLMs to guess and parse unstructured JSON.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Error handling is generic and non-actionable. 'RPC call failed: <message>' provides no guidance on retry strategy, user-fixable issues, or recovery steps. Missing error classification (retryable vs. fatal).
No input validation or constraint documentation. Parameters like 'address' and 'block' accept free-form strings with no enum, pattern, or format constraints. LLMs will hallucinate invalid values (e.g., 'block: 999999999999').