Ani Mcp
Description
<p align="center"> <img src="assets/icon.svg" width="128" height="128" alt="ani-mcp"> </p> # ani-mcp [](https://www.npmjs.com/package/ani-mcp) [](https://www.npmjs.com/package/ani-mcp) [](https://www.npmjs.com/package/ani-mcp)…
Details
- Author
- GavMason
- Downloads
- 265
- Categories
- Other
Jump to
- Taste profiling from your completed list
- Personalized picks based on mood
- Compare taste compatibility between users
- Sequel alerts for finished shows
- Watch order for franchises
- Session planning with time budget
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Ani McpCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install by adding to your MCP client config (e.g., claude_desktop_config.json) with the command npx -y ani-mcp and an optional ANILIST_USERNAME environment variable. Also available via Docker or building from source. For write operations and private lists, set ANILIST_TOKEN with an AniList OAuth token.
anilist_search
Search for anime or manga by title with optional filters. Use when the user wants to find an anime/manga by name, discover titles in a genre, or find what aired in a specific year. Supports common abbreviations (aot, jjk, csm). Returns ranked list with title, format, year, score, genres, episode count, studios, and AniList URL.
anilist_details
Get full details about a specific anime or manga. Use when the user asks about a specific title and wants synopsis, score, episodes, studios, related works, and recommendations. Accepts AniList ID (faster, exact) or title (fuzzy match with abbreviation support). Returns format, status, episodes/chapters, season, score, studios, source, genres, tags, synopsis, related works, and community recommendations.
anilist_seasonal
Browse anime airing in a given season. Use when the user asks what's airing this season, what aired in a past season, or wants to discover seasonal anime. Defaults to current season/year. Returns ranked list with title, format, score, genres, and episode count.
anilist_recommendations
Get community recommendations for a specific anime or manga. Use when the user asks for shows similar to a specific title, or says "I liked X, what else should I watch?" Returns titles ranked by recommendation count with format, score, and genres.
anilist_list
Get a user's anime or manga list, filtered by watching status. Use when the user asks about their list, what they're watching, what they've completed, or what's on their plan-to-watch. Supports custom lists via status CUSTOM. Returns entries with title, score, progress, status, updated date, and entry ID.
anilist_stats
Get a user's watching/reading statistics. Use when the user asks about their overall stats, how much anime they've watched, their average score, top genres, or score distribution. Returns title count, mean score, episodes/chapters, top genres, score distribution chart, and format breakdown.
anilist_lookup
Check if a specific title is on a user's list and show its status. Use when the user asks "is this on my list?", "have I seen this?", or wants to check their progress or score for a single title. Returns status, score, progress, and dates without fetching the full list.
anilist_export
Export a user's anime or manga list as CSV or JSON for backup or migration. Use when the user wants to download, back up, or transfer their list data.
anilist_taste
Generate a taste profile summary from a user's completed list. Use when the user asks about their anime/manga preferences, what genres they like, or how they tend to score. Returns genre weights, top themes, scoring patterns with distribution chart, and format split.
anilist_pick
"What should I watch/read next?" Recommends from your Planning list based on your taste profile. Also works for backlog analysis - "which of my 200 Planning titles should I actually start?" Falls back to top-rated AniList titles if the Planning list is empty. Optionally filter by mood or max episodes. Returns ranked picks with match score, genre alignment, and mood fit.
anilist_session
Plan a watching or reading session within a time budget. Picks from your currently-watching list, scored by taste match and mood. Returns a session plan with titles, episodes to watch, and estimated time.
anilist_sequels
Find sequels airing this season for titles you've completed. Use when the user asks what sequels are coming, or wants to know if any currently airing anime continue shows they've already watched. Returns matches with the completed prequel and the airing sequel.
anilist_watch_order
Suggested viewing order for a franchise. Use when the user asks what order to watch a series, how to start a long franchise, or wants to know the chronological release order of sequels and prequels. Accepts any title in the franchise and traces the full chain. Returns a numbered list from first to last.
anilist_compare
Compare taste profiles between two AniList users. Use when someone asks to compare their taste with another user. Returns compatibility %, shared favorites, biggest disagreements, genre divergences, and cross-recommendations.
anilist_wrapped
Year-in-review summary for a user. Use when the user asks about their anime/manga year, what they watched/read in a given year, or wants a recap. Defaults to the current year. Returns title count, average score, highest rated, most controversial, genre breakdown, and consumption stats.
anilist_explain
Score a specific title against a user's taste profile and explain the alignment. Use when the user asks "why would I like this?", "is this for me?", or wants to know how well a specific anime/manga matches their preferences. Returns match score, genre/theme affinity breakdown, mood fit, and existing list status.
anilist_similar
Find titles similar to a specific anime or manga. Use when the user asks for shows like a specific title, or wants content-based recommendations without needing a user profile. Returns ranked results with similarity %, shared genres, and community rec strength.
anilist_trending
Show what's trending on AniList right now. Use when the user asks what's hot, trending, or generating buzz. No search term needed. Returns ranked list with title, format, score, genres, and episode count.
anilist_genres
Browse top anime or manga in a specific genre. Use when the user asks for the best titles in a genre, e.g. "best romance anime" or "top thriller manga from 2023". Supports year, status, and format filters. Returns ranked list with title, score, and genres.
anilist_genre_list
List all valid AniList genres and content tags. Use before genre-filtering tools to ensure valid genre names. Returns genres and content tags grouped by category with descriptions.
anilist_whoami
Check which AniList account is authenticated and verify the token works. Use when the user wants to confirm their setup or debug auth issues.
anilist_staff
Get staff and voice actor credits for an anime or manga. Use when the user asks who directed, wrote, or voiced characters in a title. Returns production staff with roles and characters with voice actors. Defaults to Japanese VAs but supports other languages.
anilist_schedule
Get the airing schedule for an anime. Use when the user asks when the next episode airs, or wants to see upcoming episode dates for a currently airing show. Returns next episode date/countdown and upcoming episode schedule.
anilist_airing
Show upcoming episodes for all anime you're currently watching. Use when the user asks what's airing soon, what episodes are coming up, or wants a watchlist calendar. Returns titles sorted by next airing time with episode number and countdown.
anilist_characters
Search for anime/manga characters by name. Use when the user asks about a specific character, wants to know which series a character appears in, or who voices them. Returns character appearances with roles and voice actors.
anilist_staff_search
Search for anime/manga staff by name and see their works. Use when the user asks about a director, voice actor, animator, or writer. Returns staff occupations, works with roles, and scores.
anilist_studio_search
Search for an animation studio by name and see their productions. Use when the user asks about a studio like MAPPA, Kyoto Animation, or Bones. Returns main and supporting productions with format, score, and status.
anilist_update_progress
Update your episode or chapter progress for an anime or manga. Use when the user says they watched an episode, finished a chapter, or wants to record progress. Requires ANILIST_TOKEN. Returns updated status, progress count, and entry ID.
anilist_add_to_list
Add an anime or manga to your list with a status. Use when the user wants to start watching, plan to watch, or mark a title as completed. Requires ANILIST_TOKEN. Returns status, optional score, and entry ID.
anilist_rate
Score an anime or manga on your list. Use when the user wants to give a rating (0-10). Scores display in the user's preferred format (3/5/10/100-point). Use 0 to remove. Requires ANILIST_TOKEN.
anilist_delete_from_list
Remove an entry from your anime or manga list. Pass either a list entry ID or a media ID. Requires ANILIST_TOKEN.
anilist_undo
Undo the last write operation (update progress, add to list, rate, delete, or batch update). Restores the previous state of the affected list entry. Requires ANILIST_TOKEN.
anilist_favourite
Toggle favourite on an anime, manga, character, staff member, or studio. Calling again on the same entity removes it from favourites. Requires ANILIST_TOKEN.
anilist_activity
Post a text activity to your AniList feed. Use when the user wants to share a status update, thought, or message. Requires ANILIST_TOKEN.
anilist_unscored
List completed anime or manga that haven't been scored yet. Use when the user wants to catch up on scoring, find unrated titles, or do a batch scoring session. Returns titles sorted by most recently completed.
anilist_batch_update
Apply a bulk action to multiple list entries matching a filter. Use when the user wants to move all low-scored titles to Dropped, add all planning titles to current, or bulk-change statuses. Defaults to dry-run mode (preview only). Requires ANILIST_TOKEN.
anilist_feed
Get recent activity from a user's AniList feed. Shows text posts and list updates (anime/manga status changes). Returns numbered entries with author, date, and content. Supports pagination and type filtering.
anilist_profile
View a user's AniList profile including bio, stats, and favourites. Returns bio, anime/manga stats summary, top favourites by category, and account age.
anilist_reviews
Get community reviews for an anime or manga. Use when the user wants to see what others think about a title. Returns sentiment summary (positive/mixed/negative), individual review scores, summaries, and helpful ratios.
anilist_group_pick
Find anime or manga for a group to watch together. Finds titles on multiple users' planning lists (or highly rated by all). Use when friends want to pick something everyone will enjoy.
anilist_shared_planning
Find titles on both users' planning lists. Use when two users want to see what they're both planning to watch or read. Shows overlap and unique titles.
anilist_follow_suggestions
Find AniList users with similar taste from your following list. Ranks people you follow by taste compatibility to highlight your best matches. Requires ANILIST_TOKEN for following list access.
anilist_react
Like or reply to an AniList activity. Use when the user wants to interact with an activity from their feed. Requires ANILIST_TOKEN. LIKE toggles the like state.
anilist_calibration
Score calibration analysis showing how a user rates compared to community consensus. Use when the user asks if they score too high or low, which genres they're harshest or most generous on, or how their taste compares to mainstream. Returns overall bias, per-genre deviation, and scoring tendency.
anilist_drops
Drop pattern analysis from a user's dropped list. Use when the user asks why they drop shows, what patterns their drops follow, or which genres they abandon most. Returns drop rate by genre/tag, median episode at drop, and early drop percentage.
anilist_evolution
Genre evolution analysis showing how taste has shifted over time. Use when the user asks how their taste has changed, what they used to watch vs now, or wants a timeline of their preferences. Returns era-by-era genre rankings and shift descriptions.
anilist_completionist
Franchise completion tracker showing progress through series with sequels. Use when the user asks what franchises they've started but not finished, their completion rate, or what's left to watch in a series. Returns franchise groups with completed/total counts.
anilist_seasonal_stats
Seasonal pick-up and completion rates. Use when the user asks about their seasonal watching habits, how many shows they finish vs drop each season, or their hit rate. Returns per-season breakdown of picked, finished, dropped, and ongoing counts.
anilist_pace
Pace estimate for currently watching or reading titles. Use when the user asks how long it'll take to finish something, their watch rate, or wants a progress summary. Returns estimated completion date based on historical pace.
anilist_mal_import
Import a MyAnimeList user's completed anime list and generate personalized recommendations based on their taste. No MAL auth needed. Use when the user mentions their MAL account or wants recs from MAL history. Returns a taste profile summary and recommended titles from AniList.
anilist_kitsu_import
Import a Kitsu user's completed anime list and generate personalized recommendations based on their taste. No auth needed. Use when the user mentions their Kitsu account or wants recs from Kitsu history. Returns a taste profile summary and recommended titles from AniList.
anilist_taste_card
Generate a shareable taste profile card image for an AniList user. Returns a PNG image showing top genres, themes, score distribution, and format breakdown. Use when someone wants a visual summary of their anime taste.
anilist_compat_card
Generate a shareable compatibility card image comparing two AniList users. Returns a PNG image showing compatibility %, genre comparison, shared favorites, and key differences. Use when someone wants a visual comparison of taste.
anilist_wrapped_card
Generate a shareable year-in-review card image for an AniList user. Returns a PNG image showing titles completed, top genres, score distribution, highlights, and consumption stats. Use when someone wants a visual recap of their year.
anilist_seasonal_recap_card
Generate a shareable seasonal recap card image for an AniList user. Returns a PNG image showing pick/finish/drop counts, hit rate, status breakdown, and top-scored titles from a season.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"ani mcp": {
"ani-mcp": {
"command": "docker",
"args": [
"build",
"-t",
"ani-mcp",
"."
]
}
}
}
}
McpServers
{
"ani-mcp": {
"command": "docker",
"args": [
"build",
"-t",
"ani-mcp",
"."
]
}
}
ani-mcp
A smart MCP server for AniList that understands your anime and manga taste - not just raw API calls.
What makes this different
Most AniList integrations mirror the API 1:1. ani-mcp adds an intelligence layer on top:
- Taste profiling - builds a model of your preferences from your completed list
- Personalized picks - "what should I watch next?" based on your taste, mood, and seasonal lineup
- Compatibility - compare taste between two users
- Sequel alerts - find sequels airing this season for shows you've finished
- Watch order - franchise chain traversal for long-running series
- Session planning - "I have 90 minutes, what should I watch?" from your current list
- Year in review - your watching/reading stats wrapped up
Plus the essentials: search, details, trending, seasonal browsing, list management, social features, and community recommendations. All search and browse tools support pagination for browsing beyond the first page of results.
Install
Add to your MCP client config (e.g. mcp.json, claude_desktop_config.json, Cursor settings, etc.):
{
"mcpServers": {
"anilist": {
"command": "npx",
"args": ["-y", "ani-mcp"],
"env": {
"ANILIST_USERNAME": "your_username"
}
}
}
}
Works with any MCP-compatible client.
Environment Variables
| Variable | Required | Description |
| --- | --- | --- |
| ANILIST_USERNAME | No | Default username for list and stats tools. Can also pass per-call. |
| ANILIST_TOKEN | No | AniList OAuth token. Required for write operations and private lists. |
| ANILIST_TITLE_LANGUAGE | No | Title preference: english (default), romaji, or native. |
| ANILIST_SCORE_FORMAT | No | Override score display: POINT_100, POINT_10_DECIMAL, POINT_10, POINT_5, POINT_3. |
| ANILIST_NSFW | No | Set to true to include adult content in results. Default: false. |
| ANILIST_MOOD_CONFIG | No | JSON object to add or override mood keywords. See Mood config. |
| DEBUG | No | Set to true for debug logging to stderr. |
| MCP_TRANSPORT | No | Set to http for HTTP Stream transport. Default: stdio. |
| MCP_PORT | No | Port for HTTP transport. Default: 3000. |
| MCP_HOST | No | Host for HTTP transport. Default: localhost. |
Tools
Search & Discovery
| Tool | Description |
| --- | --- |
| anilist_search | Search anime/manga by title with genre, year, and format filters |
| anilist_details | Full details, relations, and recommendations for a title |
| anilist_seasonal | Browse a season's anime lineup |
| anilist_trending | What's trending on AniList right now |
| anilist_genres | Browse top titles in a genre with optional filters |
| anilist_genre_list | List all valid genres and content tags |
| anilist_recommendations | Community recommendations for a specific title |
Lists & Stats
| Tool | Description |
| --- | --- |
| anilist_list | A user's anime/manga list, filtered by status |
| anilist_stats | Watching/reading statistics, top genres, score distribution |
Intelligence
| Tool | Description |
| --- | --- |
| anilist_taste | Generate a taste profile from your completed list |
| anilist_pick | Personalized "what to watch next" from your backlog, seasonal lineup, or discovery pool |
| anilist_compare | Compare taste compatibility between two users |
| anilist_wrapped | Year-in-review summary |
| anilist_explain | "Why would I like this?" - score a title against your taste profile |
| anilist_similar | Find titles similar to a given anime or manga |
| anilist_sequels | Sequels airing this season for titles you've completed |
| anilist_watch_order | Viewing order for a franchise |
| anilist_session | Plan a viewing session within a time budget |
Info
| Tool | Description |
| --- | --- |
| anilist_staff | Staff credits and voice actors for a title |
| anilist_staff_search | Search for a person by name and see all their works |
| anilist_studio_search | Search for a studio and see their productions |
| anilist_schedule | Airing schedule and next episode countdown |
| anilist_characters | Search characters by name with appearances and VAs |
| anilist_whoami | Check authentication status and score format |
Social
| Tool | Description |
| --- | --- |
| anilist_profile | View a user's profile, bio, favourites, and stats |
| anilist_feed | Recent activity from a user's feed |
| anilist_reviews | Community reviews for a title |
| anilist_favourite | Toggle favourite on anime, manga, character, staff, or studio |
| anilist_activity | Post a text activity to your feed |
Write (requires ANILIST_TOKEN)
| Tool | Description |
| --- | --- |
| anilist_update_progress | Update episode or chapter progress |
| anilist_add_to_list | Add a title to your list with a status |
| anilist_rate | Score a title (0-10) |
| anilist_delete_from_list | Remove an entry from your list |
Resources
MCP resources provide context to your AI assistant without needing a tool call. Clients that support resources can automatically include this information in conversations.
| Resource | Description |
| --- | --- |
| anilist://profile | Your AniList profile with bio, stats, and favourites |
| anilist://taste/{type} | Taste profile (genre weights, themes, scoring patterns) for ANIME or MANGA |
| anilist://list/{type} | Currently watching/reading entries with progress and scores |
Prompts
Pre-built conversation starters that clients can offer as quick actions.
| Prompt | Description |
| --- | --- |
| seasonal_review | Review this season's anime against your taste profile |
| what_to_watch | Plan what to watch now with optional mood and time budget |
| roast_my_taste | Get a humorous roast of your anime taste |
| compare_us | Compare your taste with another user |
| year_in_review | Your anime/manga year in review |
| explain_title | Why would you like (or dislike) a specific title? |
| find_similar | Find titles similar to one you enjoyed |
Examples
Here are some things you can ask your AI assistant once ani-mcp is connected:
"What should I watch next?"
Uses anilist_pick to analyze your completed list, build a taste profile, and recommend titles from your Planning list ranked by how well they match your preferences.
"I want something dark and psychological"
Uses anilist_pick with mood filtering to boost titles matching that vibe and penalize mismatches.
"What's good this season?"
Uses anilist_pick with source: SEASONAL to rank currently airing anime against your taste profile.
"I have 90 minutes, what should I watch tonight?"
Uses anilist_session to pick from your currently watching list and fill a time budget with the best-matching episodes.
"Any sequels airing for stuff I've finished?"
Uses anilist_sequels to cross-reference your completed list with this season's lineup.
"What order do I watch Fate in?"
Uses anilist_watch_order to traverse the franchise relation graph and produce a numbered viewing order.
"Compare my taste with username123"
Uses anilist_compare to find shared titles, compute a compatibility score, and highlight biggest disagreements.
"Why would I like Vinland Saga?"
Uses anilist_explain to score a title against your taste profile, breaking down genre affinity and theme alignment.
"Show me my anime year in review"
Uses anilist_wrapped to summarize everything you watched in a given year.
Mood config
anilist_pick and anilist_session accept a freeform mood string. Built-in keywords include: dark, chill, hype, action, romantic, funny, brainy, sad, scary, epic, wholesome, intense, mystery, fantasy, scifi, trippy, nostalgic, artistic, competitive, cozy.
To add or override keywords, set ANILIST_MOOD_CONFIG as a JSON object:
{
"ANILIST_MOOD_CONFIG": "{\"cozy\":{\"boost\":[\"Slice of Life\",\"Iyashikei\"],\"penalize\":[\"Horror\"]},\"mykeyword\":{\"boost\":[\"Romance\"],\"penalize\":[]}}"
}
Each key is a mood keyword mapping to { boost: string[], penalize: string[] } arrays of AniList genres and tags.
Privacy
See PRIVACY.md for details. In short: ani-mcp runs locally, sends requests only to the AniList API, stores nothing, and collects no analytics.
Docker
docker build -t ani-mcp .
docker run -e ANILIST_USERNAME=your_username ani-mcp
Runs on port 3000 with HTTP Stream transport by default.
Build from Source
git clone https://github.com/gavxm/ani-mcp.git
cd ani-mcp
npm install
npm run build
npm test
Support
Bug reports and feature requests: GitHub Issues
License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



