# io.github.GavMason/ani-mcp (npm · ani-mcp)

A smart MCP server for AniList that gets your anime/manga taste - not just API calls.

- Trust score: 65/100 (medium)
- Change this week: +25
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `ani-mcp`: 65/100 (this document), [markdown](https://verifymcp.io/servers/gavmason-ani-mcp/ani-mcp.md), [page](https://verifymcp.io/servers/gavmason-ani-mcp/ani-mcp)

## Channel facts

- Registry: `npm`
- Package: `ani-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (181 of 188), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (181 of 188), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 46 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 79/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1701 tokens (~113/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add gavmason-ani-mcp -- npx -y ani-mcp
```

### Codex

```bash
codex mcp add gavmason-ani-mcp -- npx -y ani-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gavmason-ani-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "ani-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gavmason-ani-mcp --command npx --arg -y --arg ani-mcp
```

### Hermes

```yaml
mcp_servers:
  gavmason-ani-mcp:
    command: "npx"
    args: ["-y", "ani-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "gavmason-ani-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ani-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 64, +64)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-07-31 (score 0, −22)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 22, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 40)

First indexed and scored.

## MCP tools (15)

### `anilist_search` (~193 tokens)

Search for anime or manga by title with optional filters. Use when the user wants to find an anime/manga by name, discover titles in a genre, or find what aired in a specific year. Returns a ranked list with title, format, score, genres, and AniList URL.

Input parameters:

- `format` (string): Filter by format (TV, MOVIE, etc.)
- `genre` (string): Filter by genre, e.g. "Action", "Romance", "Thriller"
- `isAdult` (boolean): Include adult (18+) content in results
- `limit` (integer): Number of results to return (default 10, max 25)
- `query` (string, required): Search term, e.g. "steins gate", "one piece", "chainsaw man"
- `type` (string): Search for anime or manga
- `year` (integer): Filter by release year

### `anilist_details` (~122 tokens)

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. Provide either an AniList ID (faster, exact) or a title (fuzzy match).

Input parameters:

- `id` (integer): AniList media ID (e.g. 1 for Cowboy Bebop). Use this if you know the exact ID.
- `title` (string): Search by title if no ID is known (e.g. "Attack on Titan"). Finds the best match.

### `anilist_seasonal` (~129 tokens)

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 the current season/year.

Input parameters:

- `isAdult` (boolean): Include adult (18+) content in results
- `limit` (integer): Number of results to return (default 15, max 50)
- `season` (string): Season to browse. Defaults to the current season.
- `sort` (string): How to rank results
- `year` (integer): Year to browse. Defaults to the current year.

### `anilist_recommendations` (~106 tokens)

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 recommended by AniList users, sorted by recommendation count.

Input parameters:

- `id` (integer): AniList media ID
- `limit` (integer): Number of recommendations to return (default 10, max 25)
- `title` (string): Search by title if no ID is known

### `anilist_list` (~135 tokens)

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. Defaults to the configured username if not provided.

Input parameters:

- `limit` (integer): Maximum entries to return (default 25, max 100)
- `sort` (string): How to sort results
- `status` (string): Filter by list status. CURRENT = watching/reading now.
- `type` (string): Get anime or manga list
- `username` (string): AniList username. Falls back to configured default if not provided.

### `anilist_stats` (~72 tokens)

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. Shows anime and manga stats side by side.

Input parameters:

- `username` (string): AniList username. Falls back to configured default if not provided.

### `anilist_taste` (~96 tokens)

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. Analyzes genre preferences, theme weights, scoring patterns, and format split.

Input parameters:

- `type` (string): Analyze anime list, manga list, or both
- `username` (string): AniList username. Falls back to configured default if not provided.

### `anilist_pick` (~153 tokens)

"What should I watch/read next?" Recommends from your Planning list based on your taste profile. Falls back to top-rated AniList titles if the Planning list is empty. Optionally filter by mood or max episodes.

Input parameters:

- `limit` (integer): Number of recommendations to return (default 5, max 15)
- `maxEpisodes` (integer): Filter out series longer than this episode count
- `mood` (string): Freeform mood or vibe, e.g. "something dark", "chill and wholesome", "hype action"
- `type` (string): Recommend from anime or manga planning list
- `username` (string): AniList username. Falls back to configured default if not provided.

### `anilist_compare` (~81 tokens)

Compare taste profiles between two AniList users. Shows compatibility score, shared favorites, biggest disagreements, and genre divergences. Use when someone asks to compare their taste with another user.

Input parameters:

- `type` (string): Compare anime or manga taste
- `user1` (string, required): First AniList username
- `user2` (string, required): Second AniList username

### `anilist_wrapped` (~101 tokens)

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.

Input parameters:

- `type` (string): Summarize anime, manga, or both
- `username` (string): AniList username. Falls back to configured default if not provided.
- `year` (integer): Year to summarize. Defaults to the current year.

### `anilist_trending` (~94 tokens)

Show what's trending on AniList right now. Use when the user asks what's hot, trending, or generating buzz. No search term needed - returns titles ranked by current trending score.

Input parameters:

- `isAdult` (boolean): Include adult (18+) content in results
- `limit` (integer): Number of results to return (default 10, max 25)
- `type` (string): Show trending anime or manga

### `anilist_genres` (~183 tokens)

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". No search term needed - discovers by genre with optional year/status/format filters.

Input parameters:

- `format` (string): Filter by format
- `genre` (string, required): Genre to browse, e.g. "Action", "Romance", "Horror"
- `isAdult` (boolean): Include adult (18+) content in results
- `limit` (integer): Number of results to return (default 10, max 25)
- `sort` (string): How to rank results
- `status` (string): Filter by airing/publishing status
- `type` (string): Browse anime or manga
- `year` (integer): Filter by release year

### `anilist_staff` (~77 tokens)

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. Shows directors, writers, character designers, and Japanese voice actors.

Input parameters:

- `id` (integer): AniList media ID
- `title` (string): Search by title if no ID is known

### `anilist_schedule` (~70 tokens)

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.

Input parameters:

- `id` (integer): AniList media ID for the anime
- `title` (string): Search by title if no ID is known

### `anilist_characters` (~89 tokens)

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.

Input parameters:

- `limit` (integer): Number of results to return (default 5, max 10)
- `query` (string, required): Character name to search for, e.g. "Goku", "Levi Ackerman"

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/gavmason-ani-mcp/ani-mcp#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 64
- 2026-08-01: 0
- 2026-07-31: 0
- 2026-07-30: 22
- 2026-07-28: 40
- 2026-07-27: 40

## Links

- npm package: https://www.npmjs.com/package/ani-mcp
- Socket report: https://socket.dev/npm/package/ani-mcp
- Changelog RSS feed: https://verifymcp.io/servers/gavmason-ani-mcp/ani-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/gavmason-ani-mcp/ani-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/gavmason-ani-mcp/ani-mcp
