Skip to main content
Glama
AniList MCP

AniList MCP

by JunnB

AniList MCP (Convex)

Servidor MCP personal para AniList. Convex expone el MCP en https://<déploiement>.convex.site/mcp — sin proceso de Node local, sin backend OAuth.

AniList no tiene más que un endpoint GraphQL (https://graphql.anilist.co) y una concesión implícita: creas un cliente, obtienes un JWT válido durante un año y lo pones como variable de entorno de Convex. Es el atajo para un solo usuario.

Cinco herramientas

Herramienta

Función

chercher

Busca un título, devuelve el id de AniList y el número de episodios

ma_liste

Tu colección, filtrable por estado (CURRENT, PLANNING, …)

progression

SaveMediaListEntry con progress — el episodio que acabas de ver

noter

SaveMediaListEntry con score y status

en_cours_de_diffusion

Lo que se emite esta semana entre tus series seguidas

La última usa el calendario de AniList (airingAt), no una lista mantenida a mano. «Qué ver esta noche» se convierte en el episodio emitido hoy.

Related MCP server: AniList MCP Server

1. Convex

npm install
npx convex dev

Crea (o vincula) el proyecto en tu cuenta de Convex y publica las funciones. La URL HTTP del sitio aparece en el dashboard (*.convex.site).

2. Token de AniList (concesión implícita)

  1. anilist.co/settings/developer → Create New Client

  2. Redirect URL: https://anilist.co/api/v2/oauth/pin (URL PIN, sin backend)

  3. Abre:

https://anilist.co/api/v2/oauth/authorize?client_id=TON_CLIENT_ID&response_type=token
  1. Copia el JWT y luego:

npx convex env set ANILIST_TOKEN 'eyJ...'
npx convex env set ANILIST_TIMEZONE Europe/Paris

Opcional, para bloquear POST /mcp:

npx convex env set MCP_SECRET 'un-secret-long'

3. Cursor

En ~/.cursor/mcp.json (o Settings → MCP):

{
  "mcpServers": {
    "anilist": {
      "url": "https://VOTRE_DEPLOIEMENT.convex.site/mcp"
    }
  }
}

Si MCP_SECRET está definido:

{
  "mcpServers": {
    "anilist": {
      "url": "https://VOTRE_DEPLOIEMENT.convex.site/mcp",
      "headers": {
        "Authorization": "Bearer un-secret-long"
      }
    }
  }
}

El transporte es Streamable HTTP, sin sesión persistente (especificación reciente). Convex sigue siendo el host.

Ejemplos

  • «Busca Frieren» → chercher → id + 28 episodios

  • «Marca el episodio 12 de Frieren» → progression

  • «Pon nota 85 y COMPLETED» → noter

  • «¿Qué sale esta noche en mi lista?» → en_cours_de_diffusion

Desarrollo

npm test
npm run lint
npx convex dev          # watch + push (dev uniquement)

npx convex deploy únicamente para producción.

Las llamadas a AniList son acciones de Convex (convex/anilist.ts). El router HTTP (convex/http.ts) traduce JSON-RPC MCP → estas acciones.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables searching and browsing anime/manga, characters, staff, and more on AniList without credentials, and with a one-time login allows managing personal lists, favorites, follows, and activity.
    50
    243 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables querying and updating Bangumi anime collections, tracking per-episode progress, and receiving airing reminders for currently-watching anime via AniList.
    -