ani-mcp is an MCP server for AniList, positioned as an "intelligent layer that understands your tastes" rather than a simple mirror of the AniList API. It builds a taste profile by analyzing a user's completed list, and on that basis provides personalized recommendations, viewing analytics, social tools, and complete list management.
Main capabilities
- Taste profile: builds a preference model based on the completed list.
- Personalized recommendations: answers "What should I watch next?", giving suggestions based on taste, mood, and the current season's lineup.
- Compatibility comparison: compares the tastes of two users.
- Sequel alerts: finds sequels airing this season to works you have already finished.
- Watch order: traverses the series relationship graph to generate a numbered watch order for long series.
- Session planning: for example, "I have 90 minutes, what should I watch?", selecting the episodes that best fit the time budget from your current list.
- Year in review: summarizes viewing/reading statistics for a given year.
- Basic features: search, details, trends, seasonal browsing, list management, social features, and community recommendations; all search and browsing tools support pagination.
How to use No account is required, and it is compatible with any MCP client. You can add it in the configuration file (Settings > Developer > Edit Config, with the macOS path being ~/Library/Application Support/Claude/claude_desktop_config.json), then save and restart Claude Desktop; you can also download ani-mcp.mcpb from the latest release and install it via Settings > Extensions.
Personalized features require adding a username to enable recommendations, taste profiles, and list management; write operations (updating progress, scoring, editing lists) also require adding ANILIST_TOKEN.
Environment variables
- Search and discovery
- Write operations (requires ANILIST_TOKEN)
MCP resources can provide context to the AI assistant without tool calls, and clients that support resources can automatically include them in the conversation. Preset conversation starters are also provided, which clients can offer as quick actions.
Example questions you can ask the AI assistant after connecting ani-mcp
- "What should I watch next?": Use anilist_pick to analyze the completed list, build a taste profile, and recommend from the planning list by match.
- "I want something dark and psychological": Use anilist_pick's moodFilter and boost works that match the vibe while downranking mismatches.
- "What good anime is airing this season?": Use anilist_pick with source: SEASONAL to rank the current season's anime by taste profile.
- "I have 90 minutes, what should I watch tonight?": Use anilist_session to pick from your watching list and fill the time budget.
- "Is there a sequel airing for a show I finished?": Use anilist_sequels to cross-reference your completed list with the current season's lineup.
- "What order should I watch Fate in?": Use anilist_watch_order to traverse the franchise relationship graph and generate a numbered watch order.
- "Compare my taste with username123": Use anilist_compare to find shared works, calculate a compatibility score, and highlight the biggest divergences.
- "Why would I like Vinland Saga?": Use anilist_explain to score it against your taste profile, breaking down genre affinity and thematic fit.
- "Show my anime year in review": Use anilist_wrapped to summarize what you watched in a given year.
anilist_pick and anilist_session accept free-text mood strings. Built-in keywords include: dark, chill, hype, action, romantic, funny, brainy, sad, scary, epic, wholesome, intense, mystery, fantasy, scifi, trippy, nostalgic, artistic, competitive, cozy. You can add or override keywords by setting ANILIST_MOOD_CONFIG to a JSON object, where each key is a mood keyword mapped to { boost: string[], penalize: string[] }, i.e. arrays of AniList genres and tags.
Privacy and operation ani-mcp runs locally, only sends requests to the AniList API, stores nothing, and collects no analytics data. By default it uses HTTP Stream transport, running on port 3000.
Other Building from source is supported. Bug reports and feature requests can be submitted via GitHub Issues.