Skip to content
Agentmart
Submit a tool

MAL MCP Server

MyAnimeList MCP server: Tenrai-powered reads plus official MAL personal-list management.

Connector by Grinv · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 3
Write a review

Install

Works with Claude Code, Codex, VS Code, Claude Desktop, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/grinv-mal-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MyAnimeList MCP server: Tenrai-powered reads plus official MAL personal-list management.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
48 read · 4 write · 2 delete
Secrets
3 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 54

Read from the source code; the running server may list different tools.

Read 48 · Look things up without changing anything.

  • get_anime
  • get_anime_characters
  • get_anime_episodes
  • get_anime_genres
  • get_anime_interest_stacks
  • get_anime_news
  • get_anime_recommendations
  • get_anime_reviews
  • get_anime_schedule
  • get_anime_staff
  • get_anime_statistics
  • get_anime_videos
Show 36 more tools
  • get_character
  • get_interest_stack
  • get_interest_stacks
  • get_magazines
  • get_manga
  • get_manga_characters
  • get_manga_genres
  • get_manga_interest_stacks
  • get_manga_news
  • get_manga_recommendations
  • get_manga_reviews
  • get_manga_statistics
  • get_my_anime_list
  • get_my_manga_list
  • get_my_user_info
  • get_news
  • get_person
  • get_producer
  • get_producers
  • get_random_anime
  • get_random_character
  • get_random_manga
  • get_random_person
  • get_recent_anime_recommendations
  • get_recent_manga_recommendations
  • get_seasonal_anime
  • get_seasons_list
  • get_top_anime
  • get_top_characters
  • get_top_manga
  • get_top_people
  • get_upcoming_season
  • search_anime
  • search_characters
  • search_manga
  • search_people

Write 4 · Create, change, send or run things.

  • login_mal
  • submit_mal_redirect
  • update_my_anime_status
  • update_my_manga_status

Delete 2 · Delete, drop, revoke or wipe things.

  • delete_my_anime_list_item
  • delete_my_manga_list_item

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • MAL_ACCESS_TOKEN
  • MAL_CLIENT_ID
  • MAL_REFRESH_TOKEN

Network hosts it talks to 6

  • api.myanimelist.net · found in code
  • api.tenrai.org · found in code
  • github.com · found in install command, code
  • glama.ai · found in code
  • myanimelist.net · found in code
  • tenrai.org · found in code

Files it touches

  • Your home directory (~)

