Server has 3 tools with complete input schemas and non-empty descriptions. Naming follows verb_noun conventions (zerochan_browse, zerochan_search, zerochan_get_entry). However, descriptions lack the specificity needed for optimal LLM tool selection, they describe WHAT the API does but don't adequately clarify WHEN to use each tool vs alternatives or what exact fields are returned. Parameter descriptions are present and mostly clear, but output schemas are not formally documented in the tool definitions (formatting helpers exist in code but are not part of the tool registration). Error handling is present but relies on generic HTTP status code mapping rather than recovery guidance. STDIO-only transport caps protocol readiness at 50, limiting overall score.
Browse all Zerochan entries with optional filtering and pagination. Queries the Zerochan global feed without any tag filter. Supports sorting by recency or popularity, filtering by dimensions or color, and pagination.
Retrieve a single Zerochan entry by ID with full metadata and image URLs. Fetches detailed information about a specific Zerochan post, including all tags, source URL, image dimensions, and links to full and preview images.
Search Zerochan entries by one or more tags with optional filtering and pagination. Queries entries by tag(s). Tags are joined with commas. Optional 'strict' mode returns only entries where the first tag is the primary tag (single tag only).
Output schema not documented in tool definitions. Formatting helpers (format_post_list_markdown, format_post_detail_markdown) exist in code but are not part of the FastMCP tool registration. LLMs cannot predict what fields will be returned.
Tool descriptions do not clarify the distinction between zerochan_browse (no filter) and zerochan_search (filter by tags). LLMs may conflate them or pick the wrong one. Description should explicitly state: 'Use this for global feed discovery; use zerochan_search for tag-specific queries.'
Error handling provides HTTP status codes and generic messages (e.g., 'Error 403: Access denied') but does not include recovery guidance or actionable next steps for LLMs. Pattern: pattern:recovery-guide requires 'User not found. Try search_users().', this server needs similar guidance for common failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 23 | - | v1 |
Parameter descriptions include example values ('e.g. red, blue, green' for color) rather than formal enum constraints where appropriate. Color parameter should be an enum or have a maxLength and example separately from description per pattern:constrained-input.
Rate limit enforcement (60 requests/minute) is noted in a constant but not enforced in the zerochan_get helper. No server-side rate limiting, circuit breaker, or backoff logic. An LLM in a retry loop could hit rate limits without recourse.