MCP server for interacting with Monad Testnet blockchain
This server exposes 2 blockchain query tools via HTTP but lacks production-grade definition quality. Both tools have minimal descriptions (under 50 chars), no parameter descriptions despite accepting inputs, and no documented output schemas. The server is a basic Express wrapper around viem without MCP SDK integration visible in the provided code. Tool names are verb-based (get_*) but descriptions are too terse to guide LLM selection. No error handling guidance, no input validation messaging, and no schema documentation for responses.
Get MON balance for an address
Get the latest block number
Parameter descriptions missing. 'address' parameter in get_balance has no description explaining format (0x-prefixed hex), length, or validation rules. LLMs cannot infer whether to pass a username, email, or raw address.
Tool descriptions are under 50 characters and lack context. 'Get MON balance for an address' does not explain when to use this vs other balance tools, what the return format is, or what happens on error. Baseline for A+ tools is 194 chars.
Output schemas not documented. Responses return JSON objects (e.g. {address, balance} and {blockNumber}) but no schema is declared in tool definitions. LLMs cannot plan downstream calls or extract fields reliably.
No error handling guidance. HTTP 500 errors return generic 'Failed to fetch balance' with no recovery hints. LLMs cannot determine if the error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
No input validation or constraint documentation. get_balance accepts any string as 'address' with no format validation. Description should specify '0x-prefixed 40-character hex string' and error responses should echo the invalid value.