Model Context Protocol (MCP) server for interacting with EVM-compatible networks
Server has 10 tools with consistent naming (verb_noun pattern: get_*, all READ_ONLY). All tools have descriptions (avg ~80 chars, baseline 194 chars, below target). Input schemas present with Zod validation and descriptions for all parameters. However, output schemas are NOT documented, responses are returned as JSON text blobs without formal schema declarations. Error handling is basic (try/catch with error messages) but lacks recovery guidance or error classification. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only. Parameter descriptions are adequate but lack format constraints (e.g., address format, network enum values). Missing pagination for tools that could return large results (e.g., get_supported_networks).
Estimate the gas cost for a transaction
Get the native token balance (Sei) for an address
Get a block by its block number
Get information about Sei network
Get the ERC20 token balance of an EVM address
Get the latest block from the EVM
Get a list of supported EVM networks
Output schemas not documented. Tools return JSON text blobs without formal response schema declarations. LLMs cannot predict response structure for downstream chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 10 tools are read-only but lack explicit annotation. Agents cannot infer safety properties without reading descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Get the balance of an ERC20 token for an address
Get detailed information about a specific transaction by its hash. Includes sender, recipient, value, data, and more.
Get a transaction receipt by its hash
Parameter descriptions lack format constraints. 'address' param accepts any string; should specify EVM address format (0x + 40 hex chars). 'network' param accepts free-form string; should be enum of supported networks.
Error handling lacks recovery guidance. Errors return raw exception messages (e.g., 'Error fetching balance: ...') without actionable next steps or error classification (retryable vs user-fixable).
get_supported_networks lacks pagination. If network list grows large, response could exceed context limits. No limit parameter or cursor mechanism.