MCP server for the AniList GraphQL API — anime/manga search, details, and personal list management.
36 tools with consistent verb-noun naming and complete JSON schemas. Descriptions present but often generic (avg ~60 chars, below 194-char baseline). All parameters typed with enums where appropriate. Critical gaps: no output schemas documented, minimal error guidance, no idempotency hints on write operations, toggle_favourite lacks required parameter validation (all four IDs optional but at least one needed).
Add media to authenticated user's list
Delete an activity
Follow another AniList user
Get activity details by ID
Get upcoming anime airing schedule
Get detailed information about a character by ID
Get list of all available genres
Get detailed information about an anime or manga by ID
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what fields does get_media return? Does search_media return IDs needed for get_media?). Violates pattern:tool and pattern:response-shaper.
toggle_favourite has four optional ID parameters (mediaId, characterId, staffId, studioId) with no constraint that at least one is required. Schema allows empty object {}. LLM cannot determine which to pass or what happens if all are omitted. Violates pattern:constrained-input.
Descriptions are generic and often under 70 characters (baseline 194 chars). Examples: 'Get list of all available genres' (34 chars), 'Get AniList site statistics' (27 chars). Lack context on WHEN to use, dependencies, or what the LLM should do with results. Violates pattern:tool-description.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Get a specific media list entry
Get authenticated user's notifications
Get media recommendations by ID
Get AniList site statistics
Get detailed information about a staff member by ID
Get detailed information about a studio by ID
Get list of all available media tags
Get forum thread details by ID
Get comments on a forum thread
Get public user profile information by username or ID
Get a user's activity feed
Get a user's anime or manga list
Get authenticated user's media list collection
Start AniList OAuth login flow
Clear stored AniList authentication token
Send a message activity to another user
Post or update a text activity
Remove media from authenticated user's list
Search for characters by name
Search for anime or manga by title
Search for staff members by name
Search for studios by name
Search for AniList users by username
Complete AniList OAuth login with redirect URL
Toggle a media, character, staff member, or studio as favourite
Unfollow another AniList user
Update a media list entry
Update authenticated user's profile information
No error handling guidance in tool descriptions. Destructive tools (delete_activity, remove_media_from_list) do not mention confirmation, dry-run, or recovery steps. Write operations (post_text_activity, add_media_to_list) lack idempotency hints. Violates pattern:confirmation-request and pattern:idempotent-operation.
OAuth flow (login_anilist → submit_anilist_redirect → logout_anilist) lacks clear dependency documentation. No description explains that login_anilist must be called first, or what submit_anilist_redirect expects from the redirect URL. Violates pattern:tool-description (dependency hints).