Skip to main content
Glama
gavxm
by gavxm

ani-mcp

npm version npm downloads CI License: MIT MCP Bundle

A smart MCP server for AniList that understands your anime and manga taste - not just raw API calls.

What makes this different

Most AniList integrations mirror the API 1:1. ani-mcp adds an intelligence layer on top:

  • Taste profiling - builds a model of your preferences from your completed list

  • Personalized picks - "what should I watch next?" based on your taste, mood, and seasonal lineup

  • Compatibility - compare taste between two users

  • Sequel alerts - find sequels airing this season for shows you've finished

  • Watch order - franchise chain traversal for long-running series

  • Session planning - "I have 90 minutes, what should I watch?" from your current list

  • Year in review - your watching/reading stats wrapped up

Plus the essentials: search, details, trending, seasonal browsing, list management, social features, and community recommendations. All search and browse tools support pagination for browsing beyond the first page of results.

Related MCP server: MAL User MCP Server

Try it in 30 seconds

No account needed. Works with any MCP-compatible client.

Claude Desktop

Add to your config file (Settings > Developer > Edit Config or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "anilist": {
      "command": "npx",
      "args": ["-y", "ani-mcp"]
    }
  }
}

Restart Claude Desktop after saving.

Alternatively, download ani-mcp.mcpb from the latest release and install via Settings > Extensions.

Claude Code

claude mcp add ani-mcp -- npx -y ani-mcp

Personalized features

Add your username for recommendations, taste profiling, and list management:

{
  "mcpServers": {
    "anilist": {
      "command": "npx",
      "args": ["-y", "ani-mcp"],
      "env": {
        "ANILIST_USERNAME": "your_username"
      }
    }
  }
}

For write operations (updating progress, scoring, list edits), also add ANILIST_TOKEN. See Environment Variables for details.

Environment Variables

Variable

Required

Description

ANILIST_USERNAME

No

Default username for list and stats tools. Can also pass per-call.

ANILIST_TOKEN

No

AniList OAuth token. Required for write operations and private lists.

ANILIST_TITLE_LANGUAGE

No

Title preference: english (default), romaji, or native.

ANILIST_SCORE_FORMAT

No

Override score display: POINT_100, POINT_10_DECIMAL, POINT_10, POINT_5, POINT_3.

ANILIST_NSFW

No

Set to true to include adult content in results. Default: false.

ANILIST_MOOD_CONFIG

No

JSON object to add or override mood keywords. See Mood config.

DEBUG

No

Set to true for debug logging to stderr.

MCP_TRANSPORT

No

Set to http for HTTP Stream transport. Default: stdio.

MCP_PORT

No

Port for HTTP transport. Default: 3000.

MCP_HOST

No

Host for HTTP transport. Default: localhost.

Tools

Search & Discovery

Tool

Description

anilist_search

Search anime/manga by title with genre, year, and format filters

anilist_details

Full details, relations, and recommendations for a title

anilist_seasonal

Browse a season's anime lineup

anilist_trending

What's trending on AniList right now

anilist_genres

Browse top titles in a genre with optional filters

anilist_genre_list

List all valid genres and content tags

anilist_recommendations

Community recommendations for a specific title

Lists & Stats

Tool

Description

anilist_list

A user's anime/manga list, filtered by status

anilist_lookup

Check if a specific title is on a user's list

anilist_stats

Watching/reading statistics, top genres, score distribution

Intelligence

Tool

Description

anilist_taste

Generate a taste profile from your completed list

anilist_pick

Personalized "what to watch next" from your backlog, seasonal lineup, or discovery pool

anilist_compare

Compare taste compatibility between two users

anilist_wrapped

Year-in-review summary

anilist_explain

"Why would I like this?" - score a title against your taste profile

anilist_similar

Find titles similar to a given anime or manga

anilist_sequels

Sequels airing this season for titles you've completed

anilist_watch_order

Viewing order for a franchise

anilist_session

Plan a viewing session within a time budget

anilist_mal_import

Import a MyAnimeList user's list and generate recommendations

anilist_kitsu_import

Import a Kitsu user's list and generate recommendations

Cards

Tool

Description

anilist_taste_card

Generate a shareable taste profile card as a PNG image

anilist_compat_card

Generate a compatibility card comparing two users as a PNG image

Info

Tool

Description

anilist_staff

Staff credits and voice actors for a title

anilist_staff_search

Search for a person by name and see all their works

anilist_studio_search

Search for a studio and see their productions

anilist_schedule

Airing schedule and next episode countdown

anilist_airing

Upcoming episodes for titles you're currently watching

anilist_characters

Search characters by name with appearances and VAs

anilist_whoami

Check authentication status and score format

Social

Tool

Description

anilist_profile

View a user's profile, bio, favourites, and stats

anilist_feed

Recent activity from a user's feed

anilist_reviews

Community reviews for a title

anilist_favourite

Toggle favourite on anime, manga, character, staff, or studio

anilist_activity

Post a text activity to your feed

anilist_group_pick

Find anime/manga for a group to watch together

anilist_shared_planning

Find overlap between two users' planning lists

anilist_follow_suggestions

Rank followed users by taste compatibility

anilist_react

Like or reply to an activity

Analytics

Tool

Description

anilist_calibration

Per-genre scoring bias vs community consensus

anilist_drops

Drop pattern analysis - genre/tag clusters and median drop point

anilist_evolution

How your taste shifted across 2-year time windows

anilist_completionist

Franchise completion tracking via relation graph

anilist_seasonal_stats

Per-season pick/finish/drop rates

anilist_pace

Estimated completion date for currently watching titles

Write (requires ANILIST_TOKEN)

Tool

Description

anilist_update_progress

Update episode or chapter progress

anilist_add_to_list

Add a title to your list with a status

anilist_rate

Score a title (0-10)

anilist_delete_from_list

Remove an entry from your list

anilist_undo

Undo the last write operation

anilist_unscored

List completed but unscored titles for batch scoring

anilist_batch_update

Bulk filter + action on list entries (dry-run default)

Resources

MCP resources provide context to your AI assistant without needing a tool call. Clients that support resources can automatically include this information in conversations.

Resource

Description

anilist://profile

Your AniList profile with bio, stats, and favourites

anilist://taste/{type}

Taste profile (genre weights, themes, scoring patterns) for ANIME or MANGA

anilist://list/{type}

Currently watching/reading entries with progress and scores

Prompts

Pre-built conversation starters that clients can offer as quick actions.

Prompt

Description

setup

Walk through connecting your AniList account step by step

seasonal_review

Review this season's anime against your taste profile

what_to_watch

Plan what to watch now with optional mood and time budget

roast_my_taste

Get a humorous roast of your anime taste

compare_us

Compare your taste with another user

year_in_review

Your anime/manga year in review

explain_title

Why would you like (or dislike) a specific title?

find_similar

Find titles similar to one you enjoyed

Examples

Here are some things you can ask your AI assistant once ani-mcp is connected:

"What should I watch next?" Uses anilist_pick to analyze your completed list, build a taste profile, and recommend titles from your Planning list ranked by how well they match your preferences.

"I want something dark and psychological" Uses anilist_pick with mood filtering to boost titles matching that vibe and penalize mismatches.

"What's good this season?" Uses anilist_pick with source: SEASONAL to rank currently airing anime against your taste profile.

"I have 90 minutes, what should I watch tonight?" Uses anilist_session to pick from your currently watching list and fill a time budget with the best-matching episodes.

"Any sequels airing for stuff I've finished?" Uses anilist_sequels to cross-reference your completed list with this season's lineup.

"What order do I watch Fate in?" Uses anilist_watch_order to traverse the franchise relation graph and produce a numbered viewing order.

"Compare my taste with username123" Uses anilist_compare to find shared titles, compute a compatibility score, and highlight biggest disagreements.

"Why would I like Vinland Saga?" Uses anilist_explain to score a title against your taste profile, breaking down genre affinity and theme alignment.

"Show me my anime year in review" Uses anilist_wrapped to summarize everything you watched in a given year.

Mood config

anilist_pick and anilist_session accept a freeform mood string. Built-in keywords include: dark, chill, hype, action, romantic, funny, brainy, sad, scary, epic, wholesome, intense, mystery, fantasy, scifi, trippy, nostalgic, artistic, competitive, cozy.

To add or override keywords, set ANILIST_MOOD_CONFIG as a JSON object:

{
  "ANILIST_MOOD_CONFIG": "{\"cozy\":{\"boost\":[\"Slice of Life\",\"Iyashikei\"],\"penalize\":[\"Horror\"]},\"mykeyword\":{\"boost\":[\"Romance\"],\"penalize\":[]}}"
}

Each key is a mood keyword mapping to { boost: string[], penalize: string[] } arrays of AniList genres and tags.

Privacy

See PRIVACY.md for details. In short: ani-mcp runs locally, sends requests only to the AniList API, stores nothing, and collects no analytics.

Docker

docker build -t ani-mcp .
docker run -e ANILIST_USERNAME=your_username ani-mcp

Runs on port 3000 with HTTP Stream transport by default.

Build from Source

git clone https://github.com/gavxm/ani-mcp.git
cd ani-mcp
npm install
npm run build
npm test

Support

Bug reports and feature requests: GitHub Issues

License

MIT

Available Tools

55 tools
anilist_activityA
Destructive

Post a text activity to your AniList feed. Use when the user wants to share a status update, thought, or message. Requires ANILIST_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText content of the activity post

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true (non-idempotent write), and the description adds only that it creates an activity and requires authentication. The added behavioral insight beyond annotations is minimal, hence score 3.

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?

Two short sentences with no excess verbiage. The description is front-loaded with the primary action and usage context, every word earns its place.

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

Completeness4/5

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

Given a simple tool with one parameter (fully described in schema) and annotations present, the description covers purpose, usage, and authentication. It could optionally mention the response format, but it's not critical. Overall, sufficiently complete.

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 coverage is 100% with a clear description for the 'text' parameter. The description adds context about the content (status update, thought, message) but does not significantly enhance the schema's meaning, so 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?

The description clearly states the verb (Post) and resource (text activity to AniList feed), and it distinguishes itself from sibling tools (e.g., list management, search). The phrase 'status update, thought, or message' provides specific use cases.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when the user wants to share a status update, thought, or message' and mentions the required token, providing clear guidance on when to use. It lacks explicit when-not or alternative tools, but the context is sufficient.

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

anilist_add_to_listA
DestructiveIdempotent

