Metacritic

Pesquise filmes, séries e jogos no Metacritic, leia pontuações e críticas de especialistas. Sem chave de API.

Documentação

mcp-metacritic

npm CI license MCP Registry Glama M8ven LobeHub Install in Cursor Install in VS Code

O Metacritic reúne o que críticos e público disseram sobre filmes, séries de televisão e jogos eletrônicos. Cada entrada traz o ano, a classificação etária, os gêneros e duas notas próprias: o Metascore, uma média ponderada das resenhas profissionais, e a nota do usuário, de zero a dez, dada pelas pessoas que se cadastraram para avaliar. Abaixo de cada entrada estão as próprias resenhas, com a publicação que as veiculou e o trecho citado.

Este servidor conecta um cliente de chat a esse catálogo. Você pode pesquisar um título, ler sua entrada com notas e detalhes, navegar por um catálogo por nota, novidade ou popularidade, e ler as resenhas de um título, filtradas por crítico ou público e por quão favoráveis foram. Não exige chave de API nem conta.

Versão em francês


Instalação

Instalação em um clique

Install in Cursor Install in VS Code

Claude Code

claude mcp add metacritic -- npx -y mcp-metacritic

Claude Desktop, Cursor e qualquer cliente que use o formato de configuração padrão

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

É necessário Node 24 ou posterior, e nenhuma variável de ambiente precisa ser definida.

Com Docker

{
  "mcpServers": {
    "metacritic": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-metacritic:2.0.1"]
    }
  }
}

-i mantém o stdin aberto, que é por onde o protocolo trafega, e -t fica de fora porque um TTY reescreve o fluxo. O contêiner precisa de HTTPS de saída para backend.metacritic.com, e nada mais: sem volume, sem porta, sem credencial.

Pacote, sem npm

Baixe mcp-metacritic-2.0.1.mcpb de a versão mais recente 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 na instalação.

O que você pode perguntar

  • "O que os críticos acharam de Matrix?"
  • "Leia algumas resenhas negativas desse jogo."
  • "Quais são os filmes de terror mais bem avaliados?"
  • "Como a nota do usuário se compara ao Metascore?"
  • "O que foi lançado recentemente e foi bem avaliado?"

O caminho comum vai de uma pesquisa a uma entrada: uma linha carrega um slug e um kind, e get_title e get_reviews aceitam ambos juntos.

Ferramentas

FerramentaO que faz
search_titlesEncontra filmes, séries e jogos por título.
get_titleLê uma entrada, suas notas e seus detalhes.
get_reviewsLê as resenhas de uma entrada, por fonte e por sentimento.
browse_titlesLista um catálogo por nota, novidade ou popularidade.

Um título é identificado pelo seu slug junto com seu kind, já que o mesmo slug pode nomear um filme e um jogo.

search_titles

Encontra filmes, séries e jogos por título.

ArgumentoTipoObrigatórioO que faz
querystring, pelo menos 1 caracteresimUm título, ou parte dele.
kindmovie, show, game ou any, padrão anynãoQual catálogo pesquisar.
limitinteiro, 1 a 50, padrão 10nãoLinhas a retornar.

Em retorno: linhas com slug e kind, que get_title e get_reviews aceitam juntos; title; year; release_date; rating, a classificação etária como publicada; metascore; user_score; e source_url. Uma nota que o site não calculou é null, nunca 0: em uma escala que começa em zero, os dois seriam indistinguíveis, e um título com poucas resenhas não carrega nenhuma.

get_title

Lê uma entrada. As partes mais pesadas são solicitadas em vez de retornadas por padrão, e cada uma além do padrão custa uma requisição.

ArgumentoTipoObrigatórioO que faz
slugstring, pelo menos 1 caracteresimO identificador que uma linha carrega.
kindmovie, show ou gamesimA qual catálogo pertence.
sectionsarray de basic, scores, awards, production, networks, where_to_watch, padrão ["basic", "scores"]nãoQuais partes retornar.
max_charsinteiro, 200 a 20000, padrão 4000nãoQuanto da descrição retornar.
offsetinteiro, 0 ou mais, padrão 0nãoOnde retomar a descrição.

Em retorno: a entrada que uma linha de pesquisa carrega, mais description, tagline, genres, duration_minutes e imdb_id, cada um null quando a página não informa nada. total_chars, returned_chars e offset descrevem o trecho da descrição retornado.

get_reviews

Lê as resenhas de uma entrada.

ArgumentoTipoObrigatórioO que faz
slugstring, pelo menos 1 caracteresimO identificador que uma linha carrega.
kindmovie, show ou gamesimA qual catálogo pertence.
sourcecritic ou user, padrão criticnãoDe quem ler as resenhas.
sentimentall, positive, neutral ou negative, padrão allnãoQuão favorável uma resenha precisa ser.
limitinteiro, 1 a 50, padrão 10nãoResenhas a retornar.
offsetinteiro, 0 ou mais, padrão 0nãoResenhas a pular, para paginação.

