MCP server for querying Marvel Champions card game data from the Cerebro API
Three tools with complete input schemas and descriptions, but significant gaps in output documentation and parameter clarity. All tools are read-only GET operations with good naming (verb_noun pattern). Schemas are present and properly typed via schemars JsonSchema derivation. However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are verbose but sometimes unclear (e.g., 'Filter incomplete cards' lacks context on what 'incomplete' means). No error handling guidance. Tool descriptions are adequate (100-150 chars) but lack WHEN/WHY context. Missing pagination guidance despite API returning lists.
Fetch a list of Marvel Champions card data
Fetch a list of Marvel Champions pack data
Fetch a list of Marvel Champions set data
Output schemas not documented. LLMs cannot predict response structure or plan downstream operations. Tools return raw text from external API without schema declaration.
No pagination guidance. Tools query external API that may return large result sets, but no limit, offset, or cursor parameters visible. Risk of context window exhaustion.
Parameter descriptions lack actionable constraints. 'Filter incomplete cards' does not explain what 'incomplete' means in the Marvel Champions domain. 'Filter by boost icon value' references format '{b}' and '{s}' but does not validate or constrain input.
Tool descriptions lack WHEN/WHY context. 'Fetch a list of Marvel Champions card data' does not explain when to call this vs get_packs or get_sets, or what use cases it enables.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | <=2025-11-25 | v2 |
No error handling guidance. CerebroError variants (SerializationError, HttpRequestError, ResponseBodyError) are caught and converted to rmcp::Error, but no recovery hints provided to LLM. E.g., 'HTTP request failed' does not suggest retry or fallback.