Add an anime or manga to your list with a status. Use when the user wants to start watching, plan to watch, or mark a title as completed. Requires ANILIST_TOKEN. Returns status, optional score, and entry ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdYesAniList media ID to add to the list
statusYesList status to set
scoreNoScore on a 0-10 scale (e.g. 8.5). Omit to leave unscored.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true and idempotentHint=true, which the description does not contradict. The description adds valuable context: the requirement for ANILIST_TOKEN and the return of status, score, and entry ID.

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?

Two concise sentences: first states the purpose, second provides usage guidance, auth requirement, and return info. No superfluous text.

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

Completeness4/5

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

Given no output schema, the description adequately covers the return (status, optional score, entry ID) and auth requirement. It could mention the full set of statuses, but the schema already lists them.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the score's optionality and range (0-10) and mentioning the entry ID return value, which is not in the schema.

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?

The description clearly states the action ('Add an anime or manga to your list'), the resource (media), and the key parameter (status). It distinguishes from sibling tools like delete or update by specifying the list addition operation.

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

Usage Guidelines4/5

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

The description provides explicit usage scenarios: 'when the user wants to start watching, plan to watch, or mark a title as completed.' This guides the agent on when to invoke this tool, though it does not explicitly contrast with alternatives.

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

anilist_airingA
Read-only

Show upcoming episodes for all anime you're currently watching. Use when the user asks what's airing soon, what episodes are coming up, or wants a watchlist calendar. Returns titles sorted by next airing time with episode number and countdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
limitNoMax titles to show (default 20, max 50)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds behavioral details: 'Returns titles sorted by next airing time with episode number and countdown.' This gives useful output format information without contradictory statements.

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 two sentences, front-loaded with the purpose, and contains no extraneous words. Every sentence adds value.

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

Completeness4/5

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

For a simple read-only tool with two parameters and no output schema, the description adequately covers purpose, usage, and output format. Minor gaps like error handling are acceptable given annotations.

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 coverage is 100% with both parameters clearly described. The description does not add new meaning beyond the schema; it only reiterates the purpose. Baseline score of 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?

