MCP server for interacting with Monad testnet blockchain, providing tools for wallet operations, smart contract deployment, NFT queries, and block information
Server has 7 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-60 chars, mostly short), and input schemas are present with Zod validation. However, descriptions are generic and lack actionable context for LLM selection. Parameter descriptions are minimal (e.g., 'Monad testnet address to check balance for' lacks format/validation hints). No output schemas documented. Error handling returns plain text without recovery guidance. Two IRREVERSIBLE tools (send-mon-transaction, deploy-mon-contract) lack confirmation/dry-run patterns. No tool annotations (readOnlyHint, destructiveHint). Tool names are verb-prefixed but lack clarity on resource type (e.g., 'send-mon-transaction' vs 'send-transaction', 'mon' is redundant given server context).
Deploy a smart contract on Monad testnet
Get a block by number on Monad testnet
Get the latest block on Monad testnet
Get MON balance for an address on Monad testnet
Query NFT information on Monad testnet
Send MON transaction on Monad testnet
Watch for smart contract events on Monad testnet
No output schemas documented. Tools return unstructured text responses (e.g., 'Block Number: ${block.number}\nHash: ${block.hash}...') instead of structured JSON objects. LLMs cannot reliably extract fields for downstream tool chaining.
Irreversible operations (send-mon-transaction, deploy-mon-contract) lack confirmation/dry-run patterns. No mechanism to prevent accidental fund transfers or contract deployments. Agents cannot safely plan multi-step operations.
Error responses are plain text without recovery guidance. E.g., 'Failed to retrieve the block. Error: ...' gives LLM no actionable next step. Should categorize as retryable/user-fixable/fatal and suggest alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. E.g., 'Monad testnet address to check balance for' does not specify format (0x-prefixed hex), length, or validation rules. LLMs cannot self-correct invalid inputs.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot determine which tools are safe to retry or which modify state without parsing descriptions.