Em retorno: reviews, cada uma com seu quote como publicado, seu score, o max sobre o qual essa nota é calculada, que é 100 para um crítico e 10 para um usuário, e a publication que a veiculou. Nomeie a publicação ao citar uma resenha. total_available conta as resenhas que correspondem à fonte e ao sentimento solicitados, e next_offset continua.

browse_titles

Lista um catálogo.

ArgumentoTipoObrigatórioO que faz
kindmovie, show ou game, padrão movienãoQual catálogo listar.
sortscore, recent ou popular, padrão scorenãoComo as linhas são ordenadas.
genrestringnãoUm único nome de gênero, como Horror.
limitinteiro, 1 a 50, padrão 20nãoLinhas a retornar.
offsetinteiro, 0 ou mais, padrão 0nãoLinhas a pular, para paginação.

Em retorno: as linhas que search_titles retorna, com total_available, offset, next_offset e o kind, sort e genre sob os quais a listagem foi lida.

Duas notas, duas coisas medidas

O Metascore é uma média ponderada das resenhas profissionais, de 0 a 100. A nota do usuário é a média do que os membros registrados deram, de 0 a 10. Elas medem populações diferentes em escalas diferentes, e um título pode ter uma e não a outra. Leia cada uma com o max que suas resenhas informam, e relate uma nota ausente como ausente.

Configuração

Toda variável é opcional. Defina-as no bloco env da configuração do seu cliente.

VariávelPadrãoO que faz
MC_USER_AGENTa identidade do projetoNomeia seu aplicativo para o site, com um endereço onde uma pessoa pode ser contatada.
MC_MIN_INTERVAL_MS1000Intervalo entre duas requisições, de 500 a 60000.
MC_TIMEOUT_MS15000Prazo para uma requisição, de 1000 a 120000.
MC_MAX_RETRIES3Tentativas após uma falha transitória, de 0 a 10.
MC_CACHE_TTL_MS86400000Por quanto tempo uma entrada de catálogo fica na memória, de 0 a 604800000.
MC_SCORES_CACHE_TTL_MS3600000Por quanto tempo notas e resenhas ficam na memória, de 0 a 86400000.
MC_CACHE_MAX_ENTRIES200Respostas mantidas na memória de uma vez, de 0 a 10000.
MC_LOG_LEVELerrorsilent, error, info ou debug, escritos em stderr.

As notas mudam conforme as resenhas chegam, especialmente perto de um lançamento, então são mantidas por uma hora, enquanto uma entrada de catálogo é mantida por um dia. Um valor fora do intervalo cai para o padrão, e o motivo é escrito em stderr.

Erros

Toda falha carrega um de seis códigos, uma mensagem e, quando ajuda, uma dica indicando o próximo passo.

CódigoO que aconteceuO que fazer
not_foundO site respondeu e não possui tal entrada.Verifique o slug e o tipo com search_titles.
invalid_inputOs argumentos foram recusados antes de qualquer requisição ser enviada.Leia a mensagem, que nomeia o argumento.
rate_limitedO site 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_failureA resposta chegou em um formato que este cliente não consegue ler.Reporte em o rastreador de problemas.
network_errorA requisição não foi concluída.Tente novamente em breve.
timeoutA requisição passou do prazo.Aumente MC_TIMEOUT_MS, ou peça menos linhas.

Como biblioteca

A camada que lê o site é publicada separadamente, com seu ritmo, seu cache e seus erros, e sem protocolo anexado.

import { McClient } from "mcp-metacritic/client";

const client = new McClient();
const { data, cached } = await client.getTitle({ slug: "the-matrix", kind: "movie" });
console.log(data.title, data.metascore, cached);

Cada leitura responde com { data, cached }, e lança um erro carregando um dos seis códigos. O intervalo mínimo entre duas requisições também se aplica aqui.

Ritmo e atribuição

As requisições saem uma de cada vez com pelo menos um segundo entre elas, e o intervalo de meio 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 carrega o endereço da página do Metacritic, e cada crítica citada carrega a publicação que a veiculou. As críticas pertencem aos seus autores e às publicações que as veicularam.

Este servidor MCP é um projeto não oficial, sem afiliação com o Metacritic.

Privacidade

Este servidor não coleta nada sobre você e não envia nada ao seu autor. Ele roda na sua máquina, contata backend.metacritic.com e nada mais, mantém suas respostas em 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 qualquer parte disso.

Desenvolvimento

npm install
npm run build:fixtures
npm test
npm run check

Os testes rodam contra fixtures geradas e não fazem nenhuma requisição de rede. A suíte ao vivo, npm run test:live, faz uma requisição por rota e roda diariamente contra o próprio site.

