A Model Context Protocol (MCP) server that provides onchain tools for Claude AI, allowing it to interact with the Base blockchain and Coinbase API
Server has 9 tools with basic naming and descriptions, but significant gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (get_, list_, transfer_, call_, onramp, buy_). Descriptions are present but brief (avg ~50 chars, below 194-char baseline). Critical issue: most tools lack detailed parameter descriptions and output schema documentation. No error handling guidance visible. Schemas exist but parameter type definitions are minimal. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Composition is reasonable, tools are single-purpose, but parameter naming lacks consistency (e.g., 'contractAddress' vs 'toAddress' mixing camelCase).
Buy OpenRouter credits with USDC
Call a contract function
Get the balance of an ERC20 token
Transfer an ERC20 token
Get the vaults available for a particular asset on Morpho
Get the assets available for onramp
List NFTs owned by a specific address
Parameter descriptions are minimal or missing. Schema shows parameter names and types but lacks actionable guidance. E.g., 'contractAddress' has no format hint (is it checksummed? any chain?), 'abi' accepts 'JSON string' but no validation rules, 'functionArgs' is array with no element type or length constraints.
No output schema documentation visible. Tools return results but LLM cannot predict structure. E.g., get_morpho_vaults returns vaults but schema for vault objects (fields, types, required keys) is not documented. Breaks downstream tool chaining.
No error handling guidance. Tools marked WRITE (erc20_transfer, transfer_nft, onramp, call_contract, buy_openrouter_credits) have no documented recovery paths. LLM cannot distinguish retryable vs fatal errors or know what to do on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Onramp a specific asset
Transfer an NFT to another address
No tool annotations despite clear risk levels. WRITE tools (5 of 9) lack destructiveHint=true. READ_ONLY tools lack readOnlyHint=true. Agents cannot reason about safety or idempotency without these hints.
Parameter naming inconsistency. Mixed camelCase (contractAddress, toAddress, assetSymbol) and snake_case (country, subdivision, ownerAddress). Inconsistent naming increases LLM confusion when selecting parameters across tools.