The description clearly states the action ('show') and the resource ('upcoming episodes for all anime you're currently watching'). It distinguishes itself from sibling tools like 'anilist_schedule' and 'anilist_list' by focusing on personal watchlist airing.

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

Usage Guidelines4/5

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

The description explicitly says when to use it: 'when the user asks what's airing soon, what episodes are coming up, or wants a watchlist calendar.' It does not mention when not to use or name alternatives, but the guidance is clear.

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

anilist_batch_updateA
Destructive

Apply a bulk action to multiple list entries matching a filter. Use when the user wants to move all low-scored titles to Dropped, add all planning titles to current, or bulk-change statuses. Defaults to dry-run mode (preview only). Requires ANILIST_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoUpdate anime or manga entriesANIME
filterYes
actionYes
dryRunNoPreview changes without applying them. Set to false to execute.
limitNoMax entries to update in one call (default 50, max 100)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate destructive action, but the description adds value by explaining default dry-run mode ('preview only') and the need for ANILIST_TOKEN. No contradictions with annotations.

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?

Four sentences, front-loaded with purpose and usage examples. No redundant or missing information. Every sentence earns its place.

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

Completeness3/5

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

The tool is complex with nested filters and actions, and no output schema is provided. The description mentions preview changes but does not explain the response format, which is a notable gap.

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 high (all parameters have descriptions in the schema), so baseline is 3. The tool description does not add parameter-level detail beyond examples, but the schema is clear.

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?

The description clearly states the verb ('Apply a bulk action') and resource ('multiple list entries matching a filter'), with concrete examples like moving low-scored titles to Dropped. It distinguishes from siblings by focusing on batch operations.

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

Usage Guidelines4/5

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

The description gives explicit when-to-use scenarios (e.g., bulk-change statuses) and notes the default dry-run mode and token requirement. However, it does not mention alternatives when not to use this tool (e.g., single updates).

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

anilist_calibrationA
Read-onlyIdempotent

Score calibration analysis showing how a user rates compared to community consensus. Use when the user asks if they score too high or low, which genres they're harshest or most generous on, or how their taste compares to mainstream. Returns overall bias, per-genre deviation, and scoring tendency.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoAnalyze anime or manga scoresANIME

TDQS

A4.5/5.0
Behavior4/5

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

The description adds value beyond annotations by specifying the return structure: 'Returns overall bias, per-genre deviation, and scoring tendency.' Annotations already declare readOnlyHint and idempotentHint, so the description enriches behavioral understanding without contradiction.

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?

Two efficient sentences: first states purpose and return, second provides usage guidance. No unnecessary words, front-loaded with key information.

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?

Given the tool has two well-documented parameters, no output schema required (returns described), and annotations cover safety (read-only, idempotent), the description is complete for an analysis tool. All critical information is present.

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 coverage is 100% with descriptions for both parameters. The description does not add new semantic information beyond what the schema provides, so 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?

The description clearly states it performs 'Score calibration analysis' and explicitly describes its function: comparing user ratings to community consensus. It includes usage cues like 'Use when the user asks if they score too high or low' which distinguishes it from sibling tools like anilist_taste or anilist_stats.

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?

Provides explicit when-to-use scenarios: 'when the user asks if they score too high or low, which genres they're harshest or most generous on, or how their taste compares to mainstream.' This gives clear context for selection, though it omits explicit when-not-to-use guidance.

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

anilist_charactersA
Read-only

Search for anime/manga characters by name. Use when the user asks about a specific character, wants to know which series a character appears in, or who voices them. Returns character appearances with roles and voice actors.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCharacter name to search for, e.g. "Goku", "Levi Ackerman"
limitNoNumber of results to return (default 5, max 10)
pageNoPage number for pagination (default 1)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that results include appearances, roles, and voice actors, which is helpful but does not elaborate on pagination or other behavioral traits.

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?

Two sentences with no fluff: first sentence states purpose and usage, second sentence describes output. Highly efficient and front-loaded.

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

Completeness4/5

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

Given 100% schema coverage and no output schema, the description explains return values (appearances, roles, voice actors) and usage context. Pagination details are in the schema, so the description is sufficiently complete.

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 coverage is 100%, so the schema already defines all parameters. The description does not add parameter-specific details beyond what the schema provides, so 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?

The description explicitly states it searches for anime/manga characters by name, with specific use cases like finding series appearances or voice actors. This clearly distinguishes it from sibling tools like anilist_search or anilist_staff_search.

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

Usage Guidelines4/5

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

The description provides clear when-to-use scenarios (user asks about a specific character, series appearances, voice actors). It lacks explicit when-not-to-use, but the context of siblings implies appropriateness.

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

anilist_compareA
Read-only

Compare taste profiles between two AniList users. Use when someone asks to compare their taste with another user. Returns compatibility %, shared favorites, biggest disagreements, genre divergences, and cross-recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
user1YesFirst AniList username
user2YesSecond AniList username
typeNoCompare anime or manga tasteANIME

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds value by listing the return data (compatibility %, shared favorites, disagreements, etc.), which is not in the schema. It does not mention side effects or auth needs, but the read-only nature covers behavioral traits.

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 consists of two concise sentences: the first states the purpose, the second gives usage context and output summary. Every sentence adds value with no redundancy.

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

Completeness4/5

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

Given the tool has 3 parameters (2 required, 1 enum), no output schema, and simple read-only behavior, the description covers the return values and use case adequately. It does not mention error conditions or prerequisites, but for a comparison tool, this is reasonably complete.

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 coverage is 100%, so each parameter already has a description. The description does not add significant new meaning beyond the schema; it reiterates that user1 and user2 are usernames and type can be ANIME or MANGA. 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?

The description clearly states the tool compares taste profiles between two AniList users, specifying the verb 'Compare' and the resource. It distinguishes itself from siblings by focusing on user-to-user comparison, and it lists specific return values like compatibility percentage and shared favorites.

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

Usage Guidelines4/5

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

The description provides explicit usage context: 'Use when someone asks to compare their taste with another user.' It does not explicitly state when not to use it or mention alternatives, but the context makes the tool's purpose clear.

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

anilist_compat_cardA
Read-only

Generate a shareable compatibility card image comparing two AniList users. Returns a PNG image showing compatibility %, genre comparison, shared favorites, and key differences. Use when someone wants a visual comparison of taste.

ParametersJSON Schema
NameRequiredDescriptionDefault
user1YesFirst AniList username
user2YesSecond AniList username
typeNoCompare anime or manga tasteANIME

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds that the tool returns a PNG image, offering behavioral context beyond annotations. It does not cover potential limitations, but the annotation coverage is high, so the description provides useful addition.

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?

Two sentences, front-loaded with the action and output, no unnecessary words. Every sentence adds value.

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

Completeness4/5

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

The description explains the return value (PNG image with specific content), which is sufficient given no output schema. It covers the main use case and input constraints. Missing details like image format details or user existence requirements are minor given openWorldHint.

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 coverage is 100%, with clear descriptions for each parameter. The description does not add detailed parameter semantics beyond stating the output content (genre comparison, etc.), which indirectly relates to the 'type' parameter. Baseline of 3 is appropriate as schema already does the heavy lifting.

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?

The description clearly states the tool generates a shareable compatibility card image comparing two AniList users, specifying the output format (PNG) and content (compatibility %, genre comparison, etc.). It distinguishes itself from siblings like anilist_compare by emphasizing a visual card output.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when someone wants a visual comparison of taste,' providing a clear use case. It does not mention alternatives or when not to use, but the context of sibling tools implies text-based comparisons are elsewhere.

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

anilist_completionistA
Read-onlyIdempotent

Franchise completion tracker showing progress through series with sequels. Use when the user asks what franchises they've started but not finished, their completion rate, or what's left to watch in a series. Returns franchise groups with completed/total counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoCheck anime or manga franchise completionANIME
limitNoNumber of franchise groups to show (default 10, max 20)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety and side effects. The description adds value by specifying the output shape (franchise groups with completed/total counts), which is not in the annotations.

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 extremely concise at two sentences, front-loaded with the core purpose, and contains no unnecessary words. Every sentence adds value.

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

Completeness4/5

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

Given the tool is a simple read-only query with a well-defined return structure (franchise groups with counts), and all parameters are covered in the schema, the description is sufficiently complete. The lack of an output schema is compensated by the description explaining the return type.

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?

All three parameters have descriptions in the schema (100% coverage). The description does not add additional semantic detail beyond what is already provided in the input schema, so baseline score of 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?

The description clearly states the tool's function as a franchise completion tracker with specific use cases ('what franchises they've started but not finished, their completion rate, or what's left to watch'). It distinguishes from siblings by focusing on franchise groups with completed/total counts.

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

Usage Guidelines4/5

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

The description explicitly tells when to use the tool, listing example queries. While it doesn't name alternatives or exclusions, the guidance is clear and context-appropriate given the sibling tools.

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

anilist_delete_from_listA
DestructiveIdempotent

Remove an entry from your anime or manga list. Pass either a list entry ID or a media ID. Requires ANILIST_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryIdNoList entry ID to delete (from anilist_list)
mediaIdNoAniList media ID to remove from your list

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds the authentication requirement (ANILIST_TOKEN), which is critical for invocation. It does not describe side effects beyond deletion, but the annotations cover the key traits.

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?

Two sentences, no waste. Front-loaded with verb and resource. Every word earns its place.

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

Completeness4/5

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

No output schema, but the description explains deletion and authentication. It lacks details on return value or error handling, but for a simple destructive action with good annotations, it is reasonably complete.

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

Parameters4/5

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

Input schema has 100% coverage with descriptions. The description adds the 'either/or' constraint and contextual hint ('from anilist_list') that goes beyond the schema, clarifying usage.

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?

The description clearly states the action ('Remove an entry') and the resource ('anime or manga list'). It distinguishes from sibling tools like anilist_add_to_list (add) and anilist_list (view). The mention of two identification methods (entryId or mediaId) adds specificity.

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

Usage Guidelines4/5

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

The description tells the user to pass either a list entry ID or a media ID, and mentions the required token. It does not explicitly state when not to use this tool (e.g., for batch operations) but the context of siblings provides implicit guidance.

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

anilist_detailsA
Read-only

Get full details about a specific anime or manga. Use when the user asks about a specific title and wants synopsis, score, episodes, studios, related works, and recommendations. Accepts AniList ID (faster, exact) or title (fuzzy match with abbreviation support). Returns format, status, episodes/chapters, season, score, studios, source, genres, tags, synopsis, related works, and community recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAniList media ID (e.g. 1 for Cowboy Bebop). Use this if you know the exact ID.
titleNoSearch by title if no ID is known (e.g. "Attack on Titan"). Finds the best match.
typeNoMedia type to look up. Defaults to ANIME.ANIME

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context: accepts ID (faster, exact) or title (fuzzy match with abbreviation support) and lists return fields. No contradictions.

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?

Four sentences, front-loaded with purpose and usage. Each sentence adds value: purpose, when-to-use, input options, output details. No unnecessary words.

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?

With three parameters, 100% schema coverage, and no output schema, the description fully explains the tool's return values and invocation options. No gaps in context.

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

Parameters5/5

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

Schema coverage is 100% with individual parameter descriptions. The description enhances these by adding context like 'faster, exact' for id, 'fuzzy match with abbreviation support' for title, and reaffirms the default for type.

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?

The description starts with a clear verb+resource: 'Get full details about a specific anime or manga.' It lists specific fields (synopsis, score, episodes, etc.), distinguishing it from sibling tools like search or lookup.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'Use when the user asks about a specific title and wants synopsis, score, episodes, studios, related works, and recommendations.' However, it does not mention when not to use or alternative tools.

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

anilist_dropsA
Read-onlyIdempotent

Drop pattern analysis from a user's dropped list. Use when the user asks why they drop shows, what patterns their drops follow, or which genres they abandon most. Returns drop rate by genre/tag, median episode at drop, and early drop percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoAnalyze anime or manga dropsANIME

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral details about the return format (drop rate by genre/tag, median episode at drop, early drop percentage), which are not in annotations. No contradictions.

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 three sentences with no wasted words. It front-loads the purpose, then usage, then output. Every sentence adds value.

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

Completeness4/5

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

Despite no output schema, the description enumerates three key outputs, which is adequate for a simple analysis tool. It does not explain default user behavior or limits, but overall it's fairly complete given the context.

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 coverage is 100% with both parameters described in input schema. The description does not add extra meaning beyond what the schema provides, so 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?

The description clearly states 'Drop pattern analysis from a user's dropped list' with specific verb 'analysis' and resource. It further distinguishes from siblings by detailing use cases for drop pattern queries like why they drop shows, patterns, and genres abandoned.

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

Usage Guidelines4/5

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

The description explicitly lists when to use ('when the user asks why they drop shows, what patterns their drops follow, or which genres they abandon most'). It does not explicitly mention alternatives or when not to use, but the focus on drops provides clear differentiation from sibling tools.

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

anilist_evolutionA
Read-onlyIdempotent

Genre evolution analysis showing how taste has shifted over time. Use when the user asks how their taste has changed, what they used to watch vs now, or wants a timeline of their preferences. Returns era-by-era genre rankings and shift descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoTrack anime or manga taste evolutionANIME

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description does not need to reiterate safety. The description adds valuable behavioral context by stating the output format ('era-by-era genre rankings and shift descriptions'), which goes beyond the annotation info.

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 three sentences: first sentence defines the tool, second gives usage triggers, third describes the return value. No unnecessary words; it is front-loaded and self-contained.

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 read-only analysis tool with no output schema, the description fully covers purpose, usage triggers, and return format. It is sufficient for an AI agent to understand what the tool does and when to invoke it.

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 coverage is 100%, with both parameters (username, type) having descriptions and the type having an enum. The description does not add extra parameter-level detail; it only mentions the output. Baseline 3 is appropriate since the schema already handles parameter semantics.

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?

The description uses a specific verb 'analysis showing' and clearly identifies the resource as genre evolution over time. It distinguishes from sibling tools by focusing on taste change and timeline, which is unique among the many anilist_* tools.

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

Usage Guidelines4/5

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

The description explicitly lists usage triggers: 'how their taste has changed', 'what they used to watch vs now', or 'timeline of their preferences'. This provides clear context, though it does not explicitly mention when not to use or alternative tools.

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

anilist_explainA
Read-only

Score a specific title against a user's taste profile and explain the alignment. Use when the user asks "why would I like this?", "is this for me?", or wants to know how well a specific anime/manga matches their preferences. Returns match score, genre/theme affinity breakdown, mood fit, and existing list status.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdNoAniList media ID to evaluate against your taste profile
titleNoSearch by title if no ID is known
usernameNoAniList username. Falls back to configured default if not provided.
typeNoBuild taste profile from anime list, manga list, or bothBOTH
moodNoOptional mood context, e.g. "dark and brainy"

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds valuable behavioral details: returns match score, genre/theme affinity breakdown, mood fit, and existing list status. No contradictions.

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?

Two sentences, front-loaded with purpose, no wasted words. Highly efficient.

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

Completeness4/5

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

No output schema, but description lists return values. Covers main aspects of what the tool does and returns. Context about parameters is fully covered.

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 coverage is 100%, so baseline is 3. Description adds some context (e.g., 'Search by title if no ID is known', 'Falls back to configured default') but does not significantly enhance beyond schema descriptions.

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 uses specific verbs 'score' and 'explain' and clearly identifies the resource: a title against a user's taste profile. It distinguishes from sibling tools by focusing on explanation of match, which is unique among tools like anilist_search, anilist_details, etc.

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

Usage Guidelines4/5

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

Explicitly states when to use: when user asks 'why would I like this?' or similar. Provides clear context but does not mention when not to use or alternatives.

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

anilist_exportA
Read-only

Export a user's anime or manga list as CSV or JSON for backup or migration. Use when the user wants to download, back up, or transfer their list data.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoExport anime or manga listANIME
statusNoFilter by status (omit for all statuses)
formatNoExport formatcsv

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds useful context about output formats and username fallback. It does not contradict annotations and provides sufficient behavioral detail for a read operation.

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?

Two sentences, no fluff. The first sentence states purpose and output, the second provides usage guidance. Front-loaded and efficient.

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

Completeness3/5

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

The description covers purpose and usage but omits how the exported data is returned (e.g., file download, text response) and potential limitations (e.g., list size). Given no output schema, this gap reduces completeness.

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?

The input schema has 100% description coverage for all four parameters. The description adds minimal value beyond the schema, only restating the fallback behavior for username and the CSV/JSON formats. 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?

The description explicitly states the verb 'export', the resource 'user's anime or manga list', and the output formats 'CSV or JSON'. It also clarifies the purpose 'backup or migration'. This is specific and distinguishes it from sibling tools like imports or list viewing.

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

Usage Guidelines4/5

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

The description includes a clear usage condition: 'Use when the user wants to download, back up, or transfer their list data.' It does not mention alternatives or when not to use, but given no sibling tool overlaps, this is adequate.

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

anilist_favouriteA
Destructive

Toggle favourite on an anime, manga, character, staff member, or studio. Calling again on the same entity removes it from favourites. Requires ANILIST_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesType of entity to favourite
idYesAniList ID of the entity to toggle favourite on

TDQS

A4.4/5.0
Behavior5/5

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

The description explains the toggle behavior (calling again removes) and authentication requirement, which adds value beyond the annotations. It aligns with destructiveHint and idempotentHint, and there is no contradiction.

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 two sentences, front-loaded with the action, and contains no extraneous information. Every sentence is useful.

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

Completeness4/5

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

The description covers the core functionality, toggle behavior, and authentication. There is no output schema, so the return value is not explained, but for a toggle operation this is acceptable.

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?

The input schema already fully describes the two parameters with enums and integer constraints. The description mentions the entity types but does not add new semantic meaning beyond the schema.

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?

The description clearly states the action ('Toggle favourite') and the resource (anime, manga, character, staff, or studio). It distinguishes itself by focusing on the toggle behavior, which is different from other tools like anilist_react or anilist_rate.

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

Usage Guidelines4/5

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

The description explains the toggle behavior and that it requires ANILIST_TOKEN, which are important usage details. However, it does not explicitly compare with sibling tools or provide when-not-to-use conditions.

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

anilist_feedB
Read-onlyIdempotent

Get recent activity from a user's AniList feed. Shows text posts and list updates (anime/manga status changes). Returns numbered entries with author, date, and content. Supports pagination and type filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoFilter by activity typeALL
limitNoNumber of activities to return (default 10, max 25)
pageNoPage number for pagination (default 1)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description adds minor behavioral context (returns numbered entries with author/date/content) but does not disclose significant traits beyond annotations. No contradictions.

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

Conciseness4/5

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

The description is concise at four sentences, front-loads the purpose, and covers key features without redundancy. A minor improvement could be combining the last two sentences ('Supports pagination and type filtering') into one, but overall effective.

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

Completeness4/5

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

Given the tool's simplicity (4 params, no output schema), the description adequately summarizes input behavior (feed type, pagination) and output format (numbered entries). It does not cover edge cases or error handling, but these are less critical for a read-only feed tool.

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?

All four parameters have descriptions in the input schema (100% coverage), so the description mainly restates features like pagination and type filtering. It adds no new semantic details beyond what the schema provides, placing it at the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states it retrieves recent activity from a user's AniList feed, specifying content types (text posts, list updates) and output format. However, it does not explicitly differentiate from sibling tools like anilist_activity, which may have overlapping functionality.

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

Usage Guidelines2/5

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

The description lacks any guidance on when to use this tool over alternatives (e.g., anilist_activity, anilist_list). There is no mention of prerequisites, exclusions, or contextual hints for selection among siblings.

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

anilist_follow_suggestionsA
Read-only

Find AniList users with similar taste from your following list. Ranks people you follow by taste compatibility to highlight your best matches. Requires ANILIST_TOKEN for following list access.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoCompare anime or manga tasteANIME
limitNoNumber of suggestions to return (default 10, max 20)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark it as read-only and non-destructive (readOnlyHint, destructiveHint). The description adds value by disclosing that it ranks by taste compatibility and requires token authentication, beyond what annotations provide.

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?

Two sentences: first states purpose, second provides ranking detail and requirements. No redundancy or unnecessary words.

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

Completeness4/5

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

Without an output schema, the description omits return value details. However, the tool's output is implied (list of suggestions). Given the task's simplicity and annotations, it is mostly adequate.

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

Parameters4/5

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

Schema coverage is 100%. The description adds semantic value: for 'username' it mentions fallback default behavior, for 'type' it clarifies comparing anime or manga taste, and for 'limit' it restates default and max. This enhances understanding beyond the schema.

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?

The description clearly states the action: 'Find AniList users with similar taste from your following list' and 'Ranks people you follow by taste compatibility'. This distinguishes it from sibling tools like anilist_compare or anilist_taste which focus on comparing or listing taste profiles.

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

Usage Guidelines4/5

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

The description mentions the prerequisite 'Requires ANILIST_TOKEN for following list access', providing clear context. It does not explicitly state when not to use it or list alternatives, but the purpose is specific enough to guide usage.

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

anilist_genre_listA
Read-only

List all valid AniList genres and content tags. Use before genre-filtering tools to ensure valid genre names. Returns genres and content tags grouped by category with descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeAdultTagsNoInclude adult/NSFW tags in the list
filterNoShow only genres, only tags, or both (default all)all
categoryNoFilter tags to a specific category (e.g. Theme, Setting, Cast)

TDQS

A4.3/5.0
Behavior4/5

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

The description adds value beyond annotations by specifying that it list all valid items, groups them by category, and includes descriptions. This aligns with the readOnlyHint and destructiveHint=false, providing clear behavioral context without contradiction.

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 extremely concise with two sentences that front-load the purpose and usage guidance. Every sentence is necessary and informative, with no irrelevant details.

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?

Given the tool's simplicity, no output schema, and annotations that indicate it is read-only, the description fully covers what the tool returns (genres and tags grouped by category with descriptions). It is complete and unambiguous.

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?

The input schema has 100% coverage with clear descriptions for all three parameters (includeAdultTags, filter, category). The tool description does not add any additional meaning beyond what the schema already provides, so a baseline score of 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?

The description clearly states that the tool lists all valid AniList genres and content tags, uses a specific verb (list), and specifies the resource (genres and tags). It also distinguishes itself from potential sibling tools like 'anilist_genres' by emphasizing it returns both genres and tags grouped by category with descriptions.

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

Usage Guidelines4/5

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

The description explicitly instructs to use it before genre-filtering tools to ensure valid genre names, providing clear context for when to use it. It does not mention specific alternatives or when not to use it, but the guidance is sufficient for an agent to understand its role.

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

anilist_genresA
Read-only

Browse top anime or manga in a specific genre. Use when the user asks for the best titles in a genre, e.g. "best romance anime" or "top thriller manga from 2023". Supports year, status, and format filters. Returns ranked list with title, score, and genres.

ParametersJSON Schema
NameRequiredDescriptionDefault
genreYesGenre to browse, e.g. "Action", "Romance", "Horror"
typeNoBrowse anime or mangaANIME
yearNoFilter by release year
statusNoFilter by airing/publishing status
formatNoFilter by format
sortNoHow to rank resultsSCORE
isAdultNoInclude adult (18+) content in results
limitNoNumber of results to return (default 10, max 25)
pageNoPage number for pagination (default 1)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that it returns a ranked list with title, score, and genres, providing helpful behavioral context beyond the annotations.

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?

Two concise sentences, front-loaded with purpose. Every sentence contributes meaningfully with no waste.

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

Completeness4/5

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

For a read-only browse tool with 9 well-documented parameters and no output schema, the description adequately covers purpose, filters, and return type. Could mention pagination, but schema already handles that.

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%, so the baseline is 3. The description adds a summary of supported filters (year, status, format) but doesn't provide extra detail beyond what's in the schema.

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?

Clearly states the action (browse), resource (top anime or manga in a genre), and provides examples like 'best romance anime' or 'top thriller manga from 2023'. Distinguishes from sibling tools like anilist_search and anilist_trending.

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

Usage Guidelines4/5

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

Explicitly says when to use ('user asks for the best titles in a genre') with concrete examples. Does not explicitly mention when not to use or name alternatives, but the context is clear.

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

anilist_group_pickA
Read-only

Find anime or manga for a group to watch together. Finds titles on multiple users' planning lists (or highly rated by all). Use when friends want to pick something everyone will enjoy.

ParametersJSON Schema
NameRequiredDescriptionDefault
usersYesAniList usernames (2-10) to find group recommendations for
typeNoRecommend anime or mangaANIME
sourceNoPLANNING = overlap in plan-to-watch lists. COMPLETED = titles everyone loved.PLANNING
limitNoNumber of recommendations to return (default 10, max 15)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations show readOnlyHint=true and destructiveHint=false. Description adds that it finds titles from planning or completed lists, explaining the algorithm. No contradictions with annotations.

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?

Two short sentences with no filler. Front-loaded with purpose and usage. Every word adds value.

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

Completeness4/5

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

Given simplicity and comprehensive annotations, description covers purpose, input, and behavior. No output schema but not critical for a recommendation tool.

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 coverage is 100% with descriptions for all 4 parameters. The description adds general context about group picking but doesn't improve parameter understanding beyond what the schema already provides. 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 states it finds anime/manga for a group by analyzing multiple users' planning lists or highly rated titles. It uses a specific verb and resource, and likely distinguishes from similar siblings like anilist_pick or anilist_shared_planning.

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

Usage Guidelines4/5

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

Includes explicit usage guidance: 'Use when friends want to pick something everyone will enjoy.' While it doesn't list when not to use, the context is clear and sufficient for an agent to decide.

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

anilist_kitsu_importA
Read-only

Import a Kitsu user's completed anime list and generate personalized recommendations based on their taste. No auth needed. Use when the user mentions their Kitsu account or wants recs from Kitsu history. Returns a taste profile summary and recommended titles from AniList.

ParametersJSON Schema
NameRequiredDescriptionDefault
kitsuUsernameYesKitsu username to import
limitNoNumber of recommendations to return (default 5, max 15)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds 'No auth needed' and describes return value (taste profile summary + recommendations), enhancing clarity beyond annotations.

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?

Three sentences: purpose, usage/auth, output. Front-loaded with key action. No redundancy or unnecessary words.

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

Completeness4/5

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

Covers input, usage context, and output. No output schema exists, but description outlines return type. Could differentiate from mal_import, but sufficient for decision-making.

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 has 100% coverage for both parameters. Description partially restates them (e.g., 'Kitsu username', 'number of recommendations') but adds context about default and maximum for limit. No contradiction, but adds limited value.

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?

The description clearly states it imports a Kitsu user's completed anime list and generates recommendations, distinguishing it from related tools like anilist_mal_import and anilist_recommendations.

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

Usage Guidelines4/5

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

Explicitly states when to use ('when user mentions their Kitsu account or wants recs from Kitsu history') and mentions no auth needed. Does not list when not to use or alternatives, but the context is clear.

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

anilist_listA
Read-only

Get a user's anime or manga list, filtered by watching status. Use when the user asks about their list, what they're watching, what they've completed, or what's on their plan-to-watch. Supports custom lists via status CUSTOM. Returns entries with title, score, progress, status, updated date, and entry ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoGet anime or manga listANIME
statusNoFilter by list status. CURRENT = watching/reading now. CUSTOM = user-created lists.ALL
customListNameNoFilter to a specific custom list by name. Only used when status is CUSTOM.
sortNoHow to sort resultsUPDATED
limitNoMaximum entries to return (default 25, max 100)
pageNoPage number for pagination (default 1)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description reinforces this by using 'Get' and listing return fields. No contradictions. It adds context about return fields (title, score, progress, etc.) beyond annotations. No destructive behavior is implied.

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?

Three sentences, each packing information: purpose, usage examples, and return details. No filler or redundancy. Front-loaded with the primary action.

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

Completeness4/5

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

Given 7 parameters and no output schema, the description adequately explains the return format and usage context. It doesn't detail pagination or authentication, but annotations cover safety. It is sufficiently complete for a list retrieval tool.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by summarizing return fields ('Returns entries with title, score, progress, status, updated date, and entry ID'), which is not in the schema. It also mentions custom list support, but schema already covers that. Overall, it goes beyond the schema.

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?

The description clearly states 'Get a user's anime or manga list, filtered by watching status.' This is a specific verb+resource combination. It differentiates from sibling tools like anilist_add_to_list or anilist_delete_from_list by focusing on retrieval and filtering.

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

Usage Guidelines4/5

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

The description explicitly states when to use: 'when the user asks about their list, what they're watching, what they've completed, or what's on their plan-to-watch.' It also mentions custom lists. It does not provide explicit exclusions or alternatives, but the context is clear.

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

anilist_lookupA
Read-only

Check if a specific title is on a user's list and show its status. Use when the user asks "is this on my list?", "have I seen this?", or wants to check their progress or score for a single title. Returns status, score, progress, and dates without fetching the full list.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdNoAniList media ID to look up
titleNoSearch by title if no ID is known
usernameNoAniList username. Falls back to configured default if not provided.

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, destructiveHint, and openWorldHint. The description adds that it returns status, score, progress, and dates, which is helpful but not beyond what the schema implies. It does not disclose any additional behavioral traits like rate limits or authentication.

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?

Two sentences, no wasted words. Front-loaded with the core action and usage prompts.

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

Completeness4/5

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

Given the presence of annotations and full schema coverage, the description provides sufficient context for a lookup tool. It mentions what is returned, though it doesn't explain fallback behavior for username (handled by schema).

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 coverage is 100%, so baseline is 3. The description adds no further parameter meaning beyond summarizing the purpose; it does not provide examples or explain the relationship between mediaId and title.

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?

The description clearly specifies the verb 'check' and 'show', the resource 'title on a user's list', and the outcome 'status, score, progress, and dates'. It distinguishes from the sibling 'anilist_list' by noting it avoids fetching the full list.

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

Usage Guidelines4/5

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

Explicitly tells when to use: when user asks 'is this on my list?', 'have I seen this?', or wants to check progress/score for a single title. It implies the alternative is the full list tool but does not name it directly.

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

anilist_mal_importA
Read-only

Import a MyAnimeList user's completed anime list and generate personalized recommendations based on their taste. No MAL auth needed. Use when the user mentions their MAL account or wants recs from MAL history. Returns a taste profile summary and recommended titles from AniList.

ParametersJSON Schema
NameRequiredDescriptionDefault
malUsernameYesMyAnimeList username to import
limitNoNumber of recommendations to return (default 5, max 15)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds that no MAL authentication is needed and details the output (taste profile + recommendations), providing value beyond annotations.

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?

Two sentences with no unnecessary words. The first sentence states action and result, the second provides usage condition and output. Exceptionally concise and well-structured.

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?

Despite lack of output schema, the description covers the return value (taste profile and recommendations). It includes purpose, usage context, input semantics, and behavior, making it fully informative for a 2-parameter tool.

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?

Input schema has 100% description coverage for both parameters, so the description does not need to add much. The description reiterates the limit's purpose but does not add new meaning beyond the schema.

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?

The description clearly states the tool imports a MyAnimeList user's completed anime list and generates recommendations, specifying the resource and action. It distinguishes from sibling tools like anilist_kitsu_import by focusing on MAL.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when the user mentions their MAL account or wants recs from MAL history,' providing clear context. It lacks explicit when-not-to-use or alternative tool references, but the guidance is sufficient.

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

anilist_paceA
Read-onlyIdempotent

Pace estimate for currently watching or reading titles. Use when the user asks how long it'll take to finish something, their watch rate, or wants a progress summary. Returns estimated completion date based on historical pace.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
mediaIdNoAniList media ID to estimate pace for. Omit for all current titles.
typeNoEstimate pace for anime or mangaANIME

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it uses historical pace and returns an estimated date, which is consistent. No contradictions or additional behavioral insights beyond what annotations provide.

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

Conciseness4/5

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

Two sentences: first defines the tool, second gives usage scenarios and return value. No filler, front-loaded. Could be slightly more structured but efficient for the information conveyed.

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

Completeness4/5

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

Given 3 optional parameters and no output schema, the description explains the return value (estimated completion date) and usage context. It is complete enough for a pace estimation tool, though it doesn't detail behavior when mediaId is omitted for all titles.

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 coverage is 100% with all parameters described. The description does not add extra meaning beyond the schema; it reiterates the purpose. Baseline of 3 is appropriate as the schema handles parameter documentation.

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?

The description uses a specific verb 'estimate' and resource 'pace', clearly stating it returns a completion date based on historical pace. It distinguishes from siblings like 'anilist_list' or 'anilist_update_progress' by focusing on time estimation.

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

Usage Guidelines4/5

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

The description explicitly says when to use: 'when the user asks how long it'll take to finish something, their watch rate, or wants a progress summary.' It implies it's for currently watching/reading titles. It does not mention when not to use, but the guidance is clear and helpful.

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

anilist_pickA
Read-only

"What should I watch/read next?" Recommends from your Planning list based on your taste profile. Also works for backlog analysis - "which of my 200 Planning titles should I actually start?" Falls back to top-rated AniList titles if the Planning list is empty. Optionally filter by mood or max episodes. Returns ranked picks with match score, genre alignment, and mood fit.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoRecommend from anime or manga planning listANIME
profileTypeNoBuild taste profile from this media type. Defaults to same as type. Set to get cross-media recs, e.g. anime picks based on manga taste.
sourceNoWhere to find candidates. PLANNING = user's plan-to-watch list (default). SEASONAL = currently airing anime. DISCOVER = top-rated titles matching taste.PLANNING
seasonNoSeason for SEASONAL source. Defaults to the current season.
yearNoYear for SEASONAL source. Defaults to the current year.
moodNoFreeform mood or vibe, e.g. "something dark", "chill and wholesome", "hype action"
maxEpisodesNoFilter out series longer than this episode count
excludeNoMedia IDs to exclude from results (e.g. from previous recommendations)
limitNoNumber of recommendations to return (default 5, max 15)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description complements this by explaining the recommendation behavior (taste profile, fallback, filters) without contradicting the annotations. It adds value by detailing process – using the Planning list as primary source and falling back to top-rated titles – which is not evident from annotations alone.

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 three sentences with zero wasted words. It front-loads the core purpose (first sentence), adds a secondary use case (second sentence), and lists key optional behaviors (third sentence). Every sentence earns its place, achieving maximum efficiency.

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

Completeness4/5

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

Given 10 parameters, no output schema, and the tool's recommendation complexity, the description adequately covers use cases, fallback behavior, and optional filters. It mentions return structure ('ranked picks with match score, genre alignment, and mood fit'). A minor gap is not describing what happens with empty results beyond fallback, but overall it is sufficiently complete.

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%, so the baseline is 3. The description does not add new parameter meanings beyond what the schema already provides (e.g., username, type, source, etc.). It contextualizes parameters (e.g., mood as 'freeform vibe') but does not substantially enhance understanding of individual parameters.

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?

The description starts with the user-facing question "What should I watch/read next?" and clearly states it recommends from the Planning list based on taste profile. It distinguishes from sibling tools like anilist_recommendations or anilist_taste by specifying the source (Planning list) and fallback behavior, making its purpose concrete and specific.

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

Usage Guidelines4/5

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

The description provides clear usage context: deciding what to watch/read next from the Planning list, and explicitly mentions it also works for backlog analysis. It lists optional filters (mood, max episodes) and source alternatives (Seasonal, Discover), giving the agent a good sense of when to invoke. However, it does not explicitly exclude other tools or state when not to use this one, missing a perfect score.

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

anilist_profileA
Read-onlyIdempotent

View a user's AniList profile including bio, stats, and favourites. Returns bio, anime/manga stats summary, top favourites by category, and account age.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.

TDQS

A3.8/5.0
Behavior4/5

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

The description states 'View', which aligns with readOnlyHint=true and idempotentHint=true annotations. It adds specific return fields (bio, stats, favourites, account age) beyond annotations. However, it does not disclose any limitations or edge cases, but given the simple read operation, this is sufficient.

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 sentence that efficiently conveys the tool's purpose and output. It is front-loaded with the action and resource, with no unnecessary words.

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

Completeness4/5

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

For a single-parameter, read-only tool with no output schema, the description provides a clear list of return items. It is complete enough for an AI agent to understand what data to expect. Minor improvement could be to mention error cases (e.g., non-existent user), but not required.

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?

The input schema already describes the 'username' parameter with its fallback behavior. The description does not add new information about the parameter. Since schema coverage is 100%, baseline score of 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?

The description clearly states the tool's purpose: 'View a user's AniList profile' and lists the specific data it returns (bio, stats, favourites, account age). It uses a specific verb and resource, making it easy to understand what the tool does.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool compared to alternatives. It does not mention when not to use it or differentiate from sibling tools like anilist_details or anilist_list. Usage context is absent.

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

anilist_rateA
DestructiveIdempotent

Score an anime or manga on your list. Use when the user wants to give a rating (0-10). Scores display in the user's preferred format (3/5/10/100-point). Use 0 to remove. Requires ANILIST_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdYesAniList media ID to rate
scoreYesScore on a 0-10 scale (decimals like 7.5 are supported). Use 0 to remove a score.

TDQS

A4.5/5.0
Behavior4/5

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

Description adds token requirement and notes that scores display in user's preferred format, complementing annotations (destructiveHint=true, idempotentHint=true). No contradiction; aligns with rating mutation and removal behavior.

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?

Three concise sentences: purpose, usage, requirement. No unnecessary words. Front-loaded critical information.

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?

Covers all key aspects: what it does, how to use, token requirement, and behavior. No output schema needed; parameters and actions are well-explained.

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

Parameters4/5

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

Both parameters (mediaId, score) are fully described in schema. Description adds valuable context: decimals supported, use 0 to remove, and score range clarification. Exceeds baseline.

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 states 'Score an anime or manga on your list' with specific verb and resource, and differentiates from siblings like anilist_add_to_list or anilist_update_progress by focusing solely on rating.

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

Usage Guidelines4/5

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

Explicitly says 'Use when the user wants to give a rating (0-10)' and includes use of 0 to remove. While no alternatives are listed, the sibling context makes it clear this is for rating only.

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

anilist_reactA

Like or reply to an AniList activity. Use when the user wants to interact with an activity from their feed. Requires ANILIST_TOKEN. LIKE toggles the like state.

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesID of the activity to react to (from anilist_feed)
actionYesLIKE = toggle like on the activity. REPLY = post a reply.
textNoReply text (required when action is REPLY)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false and destructiveHint=false; the description adds that 'LIKE toggles the like state,' which is a non-idempotent behavior not captured by annotations. It also mentions authentication needs. It could further explain reply behavior but is sufficient.

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 extremely concise: one main sentence plus two short clarifying statements. No redundant information; every sentence serves a purpose.

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

Completeness3/5

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

The description omits any mention of the return value or confirmation of the action. Since there is no output schema, this information would be helpful for an agent to understand what to expect after executing the tool. However, the tool's simplicity partially mitigates the gap.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all three parameters. The description adds value by linking activityId to anilist_feed and clarifying that LIKE toggles state while REPLY posts text. This goes beyond the schema's enum descriptions.

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 states the verb ('Like or reply') and resource ('AniList activity'). It distinguishes the tool from sibling tools like anilist_feed (which retrieves activities) and anilist_activity (which likely fetches details), specifying the action of interacting with an activity.

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

Usage Guidelines4/5

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

The description specifies when to use the tool ('when the user wants to interact with an activity from their feed') and notes a prerequisite ('Requires ANILIST_TOKEN'). It does not explicitly state alternatives or when not to use it, but the context is clear enough for an agent.

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

anilist_recommendationsA
Read-only

Get community recommendations for a specific anime or manga. Use when the user asks for shows similar to a specific title, or says "I liked X, what else should I watch?" Returns titles ranked by recommendation count with format, score, and genres.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAniList media ID
titleNoSearch by title if no ID is known
typeNoMedia type. Defaults to ANIME.ANIME
limitNoNumber of recommendations to return (default 10, max 25)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral details: returns 'titles ranked by recommendation count with format, score, and genres'. No contradiction with annotations.

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?

Three sentences, no redundant words. First sentence defines purpose, second gives usage trigger, third summarizes output. Efficient and well-structured.

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

Completeness4/5

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

Despite many sibling tools, the description clearly covers the use case and output. No output schema exists, but the description mentions key return fields. Could mention the 'limit' parameter behavior, but schema already covers it.

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 coverage is 100%, so all four parameters are described in the schema. The description does not add new meaning to the parameters but mentions output fields (format, score, genres) which are not part of the input schema. 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 states the tool 'Get community recommendations' for 'a specific anime or manga', and distinguishes itself by providing explicit usage context (e.g., 'I liked X, what else should I watch?'). This differentiates it from siblings like anilist_similar and anilist_sequels.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'when the user asks for shows similar to a specific title, or says "I liked X, what else should I watch?"'. Does not explicitly state when not to use or mention alternatives, but the context is clear enough for an agent to decide.

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

anilist_reviewsA
Read-onlyIdempotent

Get community reviews for an anime or manga. Use when the user wants to see what others think about a title. Returns sentiment summary (positive/mixed/negative), individual review scores, summaries, and helpful ratios.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAniList media ID
titleNoSearch by title if no ID is known
typeNoMedia type. Defaults to ANIME.ANIME
sortNoSort by most helpful or newestHELPFUL
limitNoNumber of reviews to return (default 5, max 10)
pageNoPage number for pagination (default 1)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. Description adds that it returns sentiment summary, scores, summaries, and helpful ratios, providing useful behavioral context beyond annotations.

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?

Three sentences, front-loaded with purpose, no fluff. Every sentence adds value.

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

Completeness4/5

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

For a read-only review retrieval tool with thorough schema and annotations, the description covers purpose, usage, and return format. Could mention pagination briefly, but schema covers that. Overall complete.

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 coverage is 100% with detailed parameter descriptions. The description does not add significant parameter-level information beyond that, so 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?

The description clearly states the verb 'Get', resource 'community reviews', and scope 'for an anime or manga'. It distinguishes from siblings like 'anilist_details' and 'anilist_recommendations'.

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

Usage Guidelines4/5

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

Explicitly says 'Use when the user wants to see what others think about a title'. Provides clear context, though no explicit exclusions or alternatives mentioned.

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

anilist_scheduleA
Read-only

Get the airing schedule for an anime. Use when the user asks when the next episode airs, or wants to see upcoming episode dates for a currently airing show. Returns next episode date/countdown and upcoming episode schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAniList media ID for the anime
titleNoSearch by title if no ID is known

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so description adds value by stating return content (date/countdown and schedule). No contradictions.

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?

Two sentences, front-loaded with purpose and usage, no fluff.

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

Completeness4/5

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

No output schema, but description gives high-level return info. Annotations cover safety and mutability. Adequate for a simple tool.

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 coverage is 100% and schema descriptions already cover the parameters. Description does not add extra meaning beyond what schema provides.

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

Purpose4/5

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

Description clearly states verb 'Get' and resource 'airing schedule' with return details. However, sibling tool anilist_airing exists and is not differentiated, so slightly less than 5.

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

Usage Guidelines4/5

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

Provides explicit usage context: 'when the user asks when the next episode airs, or wants to see upcoming episode dates for a currently airing show.' Does not mention when not to use or alternatives.

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

anilist_seasonalA
Read-only

Browse anime airing in a given season. Use when the user asks what's airing this season, what aired in a past season, or wants to discover seasonal anime. Defaults to current season/year. Returns ranked list with title, format, score, genres, and episode count.

ParametersJSON Schema
NameRequiredDescriptionDefault
seasonNoSeason to browse. Defaults to the current season.
yearNoYear to browse. Defaults to the current year.
sortNoHow to rank resultsPOPULARITY
isAdultNoInclude adult (18+) content in results
limitNoNumber of results to return (default 15, max 50)
pageNoPage number for pagination (default 1)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false. Description adds default behaviors (current season/year) and return fields (title, format, score, genres, episode count). No contradictions.

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?

Two sentences with no wasted words. Purpose and usage are front-loaded. Every sentence adds value.

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

Completeness4/5

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

For a list retrieval tool with 6 optional parameters and no output schema, description covers purpose, defaults, and response contents. Missing explicit mention of pagination (page parameter) but schema covers it.

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 coverage is 100% with descriptions for all 6 parameters. Description adds overall context but does not further explain parameters beyond what schema provides. Baseline score of 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 states the verb 'browse' and the resource 'anime airing in a given season'. It distinguishes from sibling tools like anilist_trending or anilist_airing by emphasizing seasonal scope. Examples of use cases are provided.

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

Usage Guidelines4/5

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

Description explicitly says when to use: 'when the user asks what's airing this season, what aired in a past season, or wants to discover seasonal anime.' It does not mention when not to use or alternative tools, but the context is clear.

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

anilist_seasonal_recap_cardA
Read-only

Generate a shareable seasonal recap card image for an AniList user. Returns a PNG image showing pick/finish/drop counts, hit rate, status breakdown, and top-scored titles from a season.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
seasonNoSeason to recap (defaults to current or most recent season)
yearNoYear of the season (defaults to current year)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that it returns a PNG image, which is key behavioral information beyond annotations. However, it does not mention external API calls or any other side effects.

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 two sentences, front-loaded with purpose, followed by a concise list of content. Every sentence adds value without redundancy or filler. Ideal structure.

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?

Given low complexity (3 optional params, 100% schema coverage, annotations present, no output schema), the description covers purpose, output format, and default behaviors. No gaps for typical use cases.

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

Parameters5/5

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

Schema descriptions are present for all three parameters and are enriched by the description, which explains fallback behavior for username, default season, and default year. This adds value beyond the schema, clarifying defaults that are not enumerated.

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?

The description clearly states the tool generates a shareable seasonal recap card image for an AniList user, listing specific content (pick/finish/drop counts, hit rate, etc.). This clearly identifies the tool's function and distinguishes it from siblings like anilist_seasonal (list data) or anilist_wrapped_card (yearly recap).

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives like anilist_seasonal or anilist_wrapped_card. There is no mention of prerequisites, preferred contexts, or exclusions, leaving the agent without explicit usage guidance.

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

anilist_seasonal_statsA
Read-onlyIdempotent

Seasonal pick-up and completion rates. Use when the user asks about their seasonal watching habits, how many shows they finish vs drop each season, or their hit rate. Returns per-season breakdown of picked, finished, dropped, and ongoing counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
seasonNoSeason to analyze. Defaults to last completed season.
yearNoYear to analyze. Defaults to current year.
historyNoNumber of past seasons to show (default 4, max 8)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds detail on returned counts (picked, finished, dropped, ongoing) and default parameter behaviors, supplementing annotations well.

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?

Three sentences, front-loaded with purpose, no fluff. Every sentence adds value: purpose, usage context, and return structure.

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

Completeness4/5

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

Given tool complexity (4 optional params, no output schema), description adequately explains output and usage. Could mention edge cases like empty history, but not critical.

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 coverage is 100%, so baseline is 3. Description adds slight value by explaining defaults (e.g., 'Falls back to configured default' for username) and 'past seasons' for history, but not significantly beyond schema.

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 states it returns seasonal pick-up and completion rates with a per-season breakdown. It distinguishes from sibling tools like anilist_seasonal and anilist_stats by focusing specifically on hit rate.

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

Usage Guidelines4/5

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

Explicitly says when to use: when user asks about seasonal watching habits, completion rates, or hit rate. Does not mention when not to use or alternatives, but context is clear.

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

anilist_sequelsA
Read-only

Find sequels airing this season for titles you've completed. Use when the user asks what sequels are coming, or wants to know if any currently airing anime continue shows they've already watched. Returns matches with the completed prequel and the airing sequel.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
seasonNoSeason to check for sequels. Defaults to the current season.
yearNoYear to check. Defaults to the current year.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful context: the tool filters by completed list and returns matches with both prequel and sequel. No contradiction with annotations.

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?

Three sentences: purpose, usage, return format. No fluff, every sentence earns its place.

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

Completeness4/5

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

Given no output schema, the description adequately explains returns ('matches with the completed prequel and the airing sequel'). Could mention pagination or limits, but sufficient for a query tool.

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 coverage is 100% with clear default descriptions for username, season, and year. The description adds little beyond stating defaults, so 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?

The description states 'Find sequels airing this season for titles you've completed,' with a specific verb (find), resource (sequels), and clear scope (airing this season, filtered by completed list). This distinguishes it from siblings like anilist_airing and anilist_seasonal.

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 says 'Use when the user asks what sequels are coming, or wants to know if any currently airing anime continue shows they've already watched.' This gives clear use cases and implicitly differentiates from other tools.

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

anilist_sessionA
Read-only

Plan a watching or reading session within a time budget. Picks from your currently-watching list, scored by taste match and mood. Returns a session plan with titles, episodes to watch, and estimated time.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoPlan session from anime or manga currently-watching listANIME
minutesYesTime budget in minutes (10-720)
moodNoOptional mood to prioritize titles, e.g. "dark", "chill"

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: it explains that the tool picks from the user's currently-watching list, scores by taste and mood, and returns a plan. This aligns with the non-destructive, read-only annotations and provides useful detail.

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 two sentences long, contains no redundant information, and efficiently conveys the tool's purpose, inputs, and outputs. Every sentence adds value.

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

Completeness4/5

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

Given the tool's complexity (4 parameters, no output schema), the description adequately covers usage and expected return value (session plan with titles, episodes, time). It is complete enough for an agent to understand and invoke correctly.

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 coverage is 100% with detailed descriptions for all parameters. The description adds no new information beyond what is already in the schema (e.g., time budget range, mood purpose). Baseline score of 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?

The description clearly states a specific verb ('Plan') and resource ('watching or reading session'), and distinguishes this tool from siblings like anilist_pick or anilist_list by detailing its functionality (time budget, taste match, mood).

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

Usage Guidelines4/5

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

The description provides clear context for usage (planning a session within a time budget, using currently-watching list), and mentions the username fallback. However, it does not explicitly state when not to use this tool or name alternatives, which would improve clarity.

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

anilist_shared_planningA
Read-only

Find titles on both users' planning lists. Use when two users want to see what they're both planning to watch or read. Shows overlap and unique titles.

ParametersJSON Schema
NameRequiredDescriptionDefault
user1YesFirst AniList username
user2YesSecond AniList username
typeNoCompare anime or manga planning listsANIME
limitNoMax entries to show (default 25, max 50)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds that it shows overlap and unique titles, but does not elaborate on behavioral specifics such as output format or any limitations. It does not contradict annotations.

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 two sentences, front-loaded with the main purpose, and contains no redundant or extraneous information. Every sentence earns its place.

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

Completeness4/5

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

For a tool with four parameters and no output schema, the description provides a clear idea of the purpose and output (overlap and unique titles). It is mostly complete but could benefit from a brief note on output format or additional details on how to interpret results.

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 the description does not add any additional meaning beyond what the schema already provides for the four parameters (user1, user2, type, limit). Baseline score of 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?

The description clearly states the tool finds titles on both users' planning lists, using the verb 'find' and specifying the resource as 'titles on both users' planning lists.' This distinguishes it from siblings like anilist_compare and anilist_list, which target different list types.

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

Usage Guidelines4/5

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

The description includes explicit usage context: 'Use when two users want to see what they're both planning to watch or read.' It also indicates output includes overlap and unique titles, but does not mention when not to use it or provide explicit alternatives to sibling tools.

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

anilist_similarA
Read-only

Find titles similar to a specific anime or manga. Use when the user asks for shows like a specific title, or wants content-based recommendations without needing a user profile. Returns ranked results with similarity %, shared genres, and community rec strength.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdNoAniList media ID to find similar titles for
titleNoSearch by title if no ID is known
typeNoMedia type. Defaults to ANIME.ANIME
limitNoNumber of similar titles to return (default 10, max 25)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds behavioral context by stating the output contains 'similarity %, shared genres, and community rec strength' and clarifies that no user profile is needed, which is not present in annotations.

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 two sentences, front-loaded with the primary action and use cases, with no wasted words. It efficiently conveys purpose, usage, and output characteristics.

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

Completeness4/5

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

Given 4 parameters, no output schema, and annotations present, the description covers purpose, usage, and output format (ranked results with specific fields). It lacks details on error handling or edge cases but is sufficient for most scenarios.

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?

Input schema has 100% coverage with descriptions for all 4 parameters. The description does not add additional meaning to parameters beyond what the schema provides, so a baseline score of 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?

The description clearly states 'Find titles similar to a specific anime or manga' with a specific verb and resource, and distinguishes from siblings by noting it does not need a user profile, which contrasts with other recommendation tools that might require profile data.

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

Usage Guidelines4/5

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

The description explicitly specifies when to use: 'when the user asks for shows like a specific title, or wants content-based recommendations without needing a user profile.' It does not mention alternatives or when not to use, but the context is clear enough for an agent to decide.

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

anilist_staffA
Read-only

Get staff and voice actor credits for an anime or manga. Use when the user asks who directed, wrote, or voiced characters in a title. Returns production staff with roles and characters with voice actors. Defaults to Japanese VAs but supports other languages.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAniList media ID
titleNoSearch by title if no ID is known
typeNoMedia type. Defaults to ANIME.ANIME
languageNoVoice actor language (default JAPANESE)JAPANESE

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint true and destructiveHint false. The description adds functional context (returns staff roles and characters with voice actors) without contradicting annotations. No mention of side effects or safety, but annotations already cover that.

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?

Two sentences, front-loaded with purpose in the first sentence. No wasted words; every sentence adds information.

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

Completeness4/5

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

No output schema exists, but the description explains the return includes production staff, roles, and characters with voice actors. This gives sufficient context for an agent to understand the tool's output.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions. The description adds value by explaining the language parameter defaults to Japanese and that title can be used as fallback, providing context beyond the schema.

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?

The description clearly states it retrieves staff and voice actor credits for an anime or manga, using specific verbs ('Get') and resource ('staff and voice actor credits'). It distinguishes from the sibling tool 'anilist_staff_search' by focusing on specific title credits rather than searching by staff name.

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

Usage Guidelines4/5

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

Provides explicit instruction to use when the user asks about directors, writers, or voice actors. Mentions default language and support for alternatives, but does not explicitly exclude use cases like searching for staff profiles.

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

anilist_statsA
Read-only

Get a user's watching/reading statistics. Use when the user asks about their overall stats, how much anime they've watched, their average score, top genres, or score distribution. Returns title count, mean score, episodes/chapters, top genres, score distribution chart, and format breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. It adds value by listing the returned statistics but does not disclose any additional behavioral traits like rate limits or authentication requirements. The description is adequate but not exceptional.

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?

Two sentences convey purpose, usage, and return data without unnecessary words. The structure is front-loaded and efficient.

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?

Given the simplicity of the tool (one optional parameter, no output schema), the description fully explains the return values: title count, mean score, episodes/chapters, top genres, score distribution chart, and format breakdown. No gaps remain.

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?

The only parameter (username) is fully described in the input schema (100% coverage), including fallback behavior. The tool description does not add any additional meaning beyond the schema, so the baseline score of 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?

The description clearly states the tool gets a user's watching/reading statistics with a specific verb and resource. It lists the exact data returned (title count, mean score, etc.), making it distinct from sibling tools like anilist_list or anilist_profile.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: when the user asks about overall stats, how much they've watched, average score, top genres, or score distribution. It does not provide when-not-to-use or alternatives, but the guidance is clear and actionable.

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

anilist_tasteA
Read-only

Generate a taste profile summary from a user's completed list. Use when the user asks about their anime/manga preferences, what genres they like, or how they tend to score. Returns genre weights, top themes, scoring patterns with distribution chart, and format split.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoAnalyze anime list, manga list, or bothBOTH

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, destructiveHint=false, openWorldHint=true. The description goes beyond by detailing the nature of the output (genre weights, themes, scoring patterns, chart, format split). No contradictions.

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?

Two sentences with no wasted words. First sentence states the core action, second provides usage guidance and output specifics. Efficient and front-loaded.

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

Completeness4/5

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

No output schema exists, but the description lists key output components (genre weights, themes, patterns, chart, format split). For a tool that generates a summary profile, this is sufficiently complete given the well-documented parameters.

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%. Both parameters have adequate descriptions in the schema (username with fallback and constraints, type with enum default). The tool description does not add new semantic details beyond what the schema provides, so 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?

The description clearly states the verb 'Generate', the resource 'taste profile summary from a user's completed list', and lists specific output items (genre weights, themes, scoring patterns, chart, format split). Among many sibling tools like anilist_stats and anilist_genres, this description distinguishes itself by focusing on a holistic taste profile.

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

Usage Guidelines4/5

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

The description explicitly states when to use: 'Use when the user asks about their anime/manga preferences, what genres they like, or how they tend to score.' It does not mention when not to use or name alternative tools, but the context of siblings is vast and the usage scenario is clear enough.

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

anilist_taste_cardA
Read-only

Generate a shareable taste profile card image for an AniList user. Returns a PNG image showing top genres, themes, score distribution, and format breakdown. Use when someone wants a visual summary of their anime taste.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoBuild card from anime or manga listANIME

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the tool is non-destructive. The description adds value by specifying the output is a PNG image containing specific visual elements (genres, themes, etc.). It does not contradict annotations and provides useful behavioral context.

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 two sentences long, front-loaded with the primary action and output format. Every sentence contributes meaning: first sentence states what it does and output format, second sentence gives use case. No unnecessary words.

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?

Given the tool has only two optional parameters, readOnlyHint annotation, and no output schema, the description fully explains what the tool returns (a PNG with taste profile visualizations). It covers the essential behavioral and output details for an agent to invoke correctly.

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?

The input schema has 100% description coverage for both parameters ('username' with fallback info, 'type' with anime/manga enum). The description text adds no further parameter-level detail beyond mentioning 'score distribution' which relates to output, not parameters. The baseline of 3 is appropriate as the schema already explains the parameters.

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?

The description clearly states the tool generates a shareable taste profile card image, specifying it returns a PNG with top genres, themes, score distribution, and format breakdown. This distinguishes it from sibling tools like anilist_compat_card (compatibility card) and anilist_taste (text-based taste info).

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

Usage Guidelines4/5

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

The description says 'Use when someone wants a visual summary of their anime taste.' This provides clear context but does not explicitly state when not to use it or list alternative tools. However, given the sibling list, it is adequate for guiding typical use.

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

anilist_undoA
Destructive

Undo the last write operation (update progress, add to list, rate, delete, or batch update). Restores the previous state of the affected list entry. Requires ANILIST_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true, confirming it modifies state. The description adds that it restores the previous state of the affected list entry, providing clarity on the specific behavioral outcome. It also mentions the token requirement, enhancing transparency. No contradictions with annotations.

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 extremely concise, consisting of two sentences that immediately convey the purpose, scope, and requirement. Every word adds value, and it is well-structured with the key information front-loaded.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, no output schema), the description covers the essential aspects: what it undoes, the effect (restores previous state), and the authentication requirement. It is complete enough for an agent to invoke correctly, though it could mention potential failure conditions like no previous write.

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

