Anime News Network
Busca en la enciclopedia de Anime News Network y lee su servicio de noticias. Sin clave de API.
Documentación
mcp-animenewsnetwork
Anime News Network cubre el anime y el manga desde 1998. Mantiene una enciclopedia de las obras en sí, con el reparto y el personal acreditado en cada una, los episodios, los lanzamientos, los temas de apertura y cierre y las calificaciones de los lectores, y junto a ella publica un servicio de noticias, con ediciones separadas para Estados Unidos, el Reino Unido y Australia.
Este servidor conecta un cliente de chat con ambas cosas. Puedes buscar en la enciclopedia un anime o un manga, leer una entrada con sus créditos y sus detalles, listar lo que se añadió recientemente u hojear la enciclopedia alfabéticamente, y leer el servicio de noticias. No necesita clave de API ni cuenta.
Instalación
Instalación en un clic
Claude Code
claude mcp add animenewsnetwork -- npx -y mcp-animenewsnetwork
Claude Desktop, Cursor y cualquier cliente que use el formato de configuración estándar
{
"mcpServers": {
"animenewsnetwork": {
"command": "npx",
"args": ["-y", "mcp-animenewsnetwork"]
}
}
}
Se requiere Node 24 o posterior, y no hay que establecer ninguna variable de entorno.
Con Docker
{
"mcpServers": {
"animenewsnetwork": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-animenewsnetwork:3.0.0"]
}
}
}
-i mantiene stdin abierto, que es por donde viaja el protocolo, y -t se omite
porque una TTY reescribe el flujo. El contenedor necesita HTTPS saliente hacia
cdn.animenewsnetwork.com y www.animenewsnetwork.com, y nada más: sin
volumen, sin puerto, sin credencial.
Paquete, sin npm
Descarga mcp-animenewsnetwork-2.0.1.mcpb desde
la última versión
y ábrelo. Un cliente que admita paquetes MCP lo instala por su cuenta, sin npm
y sin archivo de configuración que editar. El paquete lleva sus dependencias,
así que no se descarga nada en el momento de la instalación.
Lo que puedes preguntar
- "¿Qué tiene la enciclopedia sobre Cowboy Bebop?"
- "¿Quién puso voz a Spike, y en qué idiomas?"
- "¿Qué animes se añadieron a la enciclopedia recientemente?"
- "¿Cuál es la noticia de anime de hoy?"
- "¿Cómo calificaron los lectores esa serie?"
El camino habitual va de una búsqueda a una entrada: una fila lleva un id y un
kind, y get_title toma ambos juntos.
Herramientas
| Herramienta | Qué hace |
|---|---|
search_titles | Encuentra anime y manga por título en la enciclopedia. |
get_title | Lee una entrada, sus créditos y sus detalles. |
list_recent | Lista lo añadido recientemente, u hojea la enciclopedia por letra. |
get_news | Lee el servicio de noticias. |
Una entrada se identifica por su id junto con su kind, ya que la
enciclopedia numera anime y manga por separado.
search_titles
Encuentra anime y manga por título.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
query | cadena, al menos 1 carácter | sí | Un título, o parte de uno. |
kind | anime, manga o both, por defecto both | no | Qué parte de la enciclopedia. |
limit | entero, de 1 a 50, por defecto 10 | no | Filas a servir. |
A cambio: filas que llevan id y kind, que get_title toma juntos;
name; type, que lee TV, película, OAV, ONA, especial, manga o novela;
precision; vintage, la fecha o el rango de estreno original tal como se publicó; y
source_url. Un campo que la entrada deja vacío es null.
get_title
Lee una entrada. Las partes más pesadas se piden en lugar de servirse por defecto.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
id | entero, 1 o más | sí | El id de la enciclopedia. |
kind | anime o manga | sí | A qué búsqueda pertenece el id. |
sections | matriz de basic, cast, staff, episodes, releases, related, news, reviews, por defecto ["basic"] | no | Qué partes devolver. |
max_chars | entero, de 200 a 20000, por defecto 4000 | no | Cuánto del resumen de la trama servir. |
offset | entero, 0 o más, por defecto 0 | no | Dónde reanudar el resumen de la trama. |
A cambio: title, la entrada que lleva una fila de búsqueda, que vuelve
sin importar lo que se pidió para que cualquier respuesta pueda citarse. Pedir basic añade
alt_titles, genres, themes, episode_count, running_time,
objectionable_content, official_websites, picture_url, opening_themes
y ending_themes.
ratings lleva las votes de los lectores, weighted_score y bayesian_score,
cada null donde la enciclopedia no calculó ninguna. plot_summary se sirve en
trozos, descritos por total_chars, returned_chars, offset,
next_offset y truncated. Una entrada de reparto nombra al role, al person y
al lang en el que actuaron.
list_recent
Lista lo añadido recientemente a la enciclopedia, u hojea por primera letra.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
kind | anime, manga, person o company, por defecto anime | no | Qué listar. |
starts_with | un solo carácter | no | Hojea las entradas que empiezan por él. |
limit | entero, de 1 a 50, por defecto 20 | no | Filas a servir. |
offset | entero, 0 o más, por defecto 0 | no | Filas a omitir, para paginar. |
A cambio: rows, cada una con id, kind, name, type, precision,
vintage, date_added y source_url, cualquiera de las cuales el informe puede dejar
vacías. mode indica si la respuesta se leyó como recent o como browse, ya que
pasar starts_with cambia la pregunta que se hace, y next_offset
continúa.
get_news
Lee el servicio de noticias.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
feed | all, news o reviews, por defecto all | no | Qué fuente leer. |
edition | us, uk o au, por defecto us | no | Qué edición. |
category | cadena | no | Conserva las historias que llevan esta etiqueta. |
limit | entero, de 1 a 100, por defecto 20 | no | Historias a servir. |
A cambio: items, cada una con su title, link, summary, categories
que contiene cada etiqueta que la fuente lleva sobre la historia, y published_at como una
marca de tiempo ISO cuando la fecha de la fuente pudo leerse.
total_available cuenta las historias que tenía la fuente, que es una longitud fija de la fuente
en lugar del tamaño del archivo.
Configuración
Toda variable es opcional. Establécelas en el bloque env de la configuración de tu cliente.
| Variable | Por defecto | Qué hace |
|---|---|---|
ANN_USER_AGENT | la identidad del proyecto | Nombra tu aplicación al servicio, con una dirección donde se pueda contactar a una persona. |
ANN_MIN_INTERVAL_MS | 1100 | Intervalo entre dos solicitudes, de 1000 a 60000. |
ANN_TIMEOUT_MS | 15000 | Plazo para una solicitud, de 1000 a 120000. |
ANN_MAX_RETRIES | 3 | Intentos tras un fallo transitorio, de 0 a 10. |
ANN_CACHE_TTL_MS | 3600000 | Cuánto tiempo permanece en memoria una entrada de la enciclopedia, de 0 a 86400000. |
ANN_NEWS_CACHE_TTL_MS | 300000 | Cuánto tiempo permanece en memoria una fuente de noticias, de 0 a 86400000. |
ANN_CACHE_MAX_ENTRIES | 200 | Respuestas retenidas en memoria a la vez, de 0 a 10000. |
ANN_LOG_LEVEL | error | silent, error, info o debug, escritos en stderr. |
El servicio de noticias publica varias veces por hora, mientras que la enciclopedia cambia rara vez, así que ambas se retienen durante períodos diferentes. Un valor fuera de su rango vuelve al valor por defecto, y el motivo se escribe en stderr.
Errores
Cada fallo lleva uno de seis códigos, un mensaje y, cuando ayuda, una pista que indica el siguiente paso.
| Código | Qué ocurrió | Qué hacer |
|---|---|---|
not_found | El servicio respondió y no tiene esa entrada. | Comprueba el id y el tipo con search_titles. |
invalid_input | Los argumentos fueron rechazados antes de enviar ninguna solicitud. | Lee el mensaje, que nombra el argumento. |
rate_limited | El servicio pidió a este cliente que fuera más lento. | Espera el número de segundos que indica la pista y vuelve a llamar con los mismos argumentos. La entrada sigue ahí. |
parse_failure | La respuesta llegó en un formato que este cliente no puede leer. | Repórtalo en el rastreador de problemas. |
network_error | La solicitud no se completó. | Inténtalo de nuevo en breve. |
timeout | La solicitud superó su plazo. | Aumenta ANN_TIMEOUT_MS, o pide menos filas. |
Como biblioteca
La capa que lee el servicio se publica por separado, con su ritmo, su caché y sus errores, y sin protocolo adjunto.
import { AnnClient } from "mcp-animenewsnetwork/client";
const client = new AnnClient();
const { data, cached } = await client.getTitle("anime", 1);
console.log(data.name, cached);
Cada lectura responde con { data, cached }, y lanza un error con uno de los seis
códigos. El intervalo entre dos solicitudes también se mantiene aquí.
Ritmo y atribución
Las solicitudes salen de una en una con al menos 1,1 segundos entre ellas, y el
mínimo de un segundo se mantiene sin importar cómo esté configurado el servidor. El User-Agent
siempre termina con la identidad del proyecto y una dirección donde se puede
contactar a una persona.
Cada resultado lleva la dirección de la página de la enciclopedia o del artículo. La enciclopedia y las noticias son obra de Anime News Network y sus colaboradores, y la atribución es lo que el servicio pide a cambio.
Este servidor MCP es un proyecto no oficial, sin afiliación con Anime News Network.
Privacidad
Este servidor no recopila nada sobre ti y no envía nada a su autor. Se ejecuta
en tu máquina, contacta a cdn.animenewsnetwork.com y
www.animenewsnetwork.com y nada más, guarda sus respuestas en memoria mientras
se ejecuta y no escribe nada en el disco. PRIVACY.md indica qué lleva una solicitud
y qué ajustes cambian algo de eso.
Desarrollo
npm install
npm run build:fixtures
npm test
npm run check
Las pruebas se ejecutan contra datos generados y no hacen ninguna solicitud de red. La suite en vivo,
npm run test:live, hace una solicitud por ruta y se ejecuta cada noche contra el
propio servicio.
Contribuciones
Los errores, preguntas e ideas van en el rastreador de problemas. Las solicitudes de extracción son bienvenidas; abrir un problema primero ayuda a acordar la forma del cambio. Consulta CONTRIBUTING.md.
Licencia
MIT, ver LICENSE. La enciclopedia y las noticias pertenecen a Anime News Network y sus colaboradores.
mcp-animenewsnetwork (francés)
Anime News Network cubre el anime y el manga desde 1998. El sitio mantiene una enciclopedia de las obras en sí, con los intérpretes y el equipo acreditado en cada una, los episodios, las publicaciones, los créditos de apertura y cierre y las calificaciones de sus lectores, y además tiene un feed de noticias, con ediciones separadas para Estados Unidos, el Reino Unido y Australia.
Este servidor conecta un cliente de conversación con ambos. Se puede buscar un anime o un manga en la enciclopedia, leer una ficha con sus créditos y detalles, listar lo que se acaba de agregar o recorrer la enciclopedia por letra, y leer el feed de noticias. Sin clave de API, sin cuenta.
Instalación
Instalación en un clic
Claude Code
claude mcp add animenewsnetwork -- npx -y mcp-animenewsnetwork
Claude Desktop, Cursor y cualquier cliente con formato de configuración estándar
{
"mcpServers": {
"animenewsnetwork": {
"command": "npx",
"args": ["-y", "mcp-animenewsnetwork"]
}
}
}
Se requiere Node 24 o más reciente, y no hay que configurar ninguna variable de entorno.
Con Docker
{
"mcpServers": {
"animenewsnetwork": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-animenewsnetwork:3.0.0"]
}
}
}
-i mantiene abierta la entrada estándar, que es el canal del protocolo, y -t se
omite porque un TTY reescribe el flujo. El contenedor necesita acceso HTTPS
saliente a cdn.animenewsnetwork.com y www.animenewsnetwork.com, y nada
más: sin volúmenes, sin puertos, sin identificadores.
Paquete, sin npm
Descarga mcp-animenewsnetwork-2.0.1.mcpb desde
la última publicación
y ábrelo. Un cliente que gestione paquetes MCP lo instala solo, sin npm y
sin modificar ningún archivo de configuración. El paquete incluye sus dependencias, así que
no se descarga nada durante la instalación.
Lo que se puede pedir
- «¿Qué tiene la enciclopedia sobre Cowboy Bebop?»
- «¿Quién dobló a Spike, y en qué idiomas?»
- «¿Qué animes se han agregado recientemente a la enciclopedia?»
- «¿Cuál es la noticia de anime del día?»
- «¿Cómo calificaron los lectores esta serie?»
El camino habitual va de una búsqueda a una ficha: una línea lleva un id y
un kind, y get_title retoma ambos juntos.
Las herramientas
| Herramienta | Lo que hace |
|---|---|
search_titles | Encuentra animes y mangas por su título en la enciclopedia. |
get_title | Lee una ficha, sus créditos y detalles. |
list_recent | Lista los agregados recientes, o recorre la enciclopedia por letra. |
get_news | Lee el feed de noticias. |
Una ficha se identifica por su id junto con su kind, ya que la enciclopedia
numera los animes y los mangas por separado.
search_titles
Encuentra animes y mangas por su título.
| Argumento | Tipo | Requerido | Lo que hace |
|---|---|---|---|
query | cadena, al menos 1 carácter | sí | Un título, o una parte. |
kind | anime, manga o both, por defecto both | no | La parte de la enciclopedia. |
limit | entero, 1 a 50, por defecto 10 | no | Líneas a servir. |
En respuesta: líneas que llevan id y kind, que get_title retoma
juntas ; name ; type, con valor TV, movie, OAV, ONA, special, manga o
novel ; precision ; vintage, la fecha o el período de publicación tal como se
publicó ; y source_url. Un campo que la ficha deja vacío vale null.
get_title
Lee una ficha. Las partes pesadas se piden en lugar de servirse por defecto.
| Argumento | Tipo | Requerido | Lo que hace |
|---|---|---|---|
id | entero, 1 o más | sí | El identificador enciclopédico. |
kind | anime o manga | sí | El registro al que pertenece el id. |
sections | matriz de basic, cast, staff, episodes, releases, related, news, reviews, por defecto ["basic"] | no | Las partes a devolver. |
max_chars | entero, 200 a 20000, por defecto 4000 | no | La longitud del resumen a servir. |
offset | entero, 0 o más, por defecto 0 | no | Dónde retomar el resumen. |
En respuesta: title, la ficha que lleva una línea de búsqueda, que vuelve
sin importar la solicitud para que cualquier respuesta pueda citarse. Pedir
basic agrega alt_titles, genres, themes, episode_count,
running_time, objectionable_content, official_websites, picture_url,
opening_themes y ending_themes.
ratings lleva los votes de los lectores, el weighted_score y el
bayesian_score, cada uno null donde la enciclopedia no ha calculado ninguno.
plot_summary se sirve por tramos, descritos por total_chars,
returned_chars, offset, next_offset y truncated. Una entrada de
distribución nombra al role, la person y el idioma lang en el que
actuó.
list_recent
Lista los agregados recientes a la enciclopedia, o la recorre por primera letra.
| Argumento | Tipo | Requerido | Lo que hace |
|---|---|---|---|
kind | anime, manga, person o company, por defecto anime | no | Lo que hay que listar. |
starts_with | un solo carácter | no | Recorre las fichas que empiezan con él. |
limit | entero, 1 a 50, por defecto 20 | no | Líneas a servir. |
offset | entero, 0 o más, por defecto 0 | no | Líneas a saltar, para paginar. |
En respuesta: rows, cada una con id, kind, name, type,
precision, vintage, date_added y source_url, que el informe puede dejar
vacías. mode dice si la respuesta se leyó en recent o en browse, pasar
starts_with cambia la pregunta planteada, y next_offset continúa.
get_news
Lee el feed de noticias.
| Argumento | Tipo | Requerido | Lo que hace |
|---|---|---|---|
feed | all, news o reviews, por defecto all | no | El feed a leer. |
edition | us, uk o au, por defecto us | no | La edición. |
category | cadena | no | Conservar solo los temas con esta etiqueta. |
limit | entero, 1 a 100, por defecto 20 | no | Temas a servir. |
En retorno: items, cada uno con su title, link, summary, sus | |||
categories portando cada etiqueta que el hilo aplica al tema, y | |||
published_at en marca de tiempo ISO cuando la fecha del hilo pudo leerse. | |||
total_available cuenta los temas que contenía el hilo, lo cual es una longitud | |||
| de hilo fija y no el tamaño de los archivos. |
Configuración
Cada variable es opcional. Se colocan en el bloque env de la
configuración del cliente.
| Variable | Predeterminado | Qué hace |
|---|---|---|
ANN_USER_AGENT | la identidad del proyecto | Nombra tu aplicación ante el servicio, con una dirección donde contactar a una persona. |
ANN_MIN_INTERVAL_MS | 1100 | Intervalo entre dos solicitudes, de 1000 a 60000. |
ANN_TIMEOUT_MS | 15000 | Tiempo de espera de una solicitud, de 1000 a 120000. |
ANN_MAX_RETRIES | 3 | Intentos después de un fallo temporal, de 0 a 10. |
ANN_CACHE_TTL_MS | 3600000 | Duración durante la cual una ficha permanece en memoria, de 0 a 86400000. |
ANN_NEWS_CACHE_TTL_MS | 300000 | Duración durante la cual un hilo permanece en memoria, de 0 a 86400000. |
ANN_CACHE_MAX_ENTRIES | 200 | Respuestas guardadas en memoria a la vez, de 0 a 10000. |
ANN_LOG_LEVEL | error | silent, error, info o debug, escrito en la salida de error. |
El hilo de noticias publica varias veces por hora donde la enciclopedia cambia raramente, por lo que ambos se guardan con duraciones diferentes. Un valor fuera de su rango cae al predeterminado, y la razón se escribe en la salida de error.
Errores
Cada fallo lleva uno de los seis códigos, un mensaje, y cuando ayuda una indicación del siguiente paso.
| Código | Lo que sucedió | Qué hacer |
|---|---|---|
not_found | El servicio respondió y no tiene esta ficha. | Verifica el identificador y el tipo con search_titles. |
invalid_input | Los argumentos fueron rechazados antes de cualquier solicitud. | Lee el mensaje, que nombra el argumento. |
rate_limited | El servicio pide a este cliente que reduzca la velocidad. | Espera los segundos indicados y vuelve a llamar con los mismos argumentos. La ficha sigue ahí. |
parse_failure | La respuesta llegó en una forma ilegible aquí. | Repórtalo en el seguimiento de incidencias. |
network_error | La solicitud no se completó. | Reintenta en breve. |
timeout | La solicitud superó su tiempo de espera. | Aumenta ANN_TIMEOUT_MS, o pide menos líneas. |
Como biblioteca
La capa que lee el servicio se publica sola, con su ritmo, su caché y sus errores, sin protocolo adjunto.
import { AnnClient } from "mcp-animenewsnetwork/client";
const client = new AnnClient();
const { data, cached } = await client.getTitle("anime", 1);
console.log(data.name, cached);
Cada lectura responde { data, cached }, y lanza un error con uno de los seis
códigos. El mínimo entre dos solicitudes también se aplica aquí.
Ritmo y atribución
Las solicitudes salen una a una con al menos 1,1 segundos entre ellas, y el
mínimo de un segundo se mantiene sin importar la configuración. El User-Agent se
termina siempre con la identidad del proyecto y una dirección donde contactar a una persona.
Cada resultado lleva la dirección de la página enciclopédica o del artículo. La enciclopedia y las noticias son obra de Anime News Network y de sus contribuyentes, y la atribución es lo que el servicio pide a cambio.
Este MCP es un proyecto no oficial, sin afiliación con Anime News Network.
Privacidad
Este servidor no recopila nada sobre ti y no envía nada a su autor. Se ejecuta en
tu máquina, solo adjunta cdn.animenewsnetwork.com y
www.animenewsnetwork.com, guarda sus respuestas en memoria mientras se ejecuta,
y no escribe nada en el disco. PRIVACY.md dice qué lleva una solicitud
y qué ajustes cambian eso.
Desarrollo
npm install
npm run build:fixtures
npm test
npm run check
Las pruebas se ejecutan sobre fixtures generados y no emiten ninguna solicitud.
La suite en vivo, npm run test:live, emite una solicitud por ruta y se ejecuta
cada noche contra el propio servicio.
Contribuir
Las anomalías, las preguntas y las ideas tienen su lugar en el seguimiento de incidencias. Las propuestas de modificación son bienvenidas; abrir un ticket primero ayuda a acordar la forma del cambio. Ver CONTRIBUTING.md.
Licencia
MIT, ver LICENSE. La enciclopedia y las noticias pertenecen a Anime News Network y a sus contribuyentes.