Contribuindo

Bugs, perguntas e ideias pertencem ao rastreador de problemas. Pull requests são bem-vindos; abrir um problema primeiro ajuda a concordar sobre a forma da mudança. Veja CONTRIBUTING.md.

Licença

MIT, veja LICENSE. As pontuações e as críticas pertencem ao Metacritic e às publicações que ele cita.


mcp-metacritic (francês)

Versão em inglês

Metacritic reúne o que a crítica e o público disseram sobre filmes, séries e jogos de vídeo. Cada ficha traz o ano, a classificação etária, os gêneros e duas notas que lhe são próprias: o Metascore, média ponderada das críticas profissionais, e a nota dos usuários, de zero a dez, dada pelos inscritos. Abaixo de cada ficha estão as próprias críticas, com a publicação que as assinou e a frase citada.

Este servidor conecta um cliente de conversa a esse catálogo. Pode-se buscar um título, ler sua ficha com suas notas e detalhes, percorrer um catálogo por nota, por novidade ou por popularidade, e ler as críticas de um título, filtradas por fonte e por tom. Nenhuma chave de API, nenhuma conta.

Instalação

Instalação em um clique

Install in Cursor Install in VS Code

Claude Code

claude mcp add metacritic -- npx -y mcp-metacritic

Claude Desktop, Cursor e qualquer cliente no formato de configuração padrão

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

Node 24 ou mais recente é necessário, e nenhuma variável de ambiente precisa ser preenchida.

Com Docker

{
  "mcpServers": {
    "metacritic": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-metacritic:2.0.1"]
    }
  }
}

-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 backend.metacritic.com, e de nada mais: nenhum volume, nenhuma porta, nenhum identificador.

Bundle, sem npm

Baixe mcp-metacritic-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, portanto nada é baixado na instalação.

O que se pode pedir

  • « O que a crítica achou de Matrix? »
  • « Leia algumas críticas negativas deste jogo. »
  • « Quais são os filmes de terror mais bem avaliados? »
  • « Como a nota do público se compara ao Metascore? »
  • « O que saiu recentemente que foi bem recebido? »

O caminho comum vai de uma busca a uma ficha: uma linha carrega um slug e um kind, e get_title como get_reviews retomam os dois juntos.

As ferramentas

FerramentaO que faz
search_titlesEncontra filmes, séries e jogos pelo título.
get_titleLê uma ficha, suas notas e detalhes.
get_reviewsLê as críticas de uma ficha, por fonte e por tom.
browse_titlesLista um catálogo por nota, por novidade ou por popularidade.

Um título é endereçado pelo seu slug acompanhado do seu kind, um mesmo slug podendo nomear um filme e um jogo.

search_titles

Encontra filmes, séries e jogos pelo título.

ArgumentoTipoObrigatórioO que faz
querystring, pelo menos 1 caracteresimUm título, ou uma parte.
kindmovie, show, game ou any, padrão anynãoO catálogo onde buscar.
limitinteiro, 1 a 50, padrão 10nãoLinhas a servir.

Em retorno: linhas carregando slug e kind, que get_title e get_reviews retomam juntos; title; year; release_date; rating, a classificação etária tal como publicada; metascore; user_score; e source_url. Uma nota que o site não calculou vale null, nunca 0: numa escala que começa em zero, os dois seriam indistinguíveis, e um título com poucas críticas não carrega nenhuma.

get_title

Lê uma ficha. As partes pesadas são pedidas em vez de serem servidas por padrão, e cada uma além do padrão custa uma requisição.

ArgumentoTipoObrigatórioO que faz
slugstring, pelo menos 1 caracteresimO identificador de uma linha.
kindmovie, show ou gamesimO catálogo ao qual pertence.
sectionsarray de basic, scores, awards, production, networks, where_to_watch, padrão ["basic", "scores"]nãoAs partes a render.
max_charsinteiro, 200 a 20000, padrão 4000nãoO comprimento da descrição a servir.
offsetinteiro, 0 ou mais, padrão 0nãoOnde retomar a descrição.

Em retorno: a ficha que uma linha de busca carrega, mais description, tagline, genres, duration_minutes e imdb_id, cada um null onde a página não indica nada. total_chars, returned_chars e offset descrevem a faixa de descrição servida.

get_reviews

Lê as críticas de uma ficha.

ArgumentoTipoObrigatórioO que faz
slugstring, pelo menos 1 caracteresimO identificador de uma linha.
kindmovie, show ou gamesimO catálogo ao qual pertence.
sourcecritic ou user, padrão criticnãoDe quem ler as críticas.
sentimentall, positive, neutral ou negative, padrão allnãoO tom exigido de uma crítica.
limitinteiro, 1 a 50, padrão 10nãoCríticas a servir.
offsetinteiro, 0 ou mais, padrão 0nãoCríticas a pular, para paginar.