Tools (54)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • delete_my_anime_list_itemRemove anime from my listcan change or delete data

    Remove an anime entry from the authenticated user's list. This cannot be undone. Returns `deleted: true` whenever MAL accepts the request — including when the anime was never on the list to begin with, since MAL's own delete endpoint doesn't distinguish the two — so success alone isn't proof something existed; check get_my_anime_list first if you need to confirm. Requires a MyAnimeList login.

  • delete_my_manga_list_itemRemove manga from my listcan change or delete data

    Remove a manga entry from the authenticated user's list. This cannot be undone. Returns `deleted: true` whenever MAL accepts the request — including when the manga was never on the list to begin with, since MAL's own delete endpoint doesn't distinguish the two — so success alone isn't proof something existed; check get_my_manga_list first if you need to confirm. Requires a MyAnimeList login.

  • get_animeGet anime detailsread-only

    Description is built at runtime.

  • get_anime_charactersGet anime charactersread-only

    List the characters of an anime (by mal_id) with their roles and Japanese voice actors. Get the mal_id from search_anime.

  • get_anime_episodesGet anime episodesread-only

    List an anime's episodes (by mal_id) with titles, air dates and filler/recap flags. Paginated (~100 per page); use `page` for long-running series. Get the mal_id from search_anime.

  • get_anime_genresGet anime genresread-only

    List anime genres/themes/demographics with their MAL IDs. Use this to discover the numeric IDs that the `genres` parameter of search_anime expects. `sfw`/`sfw_strict` drop the adult (and, for sfw_strict, Ecchi) genres from the list itself.

  • get_anime_interest_stacksGet interest stacks containing an animeread-only

    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_anime_newsGet anime newsread-only

    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. `sfw`/`sfw_strict` filter out articles for an NSFW/adult-adjacent anime — verified live this can cut the result down sharply (not necessarily to zero) rather than being a no-op.

  • get_anime_recommendationsGet anime recommendationsread-only

    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. `sfw`/`sfw_strict` filter NSFW entries out of the recommendation list itself. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API's own recommendations field (same output shape, but at most 10 entr…

  • get_anime_reviewsGet anime reviewsread-only

    Get user reviews for one anime (by mal_id): review text (truncated to 1200 characters), score, spoiler/preliminary flags, episodes watched at review time (`episodes_watched`, not `chapters_read` — that field is manga-only), and community reaction counts. `limit` (default 5) caps how many of the fetched page's reviews come back — it does not itself fetch further pages, use `page` for Tenrai's own ~20-per-page listing. `sort`/`preliminary`/`spoilers`/`sentiment` filter/order the underlying set before that cap is applied. Get the mal_id from search_anime.

  • get_anime_scheduleGet broadcast scheduleread-only

    Get the anime broadcast schedule (air times in JST), optionally for a single weekday (or the `unknown`/`other` buckets Tenrai uses for shows with no fixed weekly slot). `broadcast` is only present for currently-airing shows. Defaults to 25 results if `limit` is omitted; use `page` for further results.

  • get_anime_staffGet anime staffread-only

    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_anime_statisticsGet anime statisticsread-only

    Description is built at runtime.

  • get_anime_videosGet anime videosread-only

    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 `trailer` field — use this instead when the caller wants every promo, not just the main one. Get the mal_id from search_anime.

  • get_characterGet character detailsread-only

    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. `sfw`/`sfw_strict` filter NSFW/adult-adjacent titles out of the character's own anime/manga appearance lists (verified live) rather than affecting the character itself.

