Anime News Network
Pesquise na enciclopédia da Anime News Network e leia seu feed de notícias. Sem chave de API.
Documentação
mcp-animenewsnetwork
O Anime News Network cobre anime e mangá desde 1998. Ele mantém uma enciclopédia das próprias obras, com o elenco e a equipe creditados em cada uma, os episódios, os lançamentos, as aberturas e encerramentos e as avaliações dos leitores, e também opera um feed de notícias, com edições separadas para os Estados Unidos, o Reino Unido e a Austrália.
Este servidor conecta um cliente de chat a ambos. Você pode pesquisar na enciclopédia por um anime ou mangá, ler uma entrada com seus créditos e detalhes, listar o que foi adicionado recentemente ou navegar pela enciclopédia em ordem alfabética, e ler o feed de notícias. Ele não requer chave de API nem conta.
Instalação
Instalação com um clique
Claude Code
claude mcp add animenewsnetwork -- npx -y mcp-animenewsnetwork
Claude Desktop, Cursor e qualquer cliente que use o formato de configuração padrão
{
"mcpServers": {
"animenewsnetwork": {
"command": "npx",
"args": ["-y", "mcp-animenewsnetwork"]
}
}
}
Node 24 ou posterior é necessário, e nenhuma variável de ambiente precisa ser definida.
Com Docker
{
"mcpServers": {
"animenewsnetwork": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-animenewsnetwork:3.0.0"]
}
}
}
-i mantém o stdin aberto, que é por onde o protocolo trafega, e -t é omitido porque um TTY reescreve o fluxo. O contêiner precisa de HTTPS de saída para cdn.animenewsnetwork.com e www.animenewsnetwork.com, e nada mais: sem volume, sem porta, sem credencial.
Pacote, sem npm
Baixe mcp-animenewsnetwork-2.0.1.mcpb do último lançamento e abra-o. Um cliente que suporte pacotes MCP o instala por conta própria, sem npm e sem arquivo de configuração para editar. O pacote carrega suas dependências, então nada é baixado no momento da instalação.
O que você pode perguntar
- "O que a enciclopédia tem sobre Cowboy Bebop?"
- "Quem dublou Spike, e em quais idiomas?"
- "Quais animes foram adicionados à enciclopédia recentemente?"
- "Quais são as notícias de anime hoje?"
- "Como os leitores avaliaram essa série?"
O caminho comum vai de uma pesquisa a uma entrada: uma linha carrega um id e um kind, e get_title recebe ambos juntos.
Ferramentas
| Ferramenta | O que faz |
|---|---|
search_titles | Encontra animes e mangás por título na enciclopédia. |
get_title | Lê uma entrada, seus créditos e seus detalhes. |
list_recent | Lista o que foi adicionado recentemente, ou navega pela enciclopédia por letra. |
get_news | Lê o feed de notícias. |
Uma entrada é endereçada pelo seu id junto com seu kind, já que a enciclopédia numera animes e mangás separadamente.
search_titles
Encontra animes e mangás por título.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
query | string, pelo menos 1 caractere | sim | Um título, ou parte dele. |
kind | anime, manga ou both, padrão both | não | Qual parte da enciclopédia. |
limit | inteiro, 1 a 50, padrão 10 | não | Linhas a servir. |
Em retorno: linhas carregando id e kind, que get_title recebe juntos;
name; type, lendo TV, filme, OAV, ONA, especial, mangá ou romance;
precision; vintage, a data ou intervalo de lançamento original como publicado; e
source_url. Um campo que a entrada deixa vazio é null.
get_title
Lê uma entrada. As partes mais pesadas são solicitadas em vez de servidas por padrão.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
id | inteiro, 1 ou mais | sim | O id da enciclopédia. |
kind | anime ou manga | sim | A qual consulta o id pertence. |
sections | array de basic, cast, staff, episodes, releases, related, news, reviews, padrão ["basic"] | não | Quais partes retornar. |
max_chars | inteiro, 200 a 20000, padrão 4000 | não | Quanto do resumo da trama servir. |
offset | inteiro, 0 ou mais, padrão 0 | não | Onde retomar o resumo da trama. |
Em retorno: title, a entrada que uma linha de pesquisa carrega, que volta independentemente do que foi solicitado para que qualquer resposta possa ser citada. Pedir basic adiciona
alt_titles, genres, themes, episode_count, running_time,
objectionable_content, official_websites, picture_url, opening_themes
e ending_themes.
ratings carrega os votes, weighted_score e bayesian_score dos leitores,
cada null onde a enciclopédia não calculou nenhum. plot_summary é servido em
fatias por vez, descrito por total_chars, returned_chars, offset,
next_offset e truncated. Uma entrada de elenco nomeia o role, o person e
o lang em que atuaram.
list_recent
Lista o que foi adicionado recentemente à enciclopédia, ou navega por ela pela primeira letra.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
kind | anime, manga, person ou company, padrão anime | não | O que listar. |
starts_with | um único caractere | não | Navegar pelas entradas que começam com ele. |
limit | inteiro, 1 a 50, padrão 20 | não | Linhas a servir. |
offset | inteiro, 0 ou mais, padrão 0 | não | Linhas a pular, para paginação. |
Em retorno: rows, cada uma carregando id, kind, name, type, precision,
vintage, date_added e source_url, qualquer uma das quais o relatório pode deixar
vazio. mode diz se a resposta foi lida como recent ou como browse, já que
passar starts_with muda a pergunta sendo feita, e next_offset
continua.
get_news
Lê o feed de notícias.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
feed | all, news ou reviews, padrão all | não | Qual feed ler. |
edition | us, uk ou au, padrão us | não | Qual edição. |
category | string | não | Manter as histórias que carregam esta tag. |
limit | inteiro, 1 a 100, padrão 20 | não | Histórias a servir. |
Em retorno: items, cada uma com seu title, link, summary, categories
contendo todas as tags que o feed carrega na história, e published_at como um
timestamp ISO quando a data do feed pôde ser lida.
total_available conta as histórias que o feed continha, que é um comprimento fixo de feed
em vez do tamanho do arquivo.
Configuração
Toda variável é opcional. Defina-as no bloco env da configuração do seu cliente.
| Variável | Padrão | O que faz |
|---|---|---|
ANN_USER_AGENT | a identidade do projeto | Nomeia seu aplicativo para o serviço, com um endereço onde uma pessoa pode ser contatada. |
ANN_MIN_INTERVAL_MS | 1100 | Intervalo entre duas requisições, de 1000 a 60000. |
ANN_TIMEOUT_MS | 15000 | Prazo para uma requisição, de 1000 a 120000. |
ANN_MAX_RETRIES | 3 | Tentativas após uma falha transitória, de 0 a 10. |
ANN_CACHE_TTL_MS | 3600000 | Por quanto tempo uma entrada da enciclopédia fica na memória, de 0 a 86400000. |
ANN_NEWS_CACHE_TTL_MS | 300000 | Por quanto tempo um feed de notícias fica na memória, de 0 a 86400000. |
ANN_CACHE_MAX_ENTRIES | 200 | Respostas mantidas na memória de uma vez, de 0 a 10000. |
ANN_LOG_LEVEL | error | silent, error, info ou debug, escrito no stderr. |
O feed de notícias publica várias vezes por hora, enquanto a enciclopédia muda raramente, então os dois são mantidos por diferentes períodos de tempo. Um valor fora do seu intervalo cai para o padrão, e o motivo é escrito no stderr.
Erros
Toda falha carrega um de seis códigos, uma mensagem e, onde ajuda, uma dica nomeando o próximo passo.
| Código | O que aconteceu | O que fazer |
|---|---|---|
not_found | O serviço respondeu e não possui tal entrada. | Verifique o id e o tipo com search_titles. |
invalid_input | Os argumentos foram recusados antes de qualquer requisição ser enviada. | Leia a mensagem, que nomeia o argumento. |
rate_limited | O serviço pediu que este cliente diminuísse o ritmo. | Aguarde o número de segundos que a dica indica e chame novamente com os mesmos argumentos. A entrada ainda está lá. |
parse_failure | A resposta chegou em um formato que este cliente não consegue ler. | Reporte em o rastreador de problemas. |
network_error | A requisição não foi concluída. | Tente novamente em breve. |
timeout | A requisição passou do prazo. | Aumente ANN_TIMEOUT_MS, ou peça menos linhas. |
Como biblioteca
A camada que lê o serviço é publicada separadamente, com seu ritmo, seu cache e seus erros, e sem protocolo anexado.
import { AnnClient } from "mcp-animenewsnetwork/client";
const client = new AnnClient();
const { data, cached } = await client.getTitle("anime", 1);
console.log(data.name, cached);
Cada leitura responde com { data, cached }, e lança um erro com um dos seis
códigos. O intervalo entre duas requisições também se aplica aqui.
Ritmo e atribuição
As requisições saem uma de cada vez com pelo menos 1,1 segundos entre elas, e o
intervalo de um segundo se mantém independentemente de como o servidor está configurado. O User-Agent
sempre termina com a identidade do projeto e um endereço onde uma pessoa pode ser
contatada.
Cada resultado traz o endereço da página da enciclopédia ou do artigo. A enciclopédia e as notícias são trabalho da Anime News Network e seus colaboradores, e a atribuição é o que o serviço pede em troca.
Este servidor MCP é um projeto não oficial, sem afiliação com a Anime News Network.
Privacidade
Este servidor não coleta nada sobre você e não envia nada ao seu autor. Ele roda
na sua máquina, contata cdn.animenewsnetwork.com e
www.animenewsnetwork.com e nada mais, mantém as respostas na memória enquanto
roda e não grava nada em disco. PRIVACY.md declara o que uma requisição
carrega e quais configurações alteram isso.
Desenvolvimento
npm install
npm run build:fixtures
npm test
npm run check
Os testes rodam contra fixtures geradas e não fazem requisições de rede. A suíte ao vivo,
npm run test:live, faz uma requisição por rota e roda todas as noites contra o
próprio serviço.
Contribuindo
Bugs, perguntas e ideias pertencem ao rastreador de problemas. Pull requests são bem-vindos; abrir uma issue primeiro ajuda a concordar sobre a forma da mudança. Veja CONTRIBUTING.md.
Licença
MIT, veja LICENSE. A enciclopédia e as notícias pertencem à Anime News Network e seus colaboradores.
mcp-animenewsnetwork (francês)
Anime News Network cobre anime e mangá desde 1998. O site mantém uma enciclopédia das obras em si, com os intérpretes e a equipe creditada em cada uma, os episódios, as publicações, os temas de abertura e encerramento e as notas de seus leitores, e também opera um feed de notícias, com edições distintas para os Estados Unidos, o Reino Unido e a Austrália.
Este servidor conecta um cliente de conversa aos dois. Pode-se buscar um anime ou um mangá na enciclopédia, ler uma ficha com seus créditos e detalhes, listar o que foi adicionado recentemente ou percorrer a enciclopédia por letra, e ler o feed de notícias. Sem chave de API, sem conta.
Instalação
Instalação em um clique
Claude Code
claude mcp add animenewsnetwork -- npx -y mcp-animenewsnetwork
Claude Desktop, Cursor e qualquer cliente no formato de configuração padrão
{
"mcpServers": {
"animenewsnetwork": {
"command": "npx",
"args": ["-y", "mcp-animenewsnetwork"]
}
}
}
Node 24 ou mais recente é necessário, e nenhuma variável de ambiente precisa ser preenchida.
Com Docker
{
"mcpServers": {
"animenewsnetwork": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-animenewsnetwork:3.0.0"]
}
}
}
-i mantém a entrada padrão aberta, que é o canal do protocolo, e -t é
omitido porque um TTY reescreve o fluxo. O contêiner precisa de acesso HTTPS
de saída para cdn.animenewsnetwork.com e www.animenewsnetwork.com, e de nada
mais: nenhum volume, nenhuma porta, nenhum identificador.
Bundle, sem npm
Baixe mcp-animenewsnetwork-2.0.1.mcpb de
a última publicação
e abra-o. Um cliente que gerencia bundles MCP o instala sozinho, sem npm e
sem arquivo de configuração para modificar. O bundle carrega suas dependências, então
nada é baixado na instalação.
O que se pode pedir
- « O que a enciclopédia tem sobre Cowboy Bebop? »
- « Quem dublou Spike, e em quais idiomas? »
- « Quais animes foram adicionados recentemente à enciclopédia? »
- « Qual é a notícia de anime do dia? »
- « Como os leitores avaliaram esta série? »
O caminho comum vai de uma busca a uma ficha: uma linha carrega um id e
um kind, e get_title retoma os dois juntos.
As ferramentas
| Ferramenta | O que faz |
|---|---|
search_titles | Encontra animes e mangás pelo título na enciclopédia. |
get_title | Lê uma ficha, seus créditos e detalhes. |
list_recent | Lista os acréscimos recentes, ou percorre a enciclopédia por letra. |
get_news | Lê o feed de notícias. |
Uma ficha é endereçada pelo seu id acompanhado do seu kind, a enciclopédia
numerando animes e mangás separadamente.
search_titles
Encontra animes e mangás pelo título.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
query | string, pelo menos 1 caractere | sim | Um título, ou uma parte. |
kind | anime, manga ou both, padrão both | não | A parte da enciclopédia. |
limit | inteiro, 1 a 50, padrão 10 | não | Linhas a servir. |
Em retorno: linhas com id e kind, que get_title retoma
juntos ; name ; type, valendo TV, movie, OAV, ONA, special, manga ou
novel ; precision ; vintage, a data ou o período de publicação tal como
publicado ; e source_url. Um campo que a ficha deixa vazio vale null.
get_title
Lê uma ficha. As partes pesadas são solicitadas em vez de serem servidas por padrão.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
id | inteiro, 1 ou mais | sim | O identificador enciclopédico. |
kind | anime ou manga | sim | O registro ao qual o id pertence. |
sections | array de basic, cast, staff, episodes, releases, related, news, reviews, padrão ["basic"] | não | As partes a renderizar. |
max_chars | inteiro, 200 a 20000, padrão 4000 | não | O comprimento do resumo a servir. |
offset | inteiro, 0 ou mais, padrão 0 | não | Onde retomar o resumo. |
Em retorno: title, a ficha que uma linha de busca carrega, que volta
independentemente da solicitação para que qualquer resposta possa ser citada. Pedir
basic adiciona alt_titles, genres, themes, episode_count,
running_time, objectionable_content, official_websites, picture_url,
opening_themes e ending_themes.
ratings carrega as votes dos leitores, o weighted_score e o
bayesian_score, cada um null onde a enciclopédia não calculou nenhum.
plot_summary é servido em partes, descritas por total_chars,
returned_chars, offset, next_offset e truncated. Uma entrada de
distribuição nomeia o role, a person e o idioma lang no qual ela
atuou.
list_recent
Lista os acréscimos recentes à enciclopédia, ou a percorre pela primeira letra.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
kind | anime, manga, person ou company, padrão anime | não | O que listar. |
starts_with | um único caractere | não | Percorre as fichas que começam com ele. |
limit | inteiro, 1 a 50, padrão 20 | não | Linhas a servir. |
offset | inteiro, 0 ou mais, padrão 0 | não | Linhas a pular, para paginar. |
Em retorno: rows, cada uma com id, kind, name, type,
precision, vintage, date_added e source_url, que o relatório pode deixar
vazios. mode diz se a resposta foi lida em recent ou em browse, passar
starts_with mudando a pergunta feita, e next_offset continua.
get_news
Lê o feed de notícias.
| Argumento | Tipo | Obrigatório | O que faz |
|---|---|---|---|
feed | all, news ou reviews, padrão all | não | O feed a ler. |
edition | us, uk ou au, padrão us | não | A edição. |
category | string | não | Manter apenas os assuntos com esta etiqueta. |
limit | inteiro, 1 a 100, padrão 20 | não | Assuntos a servir. |
Em retorno: items, cada um com seu title, link, summary, seus | |||
categories portando cada etiqueta que o filtro aplica ao tópico, e | |||
published_at em carimbo de data/hora ISO quando a data do tópico pôde ser lida. | |||
total_available conta os tópicos que o filtro continha, o que é um comprimento | |||
| de filtro fixo e não o tamanho dos arquivos. |
Configuração
Cada variável é opcional. Elas são definidas no bloco env da
configuração do cliente.
| Variável | Padrão | O que faz |
|---|---|---|
ANN_USER_AGENT | a identidade do projeto | Nomeia seu aplicativo junto ao serviço, com um endereço para contato com uma pessoa. |
ANN_MIN_INTERVAL_MS | 1100 | Intervalo entre duas requisições, de 1000 a 60000. |
ANN_TIMEOUT_MS | 15000 | Tempo limite de uma requisição, de 1000 a 120000. |
ANN_MAX_RETRIES | 3 | Tentativas após uma falha temporária, de 0 a 10. |
ANN_CACHE_TTL_MS | 3600000 | Duração durante a qual uma ficha permanece em memória, de 0 a 86400000. |
ANN_NEWS_CACHE_TTL_MS | 300000 | Duração durante a qual um filtro permanece em memória, de 0 a 86400000. |
ANN_CACHE_MAX_ENTRIES | 200 | Respostas mantidas em memória de uma vez, de 0 a 10000. |
ANN_LOG_LEVEL | error | silent, error, info ou debug, escrito na saída de erro. |
O filtro de notícias publica várias vezes por hora, enquanto a enciclopédia muda raramente, então ambos são mantidos por durações diferentes. Um valor fora de sua faixa cai no padrão, e o motivo é escrito na saída de erro.
Erros
Cada falha carrega um dos seis códigos, uma mensagem e, quando ajuda, uma indicação do próximo passo.
| Código | O que aconteceu | O que fazer |
|---|---|---|
not_found | O serviço respondeu e não tem essa ficha. | Verifique o identificador e o tipo com search_titles. |
invalid_input | Os argumentos foram recusados antes de qualquer requisição. | Leia a mensagem, que nomeia o argumento. |
rate_limited | O serviço pede que este cliente desacelere. | Aguarde os segundos indicados e chame novamente com os mesmos argumentos. A ficha ainda está lá. |
parse_failure | A resposta chegou em uma forma ilegível aqui. | Reporte em o rastreador de incidentes. |
network_error | A requisição não foi concluída. | Tente novamente em breve. |
timeout | A requisição excedeu seu tempo limite. | Aumente ANN_TIMEOUT_MS, ou peça menos linhas. |
Como biblioteca
A camada que lê o serviço é publicada sozinha, com seu ritmo, seu cache e seus erros, sem protocolo anexado.
import { AnnClient } from "mcp-animenewsnetwork/client";
const client = new AnnClient();
const { data, cached } = await client.getTitle("anime", 1);
console.log(data.name, cached);
Cada leitura responde { data, cached }, e levanta um erro carregando um dos seis
códigos. O piso entre duas requisições também se aplica aqui.
Ritmo e atribuição
As requisições partem uma a uma com pelo menos 1,1 segundo entre elas, e o
piso de um segundo se mantém independentemente da configuração. O User-Agent se
termina sempre com a identidade do projeto e um endereço para contato com uma pessoa.
Cada resultado carrega o endereço da página enciclopédica ou do artigo. A enciclopédia e as notícias são obra da Anime News Network e de seus contribuidores, e a atribuição é o que o serviço pede em retorno.
Este MCP é um projeto não oficial, sem afiliação à Anime News Network.
Privacidade
Este servidor não coleta nada sobre você e não envia nada ao seu autor. Ele roda na
sua máquina, junta apenas cdn.animenewsnetwork.com e
www.animenewsnetwork.com, mantém suas respostas em memória enquanto roda,
e não escreve nada no disco. PRIVACY.md diz o que uma requisição
carrega e quais ajustes mudam isso.
Desenvolvimento
npm install
npm run build:fixtures
npm test
npm run check
Os testes são executados em fixtures geradas e não emitem nenhuma requisição.
A suíte ao vivo, npm run test:live, emite uma requisição por rota e roda
todas as noites contra o próprio serviço.
Contribuindo
Anomalias, perguntas e ideias têm seu lugar em o rastreador de incidentes. Propostas de modificação são bem-vindas; abrir um ticket primeiro ajuda a alinhar a forma da mudança. Veja CONTRIBUTING.md.
Licença
MIT, veja LICENSE. A enciclopédia e as notícias pertencem à Anime News Network e aos seus contribuidores.