Metacritic
Busca películas, series y juegos en Metacritic, lee puntuaciones y reseñas de críticos. Sin clave de API.
Documentación
mcp-metacritic
Metacritic reúne lo que críticos y audiencias dijeron sobre películas, series de televisión y videojuegos. Cada entrada lleva el año, la clasificación por edades, los géneros y dos puntuaciones propias: el Metascore, un promedio ponderado de las reseñas profesionales, y la puntuación de usuarios, sobre diez, de las personas que se registraron para calificarlo. Debajo de cada entrada están las reseñas mismas, con la publicación que las emitió y la línea citada.
Este servidor conecta un cliente de chat con ese catálogo. Puedes buscar un título, leer su entrada con sus puntuaciones y sus detalles, explorar un catálogo por puntuación, actualidad o popularidad, y leer las reseñas de un título, filtradas por crítico o audiencia y por cuán favorables fueron. No necesita clave de API ni cuenta.
Instalación
Instalación en un clic
Claude Code
claude mcp add metacritic -- npx -y mcp-metacritic
Claude Desktop, Cursor y cualquier cliente que use el formato de configuración estándar
{
"mcpServers": {
"metacritic": {
"command": "npx",
"args": ["-y", "mcp-metacritic"]
}
}
}
Se requiere Node 24 o posterior, y no es necesario establecer ninguna variable de entorno.
Con Docker
{
"mcpServers": {
"metacritic": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-metacritic:2.0.1"]
}
}
}
-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
backend.metacritic.com, y nada más: sin volumen, sin puerto, sin credencial.
Paquete, sin npm
Descarga mcp-metacritic-2.0.1.mcpb desde
la última versión
y ábrelo. Un cliente que admita paquetes MCP lo instala por sí solo, 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é opinaron los críticos de The Matrix?"
- "Léeme algunas reseñas negativas de ese juego."
- "¿Cuáles son las mejores películas de terror reseñadas?"
- "¿Cómo se compara la puntuación de usuarios con el Metascore?"
- "¿Qué salió recientemente que haya tenido buenas reseñas?"
El camino habitual va de una búsqueda a una entrada: una fila lleva un slug y un
kind, y get_title y get_reviews toman ambos juntos.
Herramientas
| Herramienta | Qué hace |
|---|---|
search_titles | Encuentra películas, series y juegos por título. |
get_title | Lee una entrada, sus puntuaciones y sus detalles. |
get_reviews | Lee las reseñas de una entrada, por fuente y por sentimiento. |
browse_titles | Lista un catálogo por puntuación, actualidad o popularidad. |
Un título se identifica por su slug junto con su kind, ya que el mismo slug
puede nombrar una película y un juego.
search_titles
Encuentra películas, series y juegos por título.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
query | cadena, al menos 1 carácter | sí | Un título, o parte de uno. |
kind | movie, show, game o any, por defecto any | no | Qué catálogo buscar. |
limit | entero, 1 a 50, por defecto 10 | no | Filas a servir. |
A cambio: filas que llevan slug y kind, que get_title y
get_reviews toman juntos; title; year; release_date; rating, la clasificación
por edades tal como se publica; metascore; user_score; y source_url. Una puntuación que el
sitio no ha calculado es null, nunca 0: en una escala que comienza en cero, los
dos serían indistinguibles, y un título con muy pocas reseñas no lleva ninguna.
get_title
Lee una entrada. Las partes más pesadas se piden en lugar de servirse por defecto, y cada una más allá del valor predeterminado cuesta una solicitud.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
slug | cadena, al menos 1 carácter | sí | El identificador que lleva una fila. |
kind | movie, show o game | sí | A qué catálogo pertenece. |
sections | matriz de basic, scores, awards, production, networks, where_to_watch, por defecto ["basic", "scores"] | no | Qué partes devolver. |
max_chars | entero, 200 a 20000, por defecto 4000 | no | Cuánto de la descripción servir. |
offset | entero, 0 o más, por defecto 0 | no | Dónde reanudar la descripción. |
A cambio: la entrada que lleva una fila de búsqueda, más description, tagline,
genres, duration_minutes y imdb_id, cada uno null donde la página no indica
nada. total_chars, returned_chars y offset describen la porción de la
descripción servida.
get_reviews
Lee las reseñas de una entrada.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
slug | cadena, al menos 1 carácter | sí | El identificador que lleva una fila. |
kind | movie, show o game | sí | A qué catálogo pertenece. |
source | critic o user, por defecto critic | no | De quién leer las reseñas. |
sentiment | all, positive, neutral o negative, por defecto all | no | Cuán favorable debe ser una reseña. |
limit | entero, 1 a 50, por defecto 10 | no | Reseñas a servir. |
offset | entero, 0 o más, por defecto 0 | no | Reseñas a omitir, para paginar. |
A cambio: reviews, cada una con su quote tal como se publica, su score, el
max sobre el cual se mide esa puntuación, que es 100 para un crítico y 10 para un usuario, y la
publication que la emitió. Nombra la publicación al citar una reseña.
total_available cuenta las reseñas que coinciden con la fuente y el sentimiento solicitados,
y next_offset continúa.
browse_titles
Lista un catálogo.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
kind | movie, show o game, por defecto movie | no | Qué catálogo listar. |
sort | score, recent o popular, por defecto score | no | Cómo se ordenan las filas. |
genre | cadena | no | Un solo nombre de género, como Horror. |
limit | entero, 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: las filas que search_titles devuelve, con total_available,
offset, next_offset y el kind, sort y genre bajo los cuales se leyó el listado.
Dos puntuaciones, dos cosas medidas
El Metascore es un promedio ponderado de reseñas profesionales, sobre 100. La puntuación
de usuarios es el promedio de lo que dieron los miembros registrados, sobre 10. Miden
poblaciones diferentes en escalas diferentes, y un título puede llevar una y no la
otra. Lee cada una con el max que indican sus reseñas, y reporta una puntuación faltante como
faltante.
Configuración
Cada variable es opcional. Establécelas en el bloque env de la configuración de tu cliente.
| Variable | Predeterminado | Qué hace |
|---|---|---|
MC_USER_AGENT | la identidad del proyecto | Nombra tu aplicación ante el sitio, con una dirección donde se pueda contactar a una persona. |
MC_MIN_INTERVAL_MS | 1000 | Intervalo entre dos solicitudes, de 500 a 60000. |
MC_TIMEOUT_MS | 15000 | Plazo para una solicitud, de 1000 a 120000. |
MC_MAX_RETRIES | 3 | Intentos después de una falla transitoria, de 0 a 10. |
MC_CACHE_TTL_MS | 86400000 | Cuánto tiempo permanece una entrada de catálogo en memoria, de 0 a 604800000. |
MC_SCORES_CACHE_TTL_MS | 3600000 | Cuánto tiempo permanecen puntuaciones y reseñas en memoria, de 0 a 86400000. |
MC_CACHE_MAX_ENTRIES | 200 | Respuestas retenidas en memoria a la vez, de 0 a 10000. |
MC_LOG_LEVEL | error | silent, error, info o debug, escritos en stderr. |
Las puntuaciones se mueven a medida que llegan reseñas, especialmente alrededor de un lanzamiento, así que se retienen durante una hora mientras que una entrada de catálogo se retiene durante un día. Un valor fuera de su rango vuelve al predeterminado, y la razón se escribe en stderr.
Errores
Cada falla lleva uno de seis códigos, un mensaje y, donde ayuda, una pista que nombra el siguiente paso.
| Código | Qué ocurrió | Qué hacer |
|---|---|---|
not_found | El sitio respondió y no tiene esa entrada. | Comprueba el slug 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 sitio 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 MC_TIMEOUT_MS, o pide menos filas. |
Como biblioteca
La capa que lee el sitio se publica por separado, con su ritmo, su caché y sus errores, y sin ningún protocolo adjunto.
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 lectura responde con { data, cached }, y lanza un error que lleva uno de los seis
códigos. El intervalo mínimo entre dos solicitudes también se aplica aquí.
Ritmo y atribución
Las solicitudes salen de una en una con al menos un segundo entre ellas, y el
intervalo de medio 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 Metacritic, y cada reseña citada lleva la publicación que la emitió. Las reseñas pertenecen a sus autores y a las publicaciones que las emitieron.
Este servidor MCP es un proyecto no oficial, sin afiliación con Metacritic.
Privacidad
Este servidor no recopila nada sobre ti y no envía nada a su autor. Se ejecuta
en tu máquina, contacta a backend.metacritic.com y nada más, mantiene sus
respuestas en memoria mientras se ejecuta y no escribe nada en el disco.
PRIVACY.md establece qué lleva una solicitud y qué ajustes cambian
cualquier parte de ello.
Desarrollo
npm install
npm run build:fixtures
npm test
npm run check
Las pruebas se ejecutan contra fixtures 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
sitio mismo.
Contribuciones
Los errores, preguntas e ideas pertenecen a 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, consulta LICENSE. Las puntuaciones y las reseñas pertenecen a Metacritic y a las publicaciones que cita.
mcp-metacritic (francés)
Metacritic reúne lo que la crítica y el público han dicho sobre películas, series y videojuegos. Cada ficha lleva el año, la clasificación por edad, los géneros y dos puntuaciones que le son propias: el Metascore, promedio ponderado de las críticas profesionales, y la puntuación de los usuarios, sobre diez, dada por los registrados. Debajo de cada ficha se encuentran las críticas mismas, con la publicación que las firmó y la frase citada.
Este servidor conecta un cliente de conversación con este catálogo. Se puede buscar un título, leer su ficha con sus puntuaciones y sus detalles, recorrer un catálogo por puntuación, por novedad o por popularidad, y leer las críticas de un título, filtradas por fuente y por tono. Sin clave de API, sin cuenta.
Instalación
Instalación en un clic
Claude Code
claude mcp add metacritic -- npx -y mcp-metacritic
Claude Desktop, Cursor y cualquier cliente con formato de configuración estándar
{
"mcpServers": {
"metacritic": {
"command": "npx",
"args": ["-y", "mcp-metacritic"]
}
}
}
Se requiere Node 24 o más reciente, y no hay ninguna variable de entorno que rellenar.
Con Docker
{
"mcpServers": {
"metacritic": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-metacritic:2.0.1"]
}
}
}
-i mantiene la entrada estándar abierta, que es el canal del protocolo, y -t se
omite porque un TTY reescribe el flujo. El contenedor necesita acceso HTTPS
saliente hacia backend.metacritic.com, y nada más: sin volúmenes, sin
puertos, sin identificadores.
Bundle, sin npm
Descarga mcp-metacritic-2.0.1.mcpb desde
la última publicación
y ábrelo. Un cliente que gestiona bundles MCP lo instala solo, sin npm y
sin archivo de configuración que modificar. El bundle lleva sus dependencias, por lo tanto
no se descarga nada en la instalación.
Lo que se puede pedir
- «¿Qué pensó la crítica de Matrix?»
- «Léeme algunas críticas negativas de este juego.»
- «¿Cuáles son las películas de terror mejor puntuadas?»
- «¿Cómo se compara la puntuación del público con el Metascore?»
- «¿Qué ha salido recientemente que haya sido bien recibido?»
El camino habitual va de una búsqueda a una ficha: una línea lleva un slug y
un kind, y get_title como get_reviews retoman ambos juntos.
Las herramientas
| Herramienta | Qué hace |
|---|---|
search_titles | Encuentra películas, series y juegos por su título. |
get_title | Lee una ficha, sus puntuaciones y sus detalles. |
get_reviews | Lee las críticas de una ficha, por fuente y por tono. |
browse_titles | Lista un catálogo por puntuación, por novedad o por popularidad. |
Un título se aborda por su slug acompañado de su kind, un mismo slug pudiendo
nombrar una película y un juego.
search_titles
Encuentra películas, series y juegos por su título.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
query | cadena, al menos 1 carácter | sí | Un título, o una parte. |
kind | movie, show, game o any, por defecto any | no | El catálogo donde buscar. |
limit | entero, 1 a 50, por defecto 10 | no | Filas a servir. |
En retorno: líneas que llevan slug y kind, que get_title y
get_reviews retoman juntas; title; year; release_date; rating,
la clasificación por edad tal como se publica; metascore; user_score; y
source_url. Una puntuación que el sitio no ha calculado vale null, nunca 0:
en una escala que comienza en cero ambos serían indistinguibles, y un título
con demasiadas pocas críticas no lleva ninguna.
get_title
Lee una ficha. Las partes pesadas se piden en lugar de servirse por defecto, y cada una más allá del defecto cuesta una solicitud.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
slug | cadena, al menos 1 carácter | sí | El identificador de una línea. |
kind | movie, show o game | sí | El catálogo del que forma parte. |
sections | matriz de basic, scores, awards, production, networks, where_to_watch, por defecto ["basic", "scores"] | no | Las partes a devolver. |
max_chars | entero, 200 a 20000, por defecto 4000 | no | La longitud de descripción a servir. |
offset | entero, 0 o más, por defecto 0 | no | Dónde retomar la descripción. |
En retorno: la ficha que lleva una línea de búsqueda, más description,
tagline, genres, duration_minutes y imdb_id, cada uno null donde la página
no indica nada. total_chars, returned_chars y offset describen el tramo
de descripción servido.
get_reviews
Lee las críticas de una ficha.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
slug | cadena, al menos 1 carácter | sí | El identificador de una línea. |
kind | movie, show o game | sí | El catálogo del que forma parte. |
source | critic o user, por defecto critic | no | De quién leer las críticas. |
sentiment | all, positive, neutral o negative, por defecto all | no | El tono exigido de una crítica. |
limit | entero, 1 a 50, por defecto 10 | no | Críticas a servir. |
offset | entero, 0 o más, por defecto 0 | no | Críticas a saltar, para paginar. |
En retorno: reviews, cada una con su quote tal como se publica, su
score, el max sobre el cual se da esa puntuación, que vale 100 para un crítico
y 10 para un usuario, y la publication que la firmó. Nombra la
publicación cuando cites una crítica. total_available cuenta las
críticas que corresponden a la fuente y al tono solicitados, y next_offset
continúa.
browse_titles
Lista un catálogo.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
kind | movie, show o game, por defecto movie | no | El catálogo a listar. |
sort | score, recent o popular, por defecto score | no | El orden de las filas. |
genre | cadena | no | Un solo nombre de género, como Horror. |
limit | entero, 1 a 50, por defecto 20 | no | Filas a servir. |
offset | entero, 0 o más, por defecto 0 | no | Filas a saltar, para paginar. |
En retorno: las líneas que devuelve search_titles, con total_available, | |||
offset, next_offset y los kind, sort y genre bajo los cuales la lista ha | |||
| sido leída. |
Dos notas, dos cosas medidas
El Metascore es un promedio ponderado de las críticas profesionales, sobre 100. La
nota de los usuarios es el promedio de lo que han dado los miembros registrados, sobre 10. Miden poblaciones diferentes en escalas diferentes, y
un título puede llevar una sin la otra. Lea cada una con el max que sus
críticas indican, y reporte una nota ausente como ausente.
Configuración
Cada variable es opcional. Se colocan en el bloque env de la
configuración del cliente.
| Variable | Defecto | Lo que hace |
|---|---|---|
MC_USER_AGENT | la identidad del proyecto | Nombra su aplicación ante el sitio, con una dirección donde contactar a una persona. |
MC_MIN_INTERVAL_MS | 1000 | Intervalo entre dos solicitudes, de 500 a 60000. |
MC_TIMEOUT_MS | 15000 | Tiempo de espera de una solicitud, de 1000 a 120000. |
MC_MAX_RETRIES | 3 | Intentos después de un fallo pasajero, de 0 a 10. |
MC_CACHE_TTL_MS | 86400000 | Duración durante la cual una ficha permanece en memoria, de 0 a 604800000. |
MC_SCORES_CACHE_TTL_MS | 3600000 | Duración durante la cual las notas y críticas permanecen en memoria, de 0 a 86400000. |
MC_CACHE_MAX_ENTRIES | 200 | Respuestas guardadas en memoria a la vez, de 0 a 10000. |
MC_LOG_LEVEL | error | silent, error, info o debug, escrito en la salida de error. |
Las notas se mueven con las críticas, especialmente alrededor de un lanzamiento, por lo que se guardan una hora donde una ficha se guarda un día. Un valor fuera de su rango cae en el defecto, 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 ha pasado | Qué hacer |
|---|---|---|
not_found | El sitio ha respondido, y no tiene esta ficha. | Verifique el slug y el tipo con search_titles. |
invalid_input | Los argumentos han sido rechazados antes de cualquier solicitud. | Lea el mensaje, que nombra el argumento. |
rate_limited | El sitio pide a este cliente que reduzca la velocidad. | Espere los segundos indicados y vuelva a llamar con los mismos argumentos. La ficha sigue ahí. |
parse_failure | La respuesta ha llegado en una forma ilegible aquí. | Repórtelo en el seguimiento de incidentes. |
network_error | La solicitud no ha llegado a buen término. | Reintente en breve. |
timeout | La solicitud ha superado su tiempo de espera. | Aumente MC_TIMEOUT_MS, o pida menos líneas. |
Como biblioteca
La capa que lee el sitio se publica sola, con su ritmo, su caché y sus errores, sin protocolo adjunto.
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 lectura responde { data, cached }, y lanza un error que lleva 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 un segundo entre ellas, y el
mínimo de medio segundo se aplica sea cual sea la configuración. El
User-Agent siempre termina con la identidad del proyecto y una dirección donde
contactar a una persona.
Cada resultado lleva la dirección de la página de Metacritic, y cada crítica citada lleva la publicación que la ha firmado. Las críticas pertenecen a sus autores y a las publicaciones que las han publicado.
Este MCP es un proyecto no oficial, sin afiliación con Metacritic.
Privacidad
Este servidor no recopila nada sobre usted y no envía nada a su autor. Se ejecuta en
su máquina, solo se une a backend.metacritic.com, guarda sus respuestas en
memoria mientras se ejecuta, y no escribe nada en el disco.
PRIVACY.md dice lo que una solicitud lleva 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 sitio mismo.
Contribuir
Las anomalías, las preguntas y las ideas tienen su lugar en el seguimiento de incidentes. Las propuestas de modificación son bienvenidas; abrir un ticket primero ayuda a ponerse de acuerdo sobre la forma del cambio. Ver CONTRIBUTING.md.
Licencia
MIT, ver LICENSE. Las notas y las críticas pertenecen a Metacritic y a las publicaciones que cita.