Search AO3 and have fics read by a secondary model before they're recommended
ao3-mcp has well-structured tool definitions with detailed parameter descriptions and clear naming. All 5 tools follow verb_noun convention (search_works, find_tags, get_work, read_works, get_work_text). Parameter descriptions are comprehensive, especially for search_works which documents AO3 query syntax extensively. However, output schemas are not formally documented, responses are returned as strings rather than structured objects. Error handling is minimal; no recovery guidance or error classification. The server lacks tool annotations (readOnlyHint, destructiveHint) despite all tools being read-only. Descriptions are strong (100-300+ chars) but output structure documentation is absent.
Resolve fuzzy wording to canonical AO3 tag names.
Full metadata card for one work.
Raw fic text, bypassing the reader; discouraged.
Delegate reading 1-20 fics to the Gemini mini reader.
Search AO3 for works. All filters optional; combine freely.
Output schemas not documented. Tools return string responses without formal schema definitions. LLMs cannot infer response structure, field names, or types for downstream processing.
No tool annotations. All tools are read-only but lack readOnlyHint annotation. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Minimal error handling. No recovery guidance, error classification, or actionable error messages. If a search fails or API is throttled, LLM has no guidance on retry strategy.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
read_works requires GEMINI_API_KEY but tool description does not warn that calls will fail without it. Parameter 'query' lacks format guidance (max length, expected structure).
Pagination in search_works uses 'pages' parameter (max 5) but no guidance on total result count or next_cursor. LLM cannot determine if more results exist beyond page 5.