Skip to main content
Glama
Grinv

AniList MCP Server

Search anime/manga

search_media
Read-only

Search AniList for anime or manga by title, genre, format, status, season/year, or browse by ranking. Returns AniList IDs for use with other tools.

Instructions

Search AniList for anime or manga by title and/or filters (genre, format, status, season/year), or browse term-less by ranking (top-rated, most popular, trending — see the sort parameter) when you don't have a title to search for. Adult (NSFW) results are included unless you set sfw: true — see the sfw parameter. Returns AniList IDs to use with get_media and other ID-based tools.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sfwNoSet true to exclude adult (isAdult) entries. Adult results are NOT filtered by default.
pageNoPage number for pagination. AniList's paginated connections (search results, a title's characters/staff/reviews, activity feeds, forum comments) reject a page whose page × perPage exceeds ~5000 entries with an upstream error, so paging that deep fails rather than returning more results.
sortNoSort order, most-significant key first (e.g. ["SCORE_DESC"] for highest-rated first, ["POPULARITY_DESC"] for most popular, ["TRENDING_DESC"] for what's hot right now). Defaults to relevance-ranked SEARCH_MATCH when a `term` is given; with no term and no explicit sort, results come back in AniList's own default order. Set an explicit sort for a term-less ranking/browse query (e.g. top-rated or most-popular).
termNoFree-text search term (matches title). Omit to only filter.
typeYesWhether to search anime or manga.
genresNoRestrict to entries matching ALL of these genre names (see get_genres for valid names) — an unrecognized genre name doesn't error, it just filters out all results, same silent-mismatch behavior as `format_in`/`tag_in` below.
onListNo[Requires login] Restrict to (true) or exclude (false) entries already on the authenticated user's own list. Omit to ignore list status entirely. Confirmed live: silently no-ops (identical results for true/false/omitted) if not logged in, since there's no list to check against — same behavior as get_recommendations_for_media's `excludeInList`.
seasonNoRestrict to this airing season. Works alone — matches every year's occurrence of that season, NOT just the current year (unlike anilist.co's own season filter UI, which implicitly assumes the current year when you don't also pick one). Combine with `seasonYear` for one specific season+year.
tag_inNoRestrict to entries matching ALL of these exact tag names (see get_media_tags for valid names — unlike `genres`, tag names are case-sensitive and more specific, e.g. "Time Loop" or "Tragedy"). An unrecognized tag name doesn't error, it just silently matches nothing (same behavior as `genres`/`format_in` above, confirmed live).
perPageNoResults per page (max 25).
format_inNoRestrict to these formats. Only formats valid for the `type` you're searching match anything — e.g. NOVEL/ONE_SHOT with type: ANIME, or TV/OVA/ONA with type: MANGA, will just filter out all results, not error.
source_inNoRestrict to entries adapted from these source material types.
status_inNoRestrict to these release statuses.
seasonYearNoRestrict to this airing/release year (matches any season within it). Works alone or combined with `season` for one specific season+year — neither requires the other.
endDate_lesserNoRestrict to entries whose end date is on or before this date.
endDate_greaterNoRestrict to entries whose end date is on or after this date.
episodes_lesserNoRestrict to entries with fewer episodes/chapters than this.
episodes_greaterNoRestrict to entries with more episodes/chapters than this.
startDate_lesserNoRestrict to entries whose start date is on or before this date.
popularity_lesserNoRestrict to entries with fewer list-adds than this.
startDate_greaterNoRestrict to entries whose start date is on or after this date.
includeDescriptionNoAlso fetch each result's full synopsis (`description`). Kept off by default — with up to 25 results per call, always including it would burn tokens on text you may not need; use get_media for a single title's full synopsis instead.
popularity_greaterNoRestrict to entries with more list-adds than this.
averageScore_lesserNoRestrict to entries with an average score strictly less than this (0-100).
averageScore_greaterNoRestrict to entries with an average score strictly greater than this (0-100).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only and open-world, and the description adds substantial behavioral context: adult results are included by default unless sfw=true, silent no-op behavior for onList when not logged in, season matching every year rather than just current year, and upstream pagination failure at deep pages. These go well beyond the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused paragraph that front-loads the core functionality, then adds essential caveats (NSFW inclusion, ID output, term-less browsing) without listing all 25 parameters. Every sentence contributes value and the structure is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 25 parameters, a rich output schema, and annotations, the description is remarkably complete. It covers primary usage modes, important edge cases (silent mismatches, login requirements), integration with other tools, and points to schema for further detail. No significant information gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a detailed description. The tool description mainly references key parameters (sort, sfw) and relates them to use cases, but adds no new semantic detail beyond the schema's own parameter explanations. Thus baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly identifies the tool as searching AniList for anime/manga by title or filters, and distinguishes it from sibling search tools (search_character, search_staff, etc.) by specifying the resource type. It also differentiates from get_media by noting that this tool returns AniList IDs for use with other ID-based tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use term-less browsing by ranking vs. title search, and directs users to get_media for full synopses. Names alternative tools for genres (get_genres) and tags (get_media_tags), and explains the default sort behavior without a term. Also advises on includeDescription to avoid token bloat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/anilist-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server