MCP server template running on Cloudflare Workers that exposes anime search tools and interactive widgets
Single tool implementation with adequate naming and description but incomplete schema documentation and missing parameter descriptions. The tool 'get-anime-detail' follows a clear verb_noun pattern and has a reasonable length description (85 chars), but the input schema has gaps: the 'query' parameter lacks a top-level description in the schema object itself, and error handling guidance is minimal. Output structure is inferred from the code (returns structured content with anime data) but not formally documented. Resource registration shows good pattern adoption (ui:// URIs, CSP configuration, widget integration), but tool-specific output schema documentation is absent, which violates the documented baseline that 100% of A+ tools have documented return types.
Search for anime by title and return details from MyAnimeList
Output schema not documented. Tool returns structured content with 'text' and 'structuredContent' fields (anime details), but no formal schema definition provided in code or comments for what LLMs should expect in the response. This violates the baseline that 100% of A+ tools document return types.
Input parameter lacks top-level description in schema. The Zod schema defines the 'query' parameter with .min(1) constraint and error message, but the input schema object itself (z.object()) has no description field. While the query param has .describe('Anime title to search for'), the rubric requires 'Every parameter needs a description explaining what it controls.' The schema structure is present but meta-information is incomplete.
Error handling lacks recovery guidance. When the API call fails (e.g., network error, rate limit) or returns no results, the code returns a simple text message or structured null. No guidance is provided to the LLM on what to do next (retry? use a different search? check syntax?). Per pattern:recovery-guide, errors should tell the LLM what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
Response field naming inconsistency. The tool returns 'title_english', 'image_url', 'studios' etc. (snake_case from Jikan API), which mismatches typical camelCase conventions in structured responses. If downstream tools or the LLM expect camelCase, this forces unnecessary field mapping reasoning.