Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

MAL MCP Server

NPM · MAL-MCP · 2 COMPONENTS · SCANNED AUG 3

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

+42 this week 83 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 3 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Grinv/mal-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10530 tokens (~210/item across 50 items; 50 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management18
  • Stability check failed: the tool surface changed between 0.7.2 and 0.9.1: 2 tool removals, 4 breaking changes, 7 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · mal-mcp

# add to Claude Code
claude mcp add grinv-mal-mcp -- npx -y mal-mcp
# add to Codex CLI
codex mcp add grinv-mal-mcp -- npx -y mal-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "grinv-mal-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mal-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add grinv-mal-mcp --command npx --arg -y --arg mal-mcp
# ~/.hermes/config.yaml
mcp_servers:
  grinv-mal-mcp:
    command: "npx"
    args: ["-y", "mal-mcp"]
// mcp.json
{
  "mcpServers": {
    "grinv-mal-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mal-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 14 to 18.

  • 2 Aug 26 +22
    • Malware scan: unverified → pass security
    • Schema quality: unverified → excellent functional
  • 1 Aug 26 +26
    • Stability: unverified → fail security
    • Schema quality: excellent → unverified functional
    • MCP protocol: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → 100 functional
    • Package version: 0.9.0 → 0.9.1 functional
  • 31 Jul 26 −41
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +34
    • Schema quality: 109 → 208 functional
    • Schema quality: unverified → 100 functional
    • Tool coverage: unverified → 100 functional
    • Package version: 0.8.0 → 0.9.0 functional
  • 29 Jul 26 −37
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 0.7.3 → 0.8.0 functional
  • 28 Jul 26 +37
    • Schema quality: unverified → 100 functional
    • Tool coverage: unverified → 100 functional
  • 27 Jul 26 −55
    • Malware scan: pass → unverified security
    • Schema quality: 100 → unverified functional
    • Tool coverage: 100 → unverified functional
    • Package version: 0.7.2 → 0.7.3 functional
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
Grinv/mal-mcp
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/Grinv/mal-mcp/.github/workflows/release.yml@refs/tags/v0.9.1
Rekor log index:
2306026390
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:9f230d99c920f4a21f0c09c1e49b214019719bd29f469f73a644eabfaa6876e14c459462b659f3d20064ef5fb14eb020252eab79fd01aaac653f26451
Discovery method:
attestation_endpoint
Dependencies 3 packages

3 packages in the resolved dependency tree.

MCP tools — 50 exposed · ~10,379 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
delete_my_anime_list_item ~165

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.

NameTypeReqDescription
anime_idintegeryesMyAnimeList numeric ID of the target entry. (The read tools call this same id `id`; it's named anime_id/manga_id here to match MAL's own write endpoints.) Obtain it from search_anime/search_manga, or…
NameTypeReqDescription
anime_idintegeryes
deletedbooleanyes

No examples provided.

delete_my_manga_list_item ~165

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.

NameTypeReqDescription
manga_idintegeryesMyAnimeList numeric ID of the target entry. (The read tools call this same id `id`; it's named anime_id/manga_id here to match MAL's own write endpoints.) Obtain it from search_anime/search_manga, or…
NameTypeReqDescription
deletedbooleanyes
manga_idintegeryes

No examples provided.

get_anime ~372

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. `moreinfo` is a free-text field MAL editors sometimes add (e.g. suggested viewing order for a franchise) — usually absent. Only carries the single main `trailer` URL — use get_anime_videos for every promo/episode-preview/music video. Obtain the mal_id from search_anime first. `sfw`/`sfw_strict` don't affect this anime itself (its id was requested explicitly) — they filter NSFW entries out of its `relations` list. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API, which omits `producers`/`licensors`/`streaming`/`opening_themes`/`ending_themes`/`trailer`/`favorites`/`moreinfo`/`explicit_genres`/`external` (no equivalent fields there) and ignores `sfw`/`sfw_strict` entirely.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
airedstring
airingboolean
backgroundstring
broadcaststring
demographicsarray
durationstring
ending_themesarray
episodesinteger
explicit_genresarray
externalarray
favoritesinteger
genresarray
image_urlstring
licensorsarray
mal_idintegeryes
membersinteger
moreinfostring
opening_themesarray
popularityinteger
producersarray
rankinteger
ratingstring
relationsarray
scorenumber
scored_byinteger
seasonstring
sourcestring
statusstring
streamingarray
studiosarray
synopsisstring
themesarray
titlestring
title_englishstring
title_japanesestring
title_synonymsarray
trailerstring
typestring
urlstring
yearinteger

No examples provided.

get_anime_characters ~51

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

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
charactersarrayyes

No examples provided.

get_anime_episodes ~89

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
pageinteger1-based page number for pagination (1-1000).
NameTypeReqDescription
episodesarrayyes
pageobjectyes

No examples provided.

get_anime_genres ~62

List anime genres/themes/demographics with their MAL IDs. Use this to discover the numeric IDs that the `genres` parameter of search_anime expects.

NameTypeReqDescription
filterstringRestrict to one kind of tag. Omit to list all.
NameTypeReqDescription
genresarrayyes

No examples provided.

get_anime_news ~262

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
pageinteger1-based page number for pagination (1-1000).
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_anime_recommendations ~297

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 ordering/counts may differ slightly from Tenrai's, and `sfw`/`sfw_strict` are ignored entirely).

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
recommendationsarrayyes

No examples provided.

get_anime_reviews ~310

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination (1-1000).
preliminarystringFilter by preliminary. 'true' includes them alongside other reviews (default), 'false' excludes them, 'only' returns exclusively preliminary reviews.
sentimentstringRestrict to reviews with this overall sentiment tag. Omit for all sentiments.
sortstringSort order. Defaults to most_helpful (Tenrai's own default) when omitted.
spoilersstringFilter by spoiler. 'true' includes them alongside other reviews (default), 'false' excludes them, 'only' returns exclusively spoiler reviews.
NameTypeReqDescription
reviewsarrayyes

No examples provided.

get_anime_schedule ~318

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.

NameTypeReqDescription
daystringWeekday to filter by, or `unknown`/`other` for shows with no fixed weekly slot. Omit for the whole week.
kidsbooleanIf true, exclude entries tagged as children's/kids content. Defaults to false.
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination (1-1000).
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
unapprovedbooleanIf true, also include entries not yet approved by MAL's moderators (excluded by default). Defaults to false.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_anime_staff ~68

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
staffarrayyes

No examples provided.

get_anime_statistics ~89

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 (`scores`) entirely — no equivalent field there.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
completedinteger
droppedinteger
on_holdinteger
plan_to_readinteger
plan_to_watchinteger
readinginteger
scoresarray
totalinteger
watchinginteger

No examples provided.

get_anime_videos ~107

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
episodesarrayyes
music_videosarrayyes
promoarrayyes

No examples provided.

get_character ~220

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
aboutstring
animearray
favoritesinteger
image_urlstring
mal_idintegeryes
mangaarray
namestring
name_kanjistring
nicknamesarray
urlstring
voice_actorsarray

No examples provided.

get_magazines ~145

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.

NameTypeReqDescription
letterstringRestrict results to entries whose title starts with this single letter.
limitintegerMax results per page (1-100).
order_bystringField to order by.
pageinteger1-based page number for pagination (1-1000).
qstringFilter by name.
sortstringSort direction.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_manga ~280

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. `sfw`/`sfw_strict` don't affect this manga itself (its id was requested explicitly) — they filter NSFW entries out of its `relations` list. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API, which omits `favorites`/`explicit_genres`/`external` (no equivalent field there) and ignores `sfw`/`sfw_strict` entirely.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
authorsarray
backgroundstring
chaptersinteger
demographicsarray
explicit_genresarray
externalarray
favoritesinteger
genresarray
image_urlstring
mal_idintegeryes
membersinteger
popularityinteger
publishedstring
publishingboolean
rankinteger
relationsarray
scorenumber
scored_byinteger
serializationsarray
statusstring
synopsisstring
themesarray
titlestring
title_englishstring
title_japanesestring
title_synonymsarray
typestring
urlstring
volumesinteger

No examples provided.

get_manga_characters ~47

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

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
charactersarrayyes

No examples provided.

get_manga_genres ~62

List manga genres/themes/demographics with their MAL IDs. Use this to discover the numeric IDs that the `genres` parameter of search_manga expects.

NameTypeReqDescription
filterstringRestrict to one kind of tag. Omit to list all.
NameTypeReqDescription
genresarrayyes

No examples provided.

get_manga_news ~262

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
pageinteger1-based page number for pagination (1-1000).
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_manga_recommendations ~297

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 ordering/counts may differ slightly from Tenrai's, and `sfw`/`sfw_strict` are ignored entirely).

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
recommendationsarrayyes

No examples provided.

get_manga_reviews ~310

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination (1-1000).
preliminarystringFilter by preliminary. 'true' includes them alongside other reviews (default), 'false' excludes them, 'only' returns exclusively preliminary reviews.
sentimentstringRestrict to reviews with this overall sentiment tag. Omit for all sentiments.
sortstringSort order. Defaults to most_helpful (Tenrai's own default) when omitted.
spoilersstringFilter by spoiler. 'true' includes them alongside other reviews (default), 'false' excludes them, 'only' returns exclusively spoiler reviews.
NameTypeReqDescription
reviewsarrayyes

No examples provided.

get_manga_statistics ~78

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
completedinteger
droppedinteger
on_holdinteger
plan_to_readinteger
plan_to_watchinteger
readinginteger
scoresarray
totalinteger
watchinginteger

No examples provided.

get_my_anime_list ~97

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

NameTypeReqDescription
limitintegerMax results (1-100).
offsetintegerOffset for pagination.
sortstringSort order. list_score/list_updated_at return highest/most-recent first; anime_title returns A-Z.
statusstringList status bucket.
NameTypeReqDescription
has_next_pagebooleanyes
itemsarrayyes

No examples provided.

get_my_manga_list ~94

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

NameTypeReqDescription
limitintegerMax results (1-100).
offsetintegerOffset for pagination.
sortstringSort order. list_score/list_updated_at return highest/most-recent first; manga_title returns A-Z.
statusstringList status bucket.
NameTypeReqDescription
has_next_pagebooleanyes
itemsarrayyes

No examples provided.

get_my_user_info ~58

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
anime_statisticsobject
idintegeryes
joined_atstring
location
namestringyes

No examples provided.

get_news ~169

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.

NameTypeReqDescription
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination (1-1000).
qstringSearch query, e.g. a keyword or title. Verified live to search beyond just the headline (a real, unfamiliar-sounding title can still match) — don't assume a result's title visibly contains the term.
tagstringFilter by topic tag.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_person ~270

Get full details for one person by mal_id: bio, their anime/manga staff positions and voiced roles (capped to the first 50 for prolific people, in whatever order the upstream API returns them — not necessarily their most notable roles). Obtain the mal_id from search_people, or from get_character's voice_actors (which include each actor's mal_id — get_anime_characters' voice_actors are names only, with no id). `sfw`/`sfw_strict` filter NSFW/adult-adjacent titles out of the person's own anime/manga credit lists (verified live) rather than affecting the person themselves.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
aboutstring
alternate_namesarray
animearray
birthdaystring
family_namestring
favoritesinteger
given_namestring
image_urlstring
mal_idintegeryes
mangaarray
namestring
urlstring
voice_rolesarray

No examples provided.

get_producer ~64

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.

NameTypeReqDescription
idintegeryesMyAnimeList numeric ID.
NameTypeReqDescription
aboutstring
countinteger
establishedstring
externalarray
favoritesinteger
image_urlstring
mal_idintegeryes
namestring
urlstring

No examples provided.

get_producers ~133

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).

NameTypeReqDescription
letterstringRestrict results to entries whose title starts with this single letter.
limitintegerMax results per page (1-50).
order_bystringField to order by.
pageinteger1-based page number for pagination (1-1000).
qstringFilter by name.
sortstringSort direction.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_random_anime ~162

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.

NameTypeReqDescription
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
airedstring
airingboolean
backgroundstring
broadcaststring
demographicsarray
durationstring
ending_themesarray
episodesinteger
explicit_genresarray
externalarray
favoritesinteger
genresarray
image_urlstring
licensorsarray
mal_idintegeryes
membersinteger
moreinfostring
opening_themesarray
popularityinteger
producersarray
rankinteger
ratingstring
relationsarray
scorenumber
scored_byinteger
seasonstring
sourcestring
statusstring
streamingarray
studiosarray
synopsisstring
themesarray
titlestring
title_englishstring
title_japanesestring
title_synonymsarray
trailerstring
typestring
urlstring
yearinteger

No examples provided.

get_random_character ~43

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
aboutstring
animearray
favoritesinteger
image_urlstring
mal_idintegeryes
mangaarray
namestring
name_kanjistring
nicknamesarray
urlstring
voice_actorsarray

No examples provided.

get_random_manga ~162

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.

NameTypeReqDescription
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
authorsarray
backgroundstring
chaptersinteger
demographicsarray
explicit_genresarray
externalarray
favoritesinteger
genresarray
image_urlstring
mal_idintegeryes
membersinteger
popularityinteger
publishedstring
publishingboolean
rankinteger
relationsarray
scorenumber
scored_byinteger
serializationsarray
statusstring
synopsisstring
themesarray
titlestring
title_englishstring
title_japanesestring
title_synonymsarray
typestring
urlstring
volumesinteger

No examples provided.

get_random_person ~50

Return one random person — voice actor, director, author (full details). Good for discovery / trivia. No official-API fallback exists for this tool — it always needs Tenrai itself to be reachable.

Input schema present but exposes no named parameters.

NameTypeReqDescription
aboutstring
alternate_namesarray
animearray
birthdaystring
family_namestring
favoritesinteger
given_namestring
image_urlstring
mal_idintegeryes
mangaarray
namestring
urlstring
voice_rolesarray

No examples provided.

get_recent_anime_recommendations ~241

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.

NameTypeReqDescription
limitintegerMax results per page (1-100).
pageinteger1-based page number for pagination (1-1000).
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_recent_manga_recommendations ~241

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.

NameTypeReqDescription
limitintegerMax results per page (1-100).
pageinteger1-based page number for pagination (1-1000).
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_seasonal_anime ~527

List anime from a given season — supply both `year` and `season` together, or omit both for the current season; supplying only one is treated as omitting both. For next season's lineup use get_upcoming_season instead. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API — `filter`/`rating`/`unapproved`/`continuing`/`kids`/`order_by`/`sort` are silently dropped (no equivalent there), `themes`/`demographics`/`broadcast` come back empty, an explicit `sfw: true` is enforced client-side (a filtered page can come back shorter than `limit`), and `sfw_strict` degrades to the same filtering as `sfw` there (no Ecchi-genre distinction available).

NameTypeReqDescription
continuingbooleanIf true, also include TV series continuing from a previous season. Defaults to false.
filterarrayRestrict to one or more media types.
kidsbooleanIf true, exclude entries tagged as children's/kids content. Defaults to false.
limitintegerMax results per page (1-50).
order_bystringField to order by. Defaults to members.
pageinteger1-based page number for pagination (1-1000).
ratingarrayRestrict to one or more specific content ratings. More granular than `sfw`/`sfw_strict` — use this to target a precise rating band instead of a blanket adult-content cutoff.
seasonstringSeason name.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
sortstringSort direction.
unapprovedbooleanIf true, also include entries not yet approved by MAL's moderators (excluded by default). Defaults to false.
yearintegerFour-digit year, e.g. 2024.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_seasons_list ~34

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

Input schema present but exposes no named parameters.

NameTypeReqDescription
seasonsarrayyes

No examples provided.

get_top_anime ~397

Get anime ranked by all-time score/popularity, not tied to any season. Use `filter` for special rankings (airing, upcoming, bypopularity, favorite); for a specific season's lineup use get_seasonal_anime or get_upcoming_season instead. If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API — `type`/`filter` are merged into one best-effort ranking, `rating` is ignored entirely, `themes`/`demographics`/`broadcast` come back empty, and `sfw_strict` degrades to the same filtering as `sfw` (the official API can't separate adult-rated from Ecchi-tagged-but-safely-rated).

NameTypeReqDescription
filterstringSpecial ranking filter.
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination. No upper bound — this ranking runs to the end of MAL's own catalog.
ratingarrayRestrict to one or more specific content ratings. More granular than `sfw`/`sfw_strict` — use this to target a precise rating band instead of a blanket adult-content cutoff.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
typearrayRestrict to one or more media types.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_top_characters ~81

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

NameTypeReqDescription
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination. No upper bound — this ranking runs to the end of MAL's own catalog.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_top_manga ~319

Get manga ranked by all-time score/popularity, not tied to any release window. Use `filter` for special rankings (publishing, upcoming, bypopularity, favorite). If Tenrai is unavailable and MAL_CLIENT_ID is set, transparently retries via the official API — `type`/`filter` are merged into one best-effort ranking, `themes`/`demographics` come back empty, and `sfw_strict` degrades to the same filtering as `sfw` (the official API can't separate adult-rated from Ecchi-tagged-but-safely-rated).

NameTypeReqDescription
filterstringSpecial ranking filter.
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination. No upper bound — this ranking runs to the end of MAL's own catalog.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
typearrayRestrict to one or more publication types.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_top_people ~86

Get the most popular/favorited people (voice actors, staff, authors), ranked overall. Use search_people instead to look up a specific person by name.

NameTypeReqDescription
limitintegerMax results per page (1-50).
pageinteger1-based page number for pagination. No upper bound — this ranking runs to the end of MAL's own catalog.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.

get_upcoming_season ~475

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 — `filter`/`rating`/`unapproved`/`continuing`/`kids`/`order_by`/`sort` are silently dropped (no equivalent there), `themes`/`demographics`/`broadcast` come back empty, an explicit `sfw: true` is enforced client-side (a filtered page can come back shorter than `limit`), and `sfw_strict` degrades to the same filtering as `sfw` there (no Ecchi-genre distinction available).

NameTypeReqDescription
continuingbooleanIf true, also include TV series continuing from a previous season. Defaults to false.
filterarrayRestrict to one or more media types.
kidsbooleanIf true, exclude entries tagged as children's/kids content. Defaults to false.
limitintegerMax results per page (1-50).
order_bystringField to order by. Defaults to members.
pageinteger1-based page number for pagination (1-1000).
ratingarrayRestrict to one or more specific content ratings. More granular than `sfw`/`sfw_strict` — use this to target a precise rating band instead of a blanket adult-content cutoff.
sfwbooleanIf true, exclude adult/explicit-rated entries (R+ Mild Nudity and up). Defaults to false (no filtering). Note: this alone still allows mainstream, safely-rated shows tagged with the Ecchi genre (fans…
sfw_strictbooleanIf true, exclude adult/explicit-rated entries AND anything tagged with the Ecchi genre, even otherwise-mainstream/safely-rated shows. Stricter than `sfw` alone. Defaults to false.
sortstringSort direction.
unapprovedbooleanIf true, also include entries not yet approved by MAL's moderators (excluded by default). Defaults to false.
NameTypeReqDescription
pageobjectyes
resultsarrayyes

No examples provided.