MCP.Market

AniList MCP Server (Unofficial)

by Grinv·io.github.Grinv/anilist-mcp-server·v0.11.0·1 stars

MCP server for the AniList GraphQL API — anime/manga search, details, and personal list management.

B75/100grade B
What users say
No reviews yet
Be the first
Safety scan
B75/100

full report

Adoption
Growing

1 stars197 downloads/wk

Reviews

Write one

Nobody has reviewed AniList MCP Server (Unofficial) yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

AniList MCP Server (Unofficial) tools (50, 12 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_list_entry
  • delete_activitywrite action

    [Requires login] Delete an activity post the authenticated user owns. This cannot be undone, and calling it again on an already-deleted id errors as not found rather than silently succeeding.

  • delete_threadwrite action

    [Requires login] Delete a forum thread the authenticated user owns, by its ID (from search_thread, get_thread, or the id returned by post_thread). This cannot be undone, and calling it again on an already-deleted id errors as not found rather than silently succeeding.

  • delete_thread_commentwrite action

    [Requires login] Delete a comment the authenticated user owns, by its ID (from get_thread_comments or the id returned by post_thread_comment). This cannot be undone, and calling it again on an already-deleted id errors as not found rather than silently succeeding.

  • get_activity

    Get a single AniList activity post (list update, text post, or message) by its ID, including `replyCount`, `likeCount`, and `isLiked`.

  • get_anime_schedule

    Get upcoming (or a specific title's) episode air times, soonest-airing first (confirmed live) \u2014 or, with `notYetAired: false`, already-aired ones newest first. Omit `mediaId` for the site-wide upcoming schedule, or pass it (from search_media/get_media) to get one title's next-episode air time. Set `airingAfter`/`airingBefore` for a date window instead (e.g. what airs this week, or what aired

  • get_authorized_user
  • get_character

    Get a character's profile by AniList character ID: name, image, description, and the anime/manga they appear in (`media`, most popular first, with their `characterRole` \u2014 MAIN/SUPPORTING/BACKGROUND \u2014 in each). Use search_character first to resolve a name to its ID. `media` is paginated (`page`/`perPage`, max 25): a long-running franchise character can appear in far more titles than one p

  • get_full_user_info

    Get an AniList user's profile AND statistics in a single call \u2014 use this instead of calling get_user_profile and get_user_stats separately. Like get_user_profile, this also returns the target's account settings (notifications, list display, etc.) regardless of who's authenticated \u2014 AniList doesn't viewer-gate those fields. Accepts an exact AniList username directly \u2014 no need to call

  • get_genres

    List every genre name AniList uses to tag anime/manga (e.g. Action, Comedy, Slice of Life). Call this before filtering search_media by genre, so you pass a name AniList actually recognizes.

  • get_media
  • get_media_characters

    List an anime/manga's characters with their role (MAIN/SUPPORTING/BACKGROUND) and, for anime, their voice actors. Use search_media first to resolve a title to its AniList ID. Grouped by role \u2014 MAIN first, then SUPPORTING, then BACKGROUND (confirmed live) \u2014 and in AniList's own relevance order within each. Voice actors come back in every dub language unless you set `voiceActorLanguage`; s

  • get_media_relations

    Get the anime/manga related to a given title, each with its `relationType`: PREQUEL, SEQUEL, PARENT, SIDE_STORY, SPIN_OFF, ALTERNATIVE, SUMMARY, CHARACTER, ADAPTATION (this title adapted into another format), SOURCE (the material this title was adapted from), COMPILATION, CONTAINS, SAME_UNIVERSE or OTHER. Use search_media first to resolve a title to its AniList ID.

  • get_media_reviews

    List user-written reviews for an anime or manga, most-helpful-voted first (confirmed live: ordered by `rating`, not `score` \u2014 see those fields' own descriptions). Always includes `summary` (a short excerpt); set `includeBody` to also fetch each review's full text (can be long \u2014 leave it off unless you actually need the full text). Use search_media first to resolve a title to its AniList

  • get_media_staff

    List an anime/manga's staff (director, writer, character designer, author, illustrator, etc.) with their role. Use search_media first to resolve a title to its AniList ID. No explicit ordering is requested \u2014 don't assume results are sorted by role or popularity (unlike get_staff's reverse-direction lookup, which IS popularity-sorted).

  • get_media_statistics

    Get an anime/manga's watch/read-status counts (watching/completed/planning/etc.) and score distribution histogram across all AniList users. Use search_media first to resolve a title to its AniList ID.

  • get_media_tags

    List every descriptive tag AniList uses on anime/manga (finer-grained than genres, e.g. 'Time Skip', 'Tragedy', 'Reincarnation'), with category and adult-content flag. There are ~425 tags total, so results are paginated \u2014 use `page`/`perPage` rather than expecting them all in one response. Use this to look up a tag's exact name before passing it to search_media's `tag_in` \u2014 tag names are

  • get_notifications

    [Requires login] Get the authenticated user's AniList notifications: new episodes airing, activity likes/replies/mentions, new followers, thread replies/likes, and media/staff/character data-submission updates. Every item has `id`, `type` and a human-readable `context`/`contexts` string; the rest of the fields depend on `type` (e.g. an AIRING item includes `media`/`episode`, a FOLLOWING item inclu

  • get_recommendation
  • get_recommendations_for_media

    List anime/manga AniList users recommend as similar to a given title, ranked by rating (highest first). Use search_media first to resolve the title to its AniList ID. Each result's `mediaRecommendation.mediaListEntry` (requires login) shows whether it's already on your own list \u2014 set `excludeInList: true` to drop those from the fetched page instead of checking each one yourself (a local post-

  • get_site_statistics

    Get AniList's own site-wide statistics (new users/anime/manga daily counts), newest first. Useful for questions about AniList's growth/activity, not for anime data. Defaults to the last 7 days; use `page`/`perPage` to go further back. Confirmed live (bypassing this tool's own 25 cap): AniList's SiteStatistics field silently caps `perPage` at 25 itself, so this tool's own limit doesn't lose you any

  • get_staff
  • get_studio
  • get_thread

    Get an AniList forum thread's title, body and metadata (including `replyCount`, `viewCount`, `likeCount`, `isLiked`) by its ID.

  • get_thread_comments

    List top-level comments posted on an AniList forum thread, by the thread's ID. Replies (posted via post_thread_comment's `parentCommentId`) are nested under their parent's `childComments` rather than appearing as separate entries in this list.

  • get_todays_birthdays

    List AniList characters or staff members whose birthday (month/day) is today, most favourited first. Paginated \u2014 a single day can have well over a thousand entries, so check `hasNextPage` before treating a page as the full list. Returns character-shaped or staff-shaped objects for kind: CHARACTER/STAFF respectively, but a lighter fetch than get_character/get_staff: it does NOT include those t

  • get_user_activity

    List recent AniList activity posts from a specific user, newest first \u2014 by default every activity type (list updates, text posts, and message activity they received). Narrow it server-side with `type` and/or a `createdAfter`/`createdBefore` window rather than paging through everything and discarding. Accepts an exact AniList username directly (it's resolved to an id with one extra internal lo

  • get_user_list
  • get_user_profile

    Get an AniList user's public profile: name, about text, avatar, donator status \u2014 plus their account settings (title/name-language preferences, notification toggles, list display options). Confirmed live these settings are NOT viewer-gated, so they're included for any user, not just the authenticated caller. Accepts an exact AniList username directly \u2014 no need to call search_user first un

  • get_user_recent_activity

    Get an AniList user's 5 most recent activity posts, with full content (not just IDs) \u2014 every activity type (list updates, text posts, and message activity they received; the underlying query applies no type filter of its own), a fixed count, not configurable; use get_user_activity for a paginated full feed instead. Accepts an exact AniList username directly \u2014 no need to call search_user

  • get_user_stats

    Get an AniList user's anime/manga statistics: counts, mean score, time watched, episodes/chapters/volumes consumed. Accepts an exact AniList username directly \u2014 no need to call search_user first unless you only have a partial/fuzzy name. AniList's own stats aggregation can lag behind the account's real list \u2014 confirmed live, an account with real scored/progressed entries still read back

  • login_anilist
  • post_message_activitywrite action

    [Requires login] Post a new message-style activity to another AniList user's profile, or update an existing one by passing its `id`. Despite the name, this is NOT a private DM \u2014 like post_text_activity, it's publicly visible on both users' activity feeds/profiles to anyone who can view them. This is a limitation of this tool, not AniList itself: AniList's underlying mutation does accept a `pr

  • post_text_activitywrite action

    [Requires login] Post a new text-status update to the authenticated user's own AniList profile, or update an existing one by passing its `id`.

  • post_threadwrite action

    [Requires login] Post a new forum thread to the authenticated user's own AniList account, or update an existing one by passing its `id`. Use search_thread first if you want to check whether a similar thread already exists before posting a new one. Note: this tool's own response doesn't include `categories`/`mediaCategories`/`isSticky`/`isLocked` \u2014 call get_thread with the returned `id` afterw

  • post_thread_commentwrite action

    [Requires login] Post a new comment on an AniList forum thread from the authenticated user's account, or update an existing one by passing its `id`.

  • remove_list_entrywrite action

    [Requires login] Delete an entry from the authenticated user's own AniList list by its list-entry ID (NOT the media id) \u2014 get it from get_user_list. This cannot be undone, and calling it again on an already-deleted id errors as not found rather than silently succeeding.

  • search_activity

    Search/browse AniList's activity feed (list updates, text posts, messages), optionally filtered to one user or \u2014 with `isFollowing` [Requires login] \u2014 to your following feed, to one or more activity types, and/or to a creation-time window. Each result already includes its full content (text/message/status, `replyCount`/`likeCount`/`isLiked`, the posting user, and \u2014 for list activity

  • search_character

    Search AniList for characters by name. Returns AniList IDs to use with get_character. Each result's bio (`description`) is omitted unless you set `includeDescription`.

  • search_media

    Search AniList for anime or manga by title and/or filters (genre, tag, format, status, season/year, country, length \u2014 most with an exclusion variant), or browse term-less by ranking (top-rated, most popular, trending \u2014 see the `sort` parameter) when you don't have a title to search for. Adult (NSFW) results are included unless you set `sfw: true` (or `isAdult: false`); `isAdult: true` re

  • search_staff

    Search AniList for staff members by name. Returns AniList IDs to use with get_staff. Each result's bio (`description`) is omitted unless you set `includeDescription`.

  • search_studio

    Search/browse AniList's animation/production studios by name, when you want to see multiple candidates rather than take the closest match \u2014 get_studio's own `name` param already does this same fuzzy search directly and resolves a partial name on its own. Returns AniList IDs to use with get_studio.

  • search_thread

    Search/browse AniList's forum threads by title/body text and/or restrict to one category. Returns AniList thread IDs (with title/category for context) to use with get_thread, get_thread_comments, post_thread, or post_thread_comment.

  • search_user

    Search AniList for users by username. Returns AniList user IDs to use with get_user_profile/get_full_user_info (profile), get_user_stats (statistics), get_user_list (their public list), or toggle_follow_user.

  • submit_anilist_redirectwrite action

    Complete a login started with login_anilist by submitting the URL your browser was redirected to after clicking Approve (the one containing ?code=...). Use this when login didn't complete automatically \u2014 e.g. the server runs on a remote/headless host. Pass the whole URL, not just the code: its `state` is checked against the login attempt, so a bare code or a URL from another login is rejected

  • toggle_favourite
  • toggle_follow_user

    [Requires login] Toggle following another AniList user from the authenticated user's account. Calling it again on the same user unfollows them.

  • update_list_entrieswrite action
  • update_list_entrywrite action

    [Requires login] Update an existing entry on the authenticated user's own AniList list by its list-entry ID (NOT the media ID \u2014 get it from get_user_list, or from add_list_entry's response). Only set the fields you want to change. Updating MANY entries to the SAME values? Use update_list_entries instead \u2014 one request rather than one per entry. The response echoes what AniList actually st

  • update_userwrite action

    [Requires login] Update settings on the authenticated user's own AniList account (about text, preferred title language, adult-content visibility, score format, notification/messaging preferences, anime/manga list options). Only set the fields you want to change \u2014 most fields are a true partial update (see `notificationOptions`/`disabledListActivity` below for two confirmed exceptions, PLUS `a

Public scan report

scanner v0.1.10 · 2026-11-03 · same rubric, same numbers if you re-run it

1 medium
  • Code scan2 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 12 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    dist/index.js: …&(j=this.opts.code.process(j,y));let ee=new Function(`${o.default.self}`,`${o.default.scope}`…
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How AniList MCP Server (Unofficial) compares

Against every graded Web search MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
75/100
higher than 45% of 3,471 Web search servers
Tools
50
the typical Web search server has 5
Tools that change things
24%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 55% of 1,788 Web search servers
Downloads a week
197
more than 70% of 837 Web search servers with a package

What its tools let an agent do: 35 read · 1 create · 6 change · 4 delete · 4 send or post

Release history: 3 versions in the registry since 2026-08-16, latest 2026-10-22, typically one every 39 days.

Install AniList MCP Server (Unofficial) in Claude Code, Cursor or VS Code

Runs npx -y anilist-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add anilist-mcp-server -- npx -y anilist-mcp-server
Add to Cursor

What the publisher says

From the AniList MCP Server (Unofficial) repository's README, as published. We do not edit it. Read it on GitHub

AniList MCP Server

An MCP server for AniList. It works with any MCP-compatible client or agent (Claude Desktop/Code, Cursor, VS Code, Cline, Continue, and others). It speaks the standard MCP stdio protocol.

What it does

Talks directly to AniList's public GraphQL API (https://graphql.anilist.co):

characters, staff, studios; genres/tags; recommendations; forum threads; activity feeds; public/unlisted user profiles and lists.

  • Reads (no credentials needed). Search and browse anime/manga,

anime/manga list (add/update/remove entries), favourites, follows, your notifications, and post/delete your own activity and threads.

  • Your own AniList account (requires a one-time login). Manage your own

What you need (and what it gets you)

Nothing is required to get started, so you can skip straight to Install. Everything below is optional:

Without a login, the personal/mutation tools reply with a clear message telling you how to get one; everything else keeps working regardless.

Example queries

Once it's connected, just ask your agent in natural language.

No credentials needed:

"Search for the anime Frieren and show its score, genres and synopsis."
"What recommendations does AniList have for fans of Steins;Gate?"
"Show me today's birthday characters."
"What genres and tags does AniList use for anime?"
"Show the public profile and stats for user <username>."
"What's in <username>'s AniList anime list marked as watching?"

With your AniList account (after a one-time login_anilist; see Connect your AniList account):

"Add Frieren to my AniList plan-to-watch list."
"Set Cowboy Bebop to completed on my AniList with a score of 9."
"Follow user <username> for me."
"Post a text update to my AniList activity feed."
"What are my unread AniList notifications?"

Tools

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

AniList MCP Server (Unofficial): common questions

Is AniList MCP Server (Unofficial) safe?
Mostly: it is graded B (75/100). Read the AniList MCP Server (Unofficial) safety report
How do I install AniList MCP Server (Unofficial)?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does AniList MCP Server (Unofficial) need an API key?
Yes. The registry entry asks for ANILIST_CLIENT_SECRET, ANILIST_ACCESS_TOKEN.
Is AniList MCP Server (Unofficial) maintained?
The last commit was 14 days ago (2026-10-22). The latest release is v0.11.0.
What can I use instead of AniList MCP Server (Unofficial)?
Servers from other publishers that do the same job: Chatroost — unofficial Telegram MCP server, Link MCP server and Alza MCP server.
How does AniList MCP Server (Unofficial) compare with other Web search MCP servers?
safety score 75/100 (higher than 45% of 3,471 Web search servers); tools 50 (the typical Web search server has 5); tools that change things 24% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to AniList MCP Server (Unofficial)

Same job from other publishers: the closest match first, then the best rated.

  • Chatroost — unofficial Telegram MCP server
    Unofficial Telegram MCP server — read, search, reply and react in your own Telegram account.
    A
  • Link
    Local personal memory for agents as MCP tools — remember, recall, search, context, graph traversal.
    A
  • Alza
    Unofficial MCP server for Alza.cz: catalog search plus token-guarded account and checkout.
    B
  • MCP Zotero
    Unofficial Zotero server: search your library, add papers by DOI, import PDFs, cite in Word
    B
  • HasData Yelp
    Yelp business search, place details and the full review feed, as structured JSON.
    A

More from Grinv →