anilist
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANILIST_ACCESS_TOKEN | No | Your AniList account access token. This overrides the token saved by `anilist-mcp setup` and is sent only to AniList using an Authorization header. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_my_anilist_profileA | Get the connected owner, AniList user ID, profile URL and scoreFormat. Read before score changes; never assume a 10-point scale. |
| get_my_anime_listA | Read one page of the owner anime library, including status, score, episodes, genres and notes. Follow pageInfo.hasNextPage until false for complete analysis and unwatched recommendations. |
| get_my_manga_listA | Read one page of the owner manga library, including chapter/volume progress, scores and genres. Follow hasNextPage for the complete library. |
| get_currently_watchingA | Read a paginated anime list. CURRENT is watching; set include_repeating=true to also return the separate REPEATING page for rewatches. Follow both pageInfo values. |
| search_animeA | Search anime candidates by title or browse by genre/year/popularity. Returns verified AniList IDs and current list entries. For recommendations first analyze the complete library, then exclude watched/current/repeating/dropped titles; never silently choose an ambiguous title. |
| search_mangaB | Search manga candidates or browse by genre/year. Returns IDs, chapter/volume counts and current list entries. Present ambiguous matches for the user to choose. |
| get_anime_detailsA | Verify an AniList anime ID; read episodes, genres, description, existing entry and community recommendations. Recommendations are candidates: check library membership before suggesting. |
| get_manga_detailsA | Verify an AniList manga ID; read chapter/volume counts, genres, existing entry and community recommendations. |
| get_my_anime_statisticsA | Read anime totals, mean score, formats, statuses, genres and tags to infer preferences. Combine with all pages of the anime library to recommend unseen titles and explain why each fits. |
| add_anime_to_listA | Add verified anime only if no entry exists. Explicit status required; optional fields use the account's score format. Existing entries are never overwritten by add. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| update_anime_progressA | Set absolute episodes watched on an existing anime entry. Checks known totals. Does not request status, score, dates or other field changes. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| update_anime_scoreA | Set an existing anime entry score using the owner's scoreFormat (POINT_100, POINT_10_DECIMAL, POINT_10, POINT_5 or POINT_3); zero clears. No automatic score conversion. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| add_manga_to_listA | Add verified manga only if no entry exists. Explicit status required; optional fields use the account's score format. Existing entries are never overwritten by add. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| update_manga_progressA | Set absolute chapters read on an existing manga entry. Checks known totals. Does not request status, score, dates or other field changes. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| update_manga_scoreA | Set an existing manga entry score using the owner's scoreFormat (POINT_100, POINT_10_DECIMAL, POINT_10, POINT_5 or POINT_3); zero clears. No automatic score conversion. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| update_anime_statusA | Set only the existing anime entry status: CURRENT, PLANNING, COMPLETED, PAUSED, DROPPED or REPEATING. Episode progress is not inferred. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| update_list_entryA | Patch an existing anime or manga entry by verified media ID or unambiguous title. Supports status (including manga), score, absolute progress/volumes, repeat, priority, privacy and notes. Only patch fields explicitly requested. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| remove_list_entryA | Permanently delete the connected owner list entry, including score, progress and notes; the anime/manga itself is not deleted. Always require explicit human approval of the exact preview. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
| bulk_update_entriesA | Update 1–5 existing entries, each with explicit media ID, media type and requested patch. All are checked before confirmation. After human approval, revalidates and writes sequentially, stops at first failure and reports completed/failed/skipped entries. Not an atomic transaction. Executes ordinary requested single-entry changes directly. Destructive/bulk changes return a preview; ask the user to confirm, then repeat with confirmation_id and confirmed:true. Set dry_run:true to preview any change. Omitted fields are preserved. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools split cleanly along resource+action lines, but update_list_entry overlaps heavily with the specialized update_anime_progress/score/status and update_manga_progress/score tools, leaving an agent unsure which to pick for a single-field change. get_my_anime_list and get_currently_watching also overlap, though descriptions differentiate them reasonably.
Almost all tools follow a consistent snake_case verb_noun pattern (search_, get_, add_, update_, remove_). Minor deviations exist: get_currently_watching lacks a noun, and the generic entry tools use 'entry/entries' instead of the _to_list phrasing used elsewhere.
At 19 tools this is on the heavy side, largely due to the symmetric anime/manga duplication plus focused per-field update tools. The surface is justifiable for full list management, but the generic update_list_entry makes several specialized tools feel redundant rather than earning their place.
Coverage is strong: search, details, profile, paginated list reads, statistics, add/update/remove, generic patching, and bulk updates all exist, so an agent can complete core lifecycle workflows. Minor gaps include no manga statistics equivalent and no dedicated note/privacy-only tool (though update_list_entry handles those).