Parameters4/5

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

The input schema has no parameters, and schema description coverage is 100%. Since there are no parameters to describe, the baseline is 4. The description does not need to add parameter info.

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?

The description explicitly states the tool undoes the last write operation, lists the specific operations it can reverse (update progress, add to list, rate, delete, batch update), and explains it restores the previous state. This clearly distinguishes it from all sibling tools, as no other tool provides undo functionality.

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

Usage Guidelines4/5

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

The description implies when to use (after a write operation) and notes the authentication requirement (ANILIST_TOKEN). However, it does not explicitly state when not to use the tool, such as if there is no previous write to undo, or any limitations like a single undo step.

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

anilist_unscoredA
Read-onlyIdempotent

List completed anime or manga that haven't been scored yet. Use when the user wants to catch up on scoring, find unrated titles, or do a batch scoring session. Returns titles sorted by most recently completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
typeNoCheck anime or manga list for unscored titlesANIME
limitNoNumber of unscored titles to return (default 20, max 50)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. Description adds that it lists from completed lists and returns sorted by most recently completed. No contradictions. Minor gap: doesn't specify behavior when no unscored titles exist.

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?

Three short sentences, all essential. The core action is front-loaded. No redundant or unnecessary words.

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

Completeness4/5

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

No output schema, but description explains that results are titles sorted by recency. For a simple list tool with clear annotations, this is sufficient. Could mention whether returns full details or just titles, but not critical.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds value by noting username falls back to configured default, which is not in schema. Also restates limit default and max, reinforcing schema info. Good additional context.

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 states the specific action: 'List completed anime or manga that haven't been scored yet.' This distinguishes it from siblings like anilist_list (general list), anilist_rate (scoring), and anilist_completionist (completion tracking).

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