Em retorno: reviews, cada uma com sua quote tal como publicada, seu score, o max sobre o qual essa nota é dada, que vale 100 para um crítico e 10 para um usuário, e a publication que a assinou. Nomeie a publicação ao citar uma crítica. total_available conta as críticas correspondentes à fonte e ao tom pedidos, e next_offset continua.

browse_titles

Lista um catálogo.

ArgumentoTipoObrigatórioO que faz
kindmovie, show ou game, padrão movienãoO catálogo a listar.
sortscore, recent ou popular, padrão scorenãoA ordem das linhas.
genrestringnãoUm único nome de gênero, como Horror.
limitinteiro, 1 a 50, padrão 20nãoLinhas a servir.
offsetinteiro, 0 ou mais, padrão 0nãoLinhas a pular, para paginar.
Em retorno: as linhas que search_titles retorna, com total_available,
offset, next_offset e os kind, sort e genre sob os quais a lista foi
lida.

Duas notas, duas coisas medidas

O Metascore é uma média ponderada das críticas profissionais, de 0 a 100. A nota dos usuários é a média do que deram os membros registrados, de 0 a 10. Elas medem populações diferentes em escalas diferentes, e um título pode ter uma sem a outra. Leia cada uma com o max que suas críticas indicam, e reporte uma nota ausente como ausente.

Configuração

Cada variável é opcional. Elas ficam no bloco env da configuração do cliente.

VariávelPadrãoO que ela faz
MC_USER_AGENTa identidade do projetoNomeia seu aplicativo junto ao site, com um endereço para contatar uma pessoa.
MC_MIN_INTERVAL_MS1000Intervalo entre duas requisições, de 500 a 60000.
MC_TIMEOUT_MS15000Tempo limite de uma requisição, de 1000 a 120000.
MC_MAX_RETRIES3Tentativas após uma falha temporária, de 0 a 10.
MC_CACHE_TTL_MS86400000Duração durante a qual uma ficha permanece em memória, de 0 a 604800000.
MC_SCORES_CACHE_TTL_MS3600000Duração durante a qual as notas e críticas permanecem em memória, de 0 a 86400000.
MC_CACHE_MAX_ENTRIES200Respostas mantidas em memória por vez, de 0 a 10000.
MC_LOG_LEVELerrorsilent, error, info ou debug, escrito na saída de erro.

As notas mudam conforme as críticas, especialmente em torno de um lançamento, então elas são mantidas por uma hora, enquanto uma ficha é mantida por um dia. Um valor fora de sua faixa cai no padrão, e o motivo é escrito na saída de erro.

Erros

Cada falha tem um dos seis códigos, uma mensagem e, quando ajuda, uma indicação do próximo passo.

CódigoO que aconteceuO que fazer
not_foundO site respondeu e não tem essa ficha.Verifique o slug e o tipo com search_titles.
invalid_inputOs argumentos foram recusados antes de qualquer requisição.Leia a mensagem, que nomeia o argumento.
rate_limitedO site pede que este cliente desacelere.Aguarde os segundos indicados e chame novamente com os mesmos argumentos. A ficha ainda está lá.
parse_failureA resposta chegou em um formato ilegível aqui.Reporte em o rastreador de incidentes.
network_errorA requisição não foi concluída.Tente novamente em breve.
timeoutA requisição excedeu seu tempo limite.Aumente MC_TIMEOUT_MS, ou peça menos linhas.

Como biblioteca

A camada que lê o site é publicada separadamente, com seu ritmo, seu cache e seus erros, sem protocolo anexado.

import { McClient } from "mcp-metacritic/client";

const client = new McClient();
const { data, cached } = await client.getTitle({ slug: "the-matrix", kind: "movie" });
console.log(data.title, data.metascore, cached);

Cada leitura responde { data, cached }, e levanta um erro com um dos seis códigos. O piso entre duas requisições também se aplica aqui.

Ritmo e atribuição

As requisições saem uma a uma com pelo menos um segundo entre elas, e o piso de meio segundo se aplica independentemente da configuração. O User-Agent sempre termina com a identidade do projeto e um endereço para contatar uma pessoa.

Cada resultado traz o endereço da página do Metacritic, e cada crítica citada traz a publicação que a assinou. As críticas pertencem aos seus autores e às publicações que as publicaram.

Este MCP é um projeto não oficial, sem afiliação com a Metacritic.

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 backend.metacritic.com, mantém suas respostas em memória enquanto roda, e não grava nada no disco. PRIVACY.md diz o que uma requisição leva e quais ajustes mudam isso.

Desenvolvimento

npm install
npm run build:fixtures
npm test
npm run check

Os testes rodam 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 site.

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. As notas e as críticas pertencem à Metacritic e às publicações que ela cita.