A Model Context Protocol (MCP) server that interfaces with the AniList API, allowing LLM clients to access and interact with anime, manga, character, staff, and user data from AniList.
- Search for anime, manga, characters, staff, and studios
- Get detailed information about specific anime, manga, characters, and staff members
- Access user profiles and lists
- Support for advanced filtering options
- Retrieve genres and media tags
- Dual transport support: Both HTTP and STDIO transports
- Cloud deployment ready: Support Smithery and other platforms
- Node.js 18+
- Add this server to your
mcp.json
/claude_desktop_config.json
:
{
"mcpServers": {
"anilist": {
"command": "npx",
"args": ["-y", "anilist-mcp"],
"env": {
"ANILIST_TOKEN": "your_api_token"
}
}
}
}
You may remove the env
object entirely, if you are not planning to use the AniList Token for operations that require login.
- Restart your MCP client (e.g., Claude Desktop)
- Use the tools to interact with AniList
Follow the Local Development instructions to set up the project locally, then run:
pnpm run start:http
This will start the server on port 8081 by default. You can change the port by setting the PORT
environment variable.
You can deploy this MCP server to any cloud platform that supports Node.js server applications.
You can also deploy via MCP platforms like Smithery.
When using the STDIO transport or hosting the HTTP transport server, you can pass configuration via environment variables:
-
ANILIST_TOKEN
: (Optional) AniList API Token (Only needed for operations that require login)
[!CAUTION] If you are hosting the HTTP transport server with token pre-configured, you should protect your endpoint and implement authentication before allowing users to access it. Otherwise, anyone can access your MCP server while using your AniList token.
When using the HTTP transport, user can pass configuration via HTTP headers:
-
Anilist-Token
: (Optional) AniList API Token (Only needed for operations that require login)
If the user provides the token in the header, while the server also has ANILIST_TOKEN
set, the header value will take precedence.
To get an API token, follow these steps:
- Go to AniList settings.
- Click on "Create New Client".
- Use this URL as your client's "Redirect URL":
https://anilist.co/api/v2/oauth/pin
- Click "Save"
- Then go to https://anilist.co/api/v2/oauth/authorize?client_id={clientID}&response_type=token, replace the
{clientID}
with the client ID you get. It will ask you to log in and then provide you with the token to use. - Copy the generated token and use it in your
.env
file or environment variables.
- get_genres: Get all available genres on AniList
- get_media_tags: Get all available media tags on AniList
- get_site_statistics: Get AniList site statistics over the last seven days
- get_studio: Get information about a studio by its AniList ID or name
- favourite_studio: [Requires Login] Favourite or unfavourite a studio by its ID
- delete_activity: [Requires Login] Delete the current authorized user's activity post
- get_activity: Get a specific AniList activity by its ID
- get_user_activity: Fetch activities from a user
- post_message_activity: [Requires Login] Post a new message activity or update an existing one
- post_text_activity: [Requires Login] Post a new text activity or update an existing one
- get_user_anime_list: Get a user's anime list
- get_user_manga_list: Get a user's manga list
- add_list_entry: [Requires Login] Add an entry to the authorized user's list
- remove_list_entry: [Requires Login] Remove an entry from the authorized user's list
- update_list_entry: [Requires Login] Update an entry on the authorized user's list
- get_anime: Get detailed information about an anime by its AniList ID
- get_manga: Get detailed information about a manga by its AniList ID
- favourite_anime: [Requires Login] Favourite or unfavourite an anime by its ID
- favourite_manga: [Requires Login] Favourite or unfavourite a manga by its ID
- get_character: Get information about a character by their AniList ID
- get_staff: Get information about staff member by their AniList ID
- favourite_character: [Requires Login] Favourite or unfavourite a character by its ID
- favourite_staff: [Requires Login] Favourite or unfavourite a staff member by their ID
- get_todays_birthday_characters: Get all characters whose birthday is today
- get_todays_birthday_staff: Get all staff members whose birthday is today
- get_recommendation: Get an AniList recommendation by its ID
- get_recommendations_for_media: Get AniList recommendations for a specific media
- search_activity: Search for activities on AniList
- search_anime: Search for anime with query term and filters
- search_manga: Search for manga with query term and filters
- search_character: Search for characters based on a query term
- search_staff: Search for staff members based on a query term
- search_studio: Search for studios based on a query term
- search_user: Search for users on AniList
- get_thread: Get a specific thread by its AniList ID
- get_thread_comments: Get comments for a specific thread
- delete_thread: [Requires Login] Delete a thread by its ID
- get_user_profile: Get a user's AniList profile
- get_user_stats: Get a user's AniList statistics
- get_full_user_info: Get a user's complete profile and stats information
- get_user_recent_activity: Get recent activity from a user
- get_authorized_user: [Requires Login] Get profile information of the currently authorized user
- follow_user: [Requires Login] Follow or unfollow a user by their ID
- update_user: [Requires Login] Update user settings
Can you search for anime similar to "Bocchi the Rock!"?
Can you tell me about the character Hitori Gotou? Use the AniList tools to find information.
What anime has Studio Ghibli produced? Can you list their most popular works?
This project uses pnpm as its package manager.
Clone the repository and install dependencies:
git clone https://github.com/yuna0x0/anilist-mcp.git
cd anilist-mcp
pnpm install
- Create a
.env
file by copying the example:
cp env.example .env
- Edit the
.env
file and add your AniList API token:
ANILIST_TOKEN=your_api_token
You can use the MCP Inspector to test and debug the AniList MCP server:
npx @modelcontextprotocol/inspector -e ANILIST_TOKEN=your_api_token npx anilist-mcp
# Use this instead when Local Development
pnpm run inspector
Then open your browser to the provided URL (usually http://localhost:6274) to access the MCP Inspector interface. From there, you can:
- Connect to your running AniList MCP server
- Browse available tools
- Run tools with custom parameters
- View the responses
This is particularly useful for testing your setup before connecting it to MCP clients like Claude Desktop.
Pull from Docker Hub:
docker pull yuna0x0/anilist-mcp
Docker build (Local Development):
docker build -t yuna0x0/anilist-mcp .
Docker multi-platform build (Local Development):
docker buildx build --platform linux/amd64,linux/arm64 -t yuna0x0/anilist-mcp .
This MCP server accepts your AniList API token in the .env file, environment variable or HTTP header. Keep this information secure and never commit it to version control.
This project is licensed under the MIT License - see the LICENSE file for details.