Usage Guidelines4/5

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

Explicitly says when to use: 'when the user wants to catch up on scoring, find unrated titles, or do a batch scoring session.' Also provides context: 'Returns titles sorted by most recently completed.' Does not mention when not to use or alternative tools, but purpose is clear enough.

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

anilist_update_progressA
DestructiveIdempotent

Update your episode or chapter progress for an anime or manga. Use when the user says they watched an episode, finished a chapter, or wants to record progress. Requires ANILIST_TOKEN. Returns updated status, progress count, and entry ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdYesAniList media ID to update progress for
progressYesEpisode or chapter number reached
volumeProgressNoVolume number reached (manga only)
statusNoList status to set. Defaults to CURRENT if the entry is new.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds context beyond annotations: it requires ANILIST_TOKEN (auth), and returns 'updated status, progress count, and entry ID.' Annotations already mark it as destructive and idempotent, and the description aligns without contradiction.

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 three sentences, front-loading purpose, then usage, then auth and return info. Every sentence adds value with no waste.

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

Completeness4/5

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

For a 4-parameter tool with no output schema, the description includes return info and auth requirement. It lacks error handling or default behaviors but is generally complete given annotations.

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 coverage is 100% with good descriptions for each parameter (e.g., 'mediaId: AniList media ID'). The description adds minimal extra meaning (e.g., 'for an anime or manga') but baseline is 3 due to high schema coverage.

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?

