Model Context Protocol (MCP) server for interacting with EVM-compatible networks
Server has 9 well-named, read-only tools with consistent descriptions and basic Zod schemas. All tools follow verb_noun naming (get_*, resolve_*). Descriptions are present and adequate (100-200 chars typical), explaining WHAT each tool does. However, parameter descriptions lack actionable constraints (no enums, ranges, or format specs). Output schemas are not documented, LLMs cannot predict response structure. Error handling returns generic messages without recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Missing pagination for tools that could return large results (e.g., get_supported_networks). Network parameter is overloaded across all tools, accepting both names and chain IDs without clear validation rules.
Get the native token balance (ETH, MATIC, etc.) for an address
Get a block by its block number
Get information about an EVM network
Get the ERC20 token balance of an Ethereum address
Get the latest block from the EVM
Get a list of supported EVM networks
Get the balance of an ERC20 token for an address
Output schemas not documented. LLMs cannot predict response structure (block fields, transaction fields, balance format). Responses are JSON-stringified text, not structured objects.
Network parameter is overloaded (accepts both network names and chain IDs) without enum constraint or validation rules. LLMs cannot know valid values without trial-and-error.
Error messages are generic ('Error fetching chain info: ...') without recovery guidance. LLMs cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Get detailed information about a specific transaction by its hash. Includes sender, recipient, value, data, and more.
Resolve an ENS name to an Ethereum address
No tool annotations despite all tools being read-only. Missing readOnlyHint and idempotentHint metadata that would help agents optimize execution and avoid unnecessary retries.
Parameter descriptions lack actionable constraints. 'blockNumber' has no range (min/max). 'address' accepts ENS names but description doesn't clarify format or validation. No regex patterns or length limits stated.