A MCP server for trading Zora Protocol tokens on the Base Mainnet.
This server has fundamental quality gaps. Tool descriptions are present but generic (average ~60 chars, below the 194-char baseline for production tools). All 7 tools use identical or near-identical parameter schemas with minimal differentiation. Input schemas are visible and mostly complete, but descriptions lack LLM-optimization guidance on when to use each tool vs. alternatives. The critical issue is that 6 of 7 tools are exploration/read operations with trivial parameter sets (single 'limit' parameter), making them undifferentiated and hard for an LLM to reason about. Tool #7 (zoraTradeCoin) is an IRREVERSIBLE operation with no confirmation/dry-run pattern, violating the confirmation-request pattern for destructive operations. Error handling is minimal, no recovery guidance, no categorization of errors as retryable vs. fatal. No output schemas documented. The implementation is functional but falls well short of production-grade tool design.
Get a coin by its contract address from the Zora protocol
Get the last traded tokens from the Zora protocol
Get the most valuable tokens from the Zora protocol
Get the newest tokens from the Zora protocol
Get the top tokens by 24h volume from the Zora protocol
Get the top gainers from the Zora protocol
Six identical exploration tools (getTopGainers, getTop24hVolume, getMostValuable, getNewCoins, getLastTraded, getCoin) share the same schema and lack differentiation in descriptions. LLMs cannot reason about when to use one vs. another. Descriptions are 25 - 45 chars, well below the 194-char baseline, providing no guidance on use cases or distinctions.
zoraMcp_tradeCoin is an IRREVERSIBLE operation (transfers tokens on blockchain) with no dry-run, confirmation, or preview step. Agents can execute destructive trades without verification. This violates the confirmation-request pattern for irreversible operations.
No output schemas documented for any tool. LLMs cannot infer the structure of returned data. They do not know what fields to extract, making downstream composition and data extraction error-prone. Tool implementations return JSON.stringify(response), but response structure is opaque.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
Trade a coin on the Zora protocol
No error handling or recovery guidance in code. Tool implementations throw generic errors ('ZORA_API_KEY is not set', 'Tool X failed: Y'). No error categorization (retryable vs. fatal), no suggestions for next steps, no rate-limit guidance, no timeout handling.
Parameter descriptions lack constraints, ranges, and format guidance. 'limit' parameter has no stated minimum/maximum (production rubric baseline: 1 - 100). 'slippage' in zoraMcp_tradeCoin is described as 'e.g. 0.05 for 5%', an example, not a constraint. This invites LLMs to pass invalid values.
ZORA_API_KEY is injected via environment variable but not validated at startup. If missing, tools fail at runtime with a generic error. No graceful degradation, no early warning, no clear permission model defined.