The description clearly states the tool updates episode/chapter progress for anime or manga. It distinguishes itself from sibling tools like anilist_add_to_list or anilist_rate by focusing on progress recording.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when the user says they watched an episode, finished a chapter, or wants to record progress.' This provides clear when-to-use guidance but does not include when not to use or compare to alternatives.

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

anilist_watch_orderA
Read-only

Suggested viewing order for a franchise. Use when the user asks what order to watch a series, how to start a long franchise, or wants to know the chronological release order of sequels and prequels. Accepts any title in the franchise and traces the full chain. Returns a numbered list from first to last.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAniList media ID of any title in the franchise
titleNoSearch by title if no ID is known
includeSpecialsNoInclude OVAs, specials, and spin-offs in the watch order

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds value by stating that it traces the full franchise chain and returns a numbered list, which goes beyond the annotations.

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 three sentences, each earning its place: the purpose, the usage context, and the behavior. It is front-loaded with the core function and contains no redundant or unnecessary words.

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

Completeness4/5

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

Given no output schema, the description explains the return format as 'a numbered list from first to last.' It covers input options (id or title) and the includeSpecials parameter. It could mention error handling for unfound franchises, but it is adequate for a simple tool.

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?

The input schema has 100% coverage, so the baseline is 3. The description mentions 'Accepts any title in the franchise', which loosely relates to the id and title parameters, but does not add specific format or behavior details beyond the schema.

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?

