MCP server for Pokémon TCG Pocket card search
Single tool 'search_cards' has a well-structured schema with proper enums, nullable fields, and pagination support. Description is comprehensive (194 chars) and explains fuzzy matching, semantic search, and language handling. Input schema is complete with type definitions, constraints (limit 1-50, offset ≥0), and enum values for type/category/rarity/stage. However, output schema is not documented, the tool returns JSON via structuredContent but no schema is provided to guide LLM on response structure. Error handling returns isError flag but lacks recovery guidance. Tool naming is clear and verb-based (search_cards). Overall solid for a single-tool server, but missing output documentation and error recovery patterns.
Search Pokémon TCG Pocket cards. All fields except `language` are optional; omitted or null fields match everything. Enum fields filter exactly, `name` and `set` filter fuzzily, `effect` and `attack` rank by meaning. Enum values are English in every language. Results with `fallbackLanguage` exist only in that language.
Output schema not documented. Tool returns structuredContent with search results but no schema is provided to guide LLM on response fields (e.g., card structure, pagination metadata). LLMs cannot plan downstream operations without knowing response shape.
Error responses lack recovery guidance. When search fails, tool returns isError=true with a message, but does not suggest next steps (e.g., 'Try with fewer filters' or 'Check language parameter'). LLM has no actionable path forward.
Semantic search parameters ('effect', 'attack') lack clarity on ranking vs filtering. Description says 'rank by meaning' but does not explain whether results are sorted by relevance or filtered to exact matches. LLM may misuse these parameters.
No documented limit on result size. While limit param caps at 50, description does not state this cap or explain why (context window protection). LLM may expect larger result sets.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Language parameter is required but no enum of supported languages is provided in schema. LLM must guess valid values or fail. Should include enum or reference to supported language list.