Show 39 more tools
  • get_interest_stackGet one interest stackread-only

    Get one MyAnimeList Interest Stack by mal_id, with its entries in the curator's own order — each carrying that curator's score (`author_score`) and note. Obtain the stack's mal_id from get_interest_stacks, get_anime_interest_stacks or get_manga_interest_stacks. Every entry's own `mal_id` chains into get_anime or get_manga (the stack's `stack_type` says which). `sfw`/`sfw_strict` filter NSFW entries out of the entry list rather than hiding the stack itself. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable.

  • get_interest_stacksBrowse interest stacksread-only

    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…

  • get_magazinesGet manga magazinesread-only

    List or search manga serialization magazines/publishers (e.g. Weekly Shonen Jump) with their MAL IDs and manga counts. Use `q` to search by name, or look up an ID here for search_manga's `magazines` filter.

  • get_mangaGet manga detailsread-only

    Description is built at runtime.

  • get_manga_charactersGet manga charactersread-only

    List the characters of a manga (by mal_id) with their roles. Get the mal_id from search_manga.

  • get_manga_genresGet manga genresread-only

    List manga genres/themes/demographics with their MAL IDs. Use this to discover the numeric IDs that the `genres` parameter of search_manga expects. `sfw`/`sfw_strict` drop the adult (and, for sfw_strict, Ecchi) genres from the list itself.

  • get_manga_interest_stacksGet interest stacks containing a mangaread-only

    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_manga_newsGet manga newsread-only

    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. `sfw`/`sfw_strict` filter out articles for an NSFW/adult-adjacent manga — verified live this can cut the result down sharply (not necessarily to zero) rather than being a no-op.

  • get_manga_recommendationsGet manga recommendationsread-only

    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. `sfw`/`sfw_strict` filter NSFW entries out of the recommendation list itself. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API's own recommendations field (same output shape, but at most 10 entr…

  • get_manga_reviewsGet manga reviewsread-only

    Get user reviews for one manga (by mal_id): review text (truncated to 1200 characters), score, spoiler/preliminary flags, chapters read at review time (`chapters_read`, not `episodes_watched` — that field is anime-only), and community reaction counts. `limit` (default 5) caps how many of the fetched page's reviews come back — it does not itself fetch further pages, use `page` for Tenrai's own ~20-per-page listing. `sort`/`preliminary`/`spoilers`/`sentiment` filter/order the underlying set before that cap is applied. Get the mal_id from search_manga.

  • get_manga_statisticsGet manga statisticsread-only

    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_my_anime_listGet my anime listread-only

    Get the authenticated user's own anime list, with each entry's status, score and progress. Requires a MyAnimeList login.

  • get_my_manga_listGet my manga listread-only

    Get the authenticated user's own manga list, with status, score and progress. Requires a MyAnimeList login.

  • get_my_user_infoGet my MAL profileread-only

    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_newsGet anime/manga newsread-only

    List recent MyAnimeList news articles site-wide (headline, date, author, excerpt) — not tied to one anime or manga. Use `q` to search by keyword or `tag` to filter by topic tag. Use get_anime_news/get_manga_news instead for news about one specific anime/manga by mal_id. `sfw`/`sfw_strict` drop articles about adult content.

  • get_personGet person detailsread-only

    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 `credits_truncated` plus `total_anime_credits`/`total_manga_credits`, and `full_credits: true` returns every entry. `voice_roles` is separately capped at the first 50, in whatever order the upstream API returns them (not necessarily their most notable roles). Obtain the mal_id from sea…

  • get_producerGet producer/studio detailsread-only

    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_producersGet producers/studiosread-only

    List or search anime producers and studios with their MAL IDs and counts. Use `q` to search by name, then get_producer for one studio's full profile (about text, external links).

  • get_random_animeGet a random animeread-only

    Return one random anime (core details: no `relations`/`streaming`/`opening_themes`/`ending_themes`/`external` — call get_anime with the returned mal_id for those). Good for discovery / suggestions. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable.

  • get_random_characterGet a random characterread-only

    Return one random character (core details: no `anime`/`manga`/`voice_actors` — call get_character with the returned mal_id for those). Good for discovery / trivia. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable.

  • get_random_mangaGet a random mangaread-only

    Return one random manga (core details: no `relations`/`external` — call get_manga with the returned mal_id for those). Good for discovery / suggestions. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable.

  • get_random_personGet a random personread-only

    Return one random person — voice actor, director, author (core details: no `anime`/`manga`/`voice_roles` — call get_person with the returned mal_id for those). Good for discovery / trivia. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable.

  • get_recent_anime_recommendationsGet recent anime recommendationsread-only

    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_recent_manga_recommendationsGet recent manga recommendationsread-only

    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_seasonal_animeGet seasonal animeread-only

    Description is built at runtime.

  • get_seasons_listList available seasonsread-only

    List the years and seasons that have anime data, so you can pick valid arguments for get_seasonal_anime.

  • get_top_animeGet top animeread-only

    Description is built at runtime.

  • get_top_charactersGet top charactersread-only

    Get the most popular/favorited characters, ranked overall. Use search_characters instead to look up a specific character by name.

  • get_top_mangaGet top mangaread-only

    Description is built at runtime.

  • get_top_peopleGet top peopleread-only

    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_upcoming_seasonGet upcoming season animeread-only

    Description is built at runtime.

  • login_malLog in to MyAnimeList

    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.

  • search_animeSearch animeread-only

    Description is built at runtime.

  • search_charactersSearch charactersread-only

    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.

  • search_mangaSearch mangaread-only

    Description is built at runtime.

  • search_peopleSearch peopleread-only

    Search MyAnimeList people (voice actors, directors, authors) by name. Returns the mal_id needed by get_person.

  • submit_mal_redirectFinish MyAnimeList login

    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.

  • update_my_anime_statusUpdate my anime status

    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_statusUpdate my manga status

    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.

Signals

Stars
3
Forks
1
Open issues
0
Last commit
Oct 22, 2026 (6 days ago)
Last release
Oct 22, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.Grinv/mal-mcp
Version
0.11.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Grinv

Cite this page

MAL MCP Server. Agent Mart. https://agentmart.dev/connectors/grinv-mal-mcp (last updated 2026-10-24)