The description starts with 'Suggested viewing order for a franchise', which is a specific verb+resource pair. It clearly distinguishes itself from siblings like 'anilist_sequels' by focusing on the entire franchise chain rather than individual sequels.

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?

The description explicitly states when to use: 'when the user asks what order to watch a series, how to start a long franchise, or wants to know the chronological release order of sequels and prequels.' It also notes that it accepts any title in the franchise and traces the full chain, providing clear context without needing exclusions.

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

anilist_whoamiA
Read-only

Check which AniList account is authenticated and verify the token works. Use when the user wants to confirm their setup or debug auth issues.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds that it verifies token validity and identifies authenticated account, which is useful behavioral context beyond annotations.

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?

Two sentences, front-loaded with action, no wasted words. Efficient and clear.

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

Completeness4/5

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

Description is sufficient for a no-parameter tool with no output schema. It explains purpose and usage. Could mention what the response contains, but not critical for selection.

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

Parameters4/5

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

No parameters; schema coverage is 100%. Description adds no param info as none needed. Baseline 4 as per rule for 0 parameters.

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 explicitly states the tool checks which AniList account is authenticated and verifies the token, distinguishing it from sibling tools that handle data queries or modifications.

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

Usage Guidelines4/5

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

Clearly states to use when confirming setup or debugging auth issues, providing direct context for when to invoke this tool.

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

