MAL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log level: debug, info, warn, error, silent | info |
| MAL_CLIENT_ID | No | Client ID for MyAnimeList API token refresh | |
| MAL_TOKEN_STORE | No | Override token cache path (default: OS config dir) | |
| MAL_ACCESS_TOKEN | No | Access token for MyAnimeList API (personal-list tools) | |
| MAL_CLIENT_SECRET | No | Client secret for MyAnimeList API token refresh | |
| MAL_REFRESH_TOKEN | No | Refresh token for MyAnimeList API |
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
} |
| prompts | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_animeA | Search MyAnimeList anime by keyword; returns compact summaries (with the mal_id that other anime tools require) plus pagination info. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API, which ignores every filter except |
| search_mangaA | Search MyAnimeList manga by keyword (also light novels, manhwa/manhua); returns compact summaries with the mal_id that other manga tools require. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API, which ignores every filter except |
| get_animeA | Get full details for one anime by mal_id: synopsis, score, genres, studios, streaming links, external links (official site, social media), alternate title synonyms, and related entries. |
| get_mangaA | Get full details for one manga by mal_id: synopsis, score, genres, authors, serialization, external links (official site, social media), alternate title synonyms, and related entries. Obtain the mal_id from search_manga first. |
| get_anime_charactersA | List the characters of an anime (by mal_id) with their roles and Japanese voice actors. Get the mal_id from search_anime. |
| get_manga_charactersA | List the characters of a manga (by mal_id) with their roles. Get the mal_id from search_manga. |
| get_anime_episodesA | List an anime's episodes (by mal_id) with titles, air dates and filler/recap flags. Paginated (~100 per page); use |
| get_anime_videosA | List an anime's promotional videos (PVs/trailers), episode preview clips, and music videos (openings/endings), each with a title, watch URL, thumbnail, and view/like counts where available. This is richer than get_anime's single |
| get_anime_recommendationsA | Get community recommendations for anime similar to the given mal_id, ordered by votes and capped at the top 25 (no pagination). Get the mal_id from search_anime. Use get_top_anime instead for a global popularity/score ranking not tied to one title, or get_recent_anime_recommendations for a site-wide feed of recommendation pairs not tied to this title either. |
| get_recent_anime_recommendationsA | Get a site-wide feed of recently-submitted anime recommendation pairs (e.g. 'if you liked X, try Y') with the submitting user's own commentary — not tied to any one title. Use get_anime_recommendations instead for recommendations similar to a specific mal_id. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_anime_reviewsA | Get user reviews for one anime (by mal_id): review text (truncated to 1200 characters), score, spoiler/preliminary flags, episodes watched at review time ( |
| get_manga_recommendationsA | Get community recommendations for manga similar to the given mal_id, ordered by votes and capped at the top 25 (no pagination). Get the mal_id from search_manga. Use get_top_manga instead for a global popularity/score ranking not tied to one title, or get_recent_manga_recommendations for a site-wide feed of recommendation pairs not tied to this title either. |
| get_recent_manga_recommendationsA | Get a site-wide feed of recently-submitted manga recommendation pairs (e.g. 'if you liked X, try Y') with the submitting user's own commentary — not tied to any one title. Use get_manga_recommendations instead for recommendations similar to a specific mal_id. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_manga_reviewsA | Get user reviews for one manga (by mal_id): review text (truncated to 1200 characters), score, spoiler/preliminary flags, chapters read at review time ( |
| get_top_animeA | Get anime ranked by all-time score/popularity, not tied to any season. Use |
| get_top_mangaA | Get manga ranked by all-time score/popularity, not tied to any release window. Use |
| get_seasonal_animeA | List anime from a given season — supply both |
| get_anime_scheduleA | Get the anime broadcast schedule (air times in JST), optionally for a single weekday (or the |
| get_anime_genresA | List anime genres/themes/demographics with their MAL IDs. Use this to discover the numeric IDs that the |
| get_manga_genresA | List manga genres/themes/demographics with their MAL IDs. Use this to discover the numeric IDs that the |
| search_charactersA | Search MyAnimeList characters by name. Returns compact summaries and the mal_id needed by get_character. Use get_anime_characters instead if you already have an anime's mal_id and want its full cast. |
| get_characterA | Get full details for one character by mal_id: bio, the anime/manga they appear in, and their voice actors. Obtain the mal_id from search_characters or get_anime_characters. |
| search_peopleA | Search MyAnimeList people (voice actors, directors, authors) by name. Returns the mal_id needed by get_person. |
| get_personA | Get full details for one person by mal_id: bio, their anime/manga staff-credit lists, and their voiced roles. Staff credits are capped at the first 200 (only an extreme outlier hits that — a prolific sound director can have 500+; a well-known director sits under 100); when the cap bites, the response says so via |
| get_anime_staffA | List the production staff of an anime (by mal_id) — director, composer, etc. — with their roles. Complements get_anime_characters (which covers voice actors). Get the mal_id from search_anime. |
| get_random_animeA | Return one random anime (full details). Good for discovery / suggestions. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_random_mangaA | Return one random manga (full details). Good for discovery / suggestions. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_upcoming_seasonA | List anime scheduled for the upcoming season. Use get_seasonal_anime for the current or a specific past season. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API — |
| get_anime_statisticsA | Get watch-status counts (watching/completed/…) and the score distribution for an anime by mal_id. Get the mal_id from search_anime. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API, which omits the score distribution ( |
| get_manga_statisticsA | Get read-status counts (reading/completed/…) and the score distribution for a manga by mal_id. Get the mal_id from search_manga. Unlike get_anime_statistics, no official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_producersA | List or search anime producers and studios with their MAL IDs and counts. Use |
| get_producerA | Get full details for one anime producer/studio by mal_id: about text and external links (official site, social media) alongside the fields get_producers already returns. Obtain the mal_id from get_producers. |
| get_magazinesA | List or search manga serialization magazines/publishers (e.g. Weekly Shonen Jump) with their MAL IDs and manga counts. Use |
| get_top_peopleA | Get the most popular/favorited people (voice actors, staff, authors), ranked overall. Use search_people instead to look up a specific person by name. |
| get_top_charactersA | Get the most popular/favorited characters, ranked overall. Use search_characters instead to look up a specific character by name. |
| get_seasons_listA | List the years and seasons that have anime data, so you can pick valid arguments for get_seasonal_anime. |
| get_random_characterA | Return one random character (full details). Good for discovery / trivia. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_random_personA | Return one random person — voice actor, director, author (full details, shaped exactly like get_person: staff credits capped at 200, |
| get_anime_newsA | List recent news articles about an anime (by mal_id): headline, date, author and excerpt. Useful for 'what's new / any announcements' questions. Get the mal_id from search_anime. Use get_news instead for a site-wide feed not tied to one anime. |
| get_manga_newsA | List recent news articles about a manga (by mal_id): headline, date, author and excerpt. Useful for 'what's new / any announcements' questions. Get the mal_id from search_manga. Use get_news instead for a site-wide feed not tied to one manga. |
| get_interest_stacksA | Browse or search MyAnimeList Interest Stacks: themed anime/manga lists curated by real users, each entry carrying the curator's own score and note. Use this for taste- or mood-shaped requests ('something melancholy', 'cozy slice-of-life') where a ranking or a genre filter is the wrong instrument — get_top_anime answers 'what is best', this answers 'what goes together'. Returns stack metadata only; pass a stack's mal_id to get_interest_stack for its actual entries. For stacks containing one specific title, use get_anime_interest_stacks/get_manga_interest_stacks instead. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_interest_stackA | Get one MyAnimeList Interest Stack by mal_id, with its entries in the curator's own order — each carrying that curator's score ( |
| get_anime_interest_stacksA | List the public MyAnimeList Interest Stacks that include a given anime (by mal_id) — useful for 'what do people group this with' and as a jumping-off point for recommendations rooted in human curation rather than vote counts. Get the mal_id from search_anime. Returns stack metadata only; pass a stack's own mal_id to get_interest_stack for its entries. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_manga_interest_stacksA | List the public MyAnimeList Interest Stacks that include a given manga (by mal_id). The manga counterpart of get_anime_interest_stacks. Get the mal_id from search_manga. Returns stack metadata only; pass a stack's own mal_id to get_interest_stack for its entries. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable. |
| get_newsA | List recent MyAnimeList news articles site-wide (headline, date, author, excerpt) — not tied to one anime or manga. Use |
| get_my_user_infoA | Get the logged-in user's MyAnimeList profile and anime watch-status statistics. Requires a MyAnimeList login. Anime-only — the official API has no manga statistics field at all, and there is no tool for a user's manga read stats. |
| get_my_anime_listA | Get the authenticated user's own anime list, with each entry's status, score and progress. Requires a MyAnimeList login. |
| get_my_manga_listA | Get the authenticated user's own manga list, with status, score and progress. Requires a MyAnimeList login. |
| update_my_anime_statusA | Add or update an anime on the authenticated user's list (status, score, watched episodes, dates). Creates the entry if absent; fields you omit are left unchanged on an existing entry. Provide at least one field besides anime_id. Requires a MyAnimeList login. |
| update_my_manga_statusA | Add or update a manga on the authenticated user's list (status, score, chapters/volumes read, dates). Creates the entry if absent; fields you omit are left unchanged on an existing entry. Provide at least one field besides manga_id. Requires a MyAnimeList login. |
| delete_my_anime_list_itemA | Remove an anime entry from the authenticated user's list. This cannot be undone. Returns |
| delete_my_manga_list_itemA | Remove a manga entry from the authenticated user's list. This cannot be undone. Returns |
| login_malA | Authorize the personal-list tools with your MyAnimeList account (one-time). Prerequisite: register a MAL API app of type 'other' at https://myanimelist.net/apiconfig with Redirect URI set to this server's localhost callback, and set MAL_CLIENT_ID in the server env. Calling this returns an authorization URL: open it, log in, and click Allow. If your browser is on the same machine as the server and the callback port is free, login completes automatically; otherwise (a remote/headless host, or the port is busy) copy the URL you land on and pass it to submit_mal_redirect. |
| submit_mal_redirectA | Complete a login started with login_mal by submitting the URL your browser was redirected to after clicking Allow (the one containing ?code=...). Use this when login didn't complete automatically — e.g. the server runs on a remote/headless host. A bare code string is also accepted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| recommend_similar | Suggest anime similar to a given title, with reasons. title is optional — if omitted, asks which title instead of failing. |
| seasonal_overview | Summarize the notable anime of a given season (or the current one). |
| hidden_gems | Surface highly-rated anime or manga that aren't widely known — high score, low popularity. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Grinv/mal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server