anilist_wrappedA
Read-only

Year-in-review summary for a user. Use when the user asks about their anime/manga year, what they watched/read in a given year, or wants a recap. Defaults to the current year. Returns title count, average score, highest rated, most controversial, genre breakdown, and consumption stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
yearNoYear to summarize. Defaults to the current year.
typeNoSummarize anime, manga, or bothBOTH

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by listing the specific output fields (title count, average score, etc.), which helps agents understand what the tool returns.

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?

Four concise sentences, each serving a clear purpose: purpose, usage, defaults, and output. No extraneous information, perfectly front-loaded.

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

Completeness4/5

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

Despite no output schema, the description adequately lists the kinds of stats returned. It covers all optional parameters and gives enough context for an agent to decide when to use. Minor lack of precision on terms like 'most controversial'.

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 coverage is 100% with descriptions for all 3 parameters. The description adds no new parameter information beyond what the schema already provides (e.g., defaults). Baseline score of 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?

The description clearly defines the tool as a 'year-in-review summary', with explicit examples of when to use it (asks about year, watched/read, recap). It distinguishes itself from siblings like anilist_profile or anilist_stats by focusing on a yearly summary.

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

Usage Guidelines4/5

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

Provides clear guidance on when to use, including examples and default behavior. Could be improved by noting when not to use (e.g., for real-time or non-yearly queries), but sufficient for typical use.

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

anilist_wrapped_cardA
Read-only

Generate a shareable year-in-review card image for an AniList user. Returns a PNG image showing titles completed, top genres, score distribution, highlights, and consumption stats. Use when someone wants a visual recap of their year.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoAniList username. Falls back to configured default if not provided.
yearNoYear to review (defaults to current year)
typeNoSummarize anime, manga, or bothBOTH

TDQS

A4.2/5.0
Behavior4/5

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

Discloses that the tool returns a PNG image and outlines the content of the card. The annotations (readOnlyHint, destructiveHint, openWorldHint) are consistent, and the description adds value by specifying output type and summary details.

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?

Two sentences pack all essential information: purpose, output, content, and use case. No redundant words, front-loaded with key verb and resource.

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

Completeness4/5

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

Given no output schema, the description adequately explains what the card contains and that it returns a PNG. It does not detail image dimensions or how to access the image, but for a card generation tool, the coverage is sufficient.

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?

Input schema covers 100% of parameters with descriptions (username fallback, year default, type default). The description does not add new meaning beyond the schema, so baseline score applies.

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?

The description clearly states the tool generates a shareable year-in-review card image, specifying the output format (PNG) and contents (titles, genres, scores, etc.). This distinguishes it from related siblings like anilist_seasonal_recap_card or anilist_taste_card.

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

Usage Guidelines4/5

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

Provides explicit usage context: 'Use when someone wants a visual recap of their year.' While it does not list alternatives or when-not-to-use, the context is clear and helps an agent decide appropriately.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 55 tool updatesv0.15.4
    • Addedanilist_activity
    • Addedanilist_add_to_list
    • Addedanilist_airing
    • Addedanilist_batch_update
    • Addedanilist_calibration
    • Addedanilist_characters
    • Addedanilist_compare
    • Addedanilist_compat_card
    • Addedanilist_completionist
    • Addedanilist_delete_from_list
    • Addedanilist_details
    • Addedanilist_drops
    • Addedanilist_evolution
    • Addedanilist_explain
    • Addedanilist_export
    • Addedanilist_favourite
    • Addedanilist_feed
    • Addedanilist_follow_suggestions
    • Addedanilist_genre_list
    • Addedanilist_genres
    • Addedanilist_group_pick
    • Addedanilist_kitsu_import
    • Addedanilist_list
    • Addedanilist_lookup
    • Addedanilist_mal_import
    • Addedanilist_pace
    • Addedanilist_pick
    • Addedanilist_profile
    • Addedanilist_rate
    • Addedanilist_react
    • Addedanilist_recommendations
    • Addedanilist_reviews
    • Addedanilist_schedule
    • Addedanilist_search
    • Addedanilist_seasonal
    • Addedanilist_seasonal_recap_card
    • Addedanilist_seasonal_stats
    • Addedanilist_sequels
    • Addedanilist_session
    • Addedanilist_shared_planning
    • Addedanilist_similar
    • Addedanilist_staff
    • Addedanilist_staff_search
    • Addedanilist_stats
    • Addedanilist_studio_search
    • Addedanilist_taste
    • Addedanilist_taste_card
    • Addedanilist_trending
    • Addedanilist_undo
    • Addedanilist_unscored
    • Addedanilist_update_progress
    • Addedanilist_watch_order
    • Addedanilist_whoami
    • Addedanilist_wrapped
    • Addedanilist_wrapped_card

TDQS

A4/5.0

Scored across 55 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, with detailed descriptions that prevent confusion. Even similar-sounding tools like anilist_pick, anilist_explain, and anilist_session are well-differentiated by their specific use cases.

Naming Consistency5/5

All tools follow a consistent 'anilist_' prefix with snake_case names that clearly describe the action, e.g., anilist_search, anilist_add_to_list, anilist_delete_from_list. No mixing of conventions.

Tool Count3/5

55 tools is on the high side for a single server, covering many specialized actions like card generation and analysis. While each tool serves a valid purpose, the count could be reduced by consolidating some card-generation tools without losing clarity.

Completeness5/5

The server covers an extensive range of AniList functionality: search, list management, user profiles, schedules, statistics, social features, recommendations, and even imports from other services. The inclusion of an undo operation and various analysis tools makes the surface very complete.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides access to MyAnimeList's API for anime and manga data. It enables users to search, view rankings, manage their personal lists, and get recommendations through Claude and other MCP clients.
    117 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Exposes a user's MyAnimeList data (watch list, scores, statistics) as MCP tools for AI assistants to analyze taste, build statistics, and make recommendations.
    20
    1
    MIT