mcp-metacritic について
mcp-metacriticは、映画・シリーズ・ゲームのMetacriticカタログをチャットクライアントから利用できるようにします。タイトル検索やカタログ閲覧に加え、提供元や評価傾向でレビューを絞り込めます。APIキーやアカウントは不要です。
主な機能
- 01映画・シリーズ・ゲームの検索
- 02作品情報とスコアの取得
- 03提供元と評価傾向によるレビュー絞り込み
- 04スコア・新しさ・人気順の閲覧
活用シーン
- 01批評家スコアとユーザースコアの比較
- 02最近評価された作品の検索
- 03作品の肯定的・否定的なレビューの閲覧
MCP 対応
MCP サーバーとして、検索、作品情報の取得、レビューの絞り込み、カタログ閲覧のツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
4掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| kind | enum | いいえ | 結果を 1 つのカタログに限定します。Metacritic は 3 つすべてを同時に検索します。movie | show | game | any |
| limit | integer | いいえ | 返す行数。 |
| query | string | はい | タイトルまたはその一部。例:'the matrix'。 |
詳細
mcp-metacritic
Metacritic は、映画、テレビシリーズ、ビデオゲームについて批評家や観客が述べた意見を集めています。各作品の項目には、公開年、年齢区分、ジャンルに加えて、2種類のスコアが掲載されています。プロのレビューを加重平均したメタスコアと、評価に登録したユーザーによる10点満点のユーザースコアです。各項目の下には、レビュー本文と掲載メディア名、引用文が並びます。
このサーバーは、チャットクライアントをこのカタログに接続します。タイトルを検索し、スコアや詳細を含む作品情報を読んだり、スコア、新しさ、人気度を基準にカタログを閲覧したり、批評家または観客によるレビューを好評度で絞り込んで読んだりできます。API キーもアカウントも必要ありません。
インストール
ワンクリックでインストール
Claude Code
claude mcp add metacritic -- npx -y mcp-metacritic
Claude Desktop、Cursor、および標準設定形式を使用するクライアント
{
"mcpServers": {
"metacritic": {
"command": "npx",
"args": ["-y", "mcp-metacritic"]
}
}
}
Node 24 以降が必要です。環境変数の設定は不要です。
Docker を使用する場合
{
"mcpServers": {
"metacritic": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-metacritic:2.0.1"]
}
}
}
-i はプロトコルが通る標準入力を開いたままにするために指定し、ストリームを書き換えてしまう TTY を避けるため、-t は指定しません。コンテナに必要なのは backend.metacritic.com への HTTPS アウトバウンド通信だけです。ボリューム、ポート、認証情報は必要ありません。
npm を使わずにバンドルを使用する
最新リリースから mcp-metacritic-2.0.1.mcpb をダウンロードして開きます。MCP バンドルに対応するクライアントなら、npm も設定ファイルの編集も不要で、自動的にインストールされます。バンドルには依存関係が含まれているため、インストール時に何かを取得することはありません。
質問できること
- 「『マトリックス』は批評家からどんな評価を受けましたか?」
- 「そのゲームの否定的なレビューをいくつか読んでください。」
- 「最も高く評価されているホラー映画は何ですか?」
- 「ユーザースコアとメタスコアはどう違いますか?」
- 「最近公開されて、高評価を受けた作品は何ですか?」
通常は検索から作品情報へと進みます。検索結果の各行には slug と kind が含まれており、get_title と get_reviews の両方にこの2つを指定します。
ツール
| ツール | 機能 |
|---|---|
search_titles | タイトルから映画、シリーズ、ゲームを検索します。 |
get_title | 1 件の項目と、そのスコアおよび詳細を読み取ります。 |
get_reviews | 1 件の項目のレビューを、提供元および感情別に読み取ります。 |
browse_titles | スコア、新しさ、人気順でカタログを一覧表示します。 |
同じスラッグが映画とゲームの両方を指すことがあるため、タイトルは slug と
kind の組み合わせで指定します。
search_titles
タイトルから映画、シリーズ、ゲームを検索します。
| 引数 | 型 | 必須 | 機能 |
|---|---|---|---|
query | 1 文字以上の文字列 | はい | タイトルまたはその一部です。 |
kind | movie、show、game、any。既定値は any | いいえ | 検索するカタログです。 |
limit | 1〜50 の整数。既定値は 10 | いいえ | 返す行数です。 |
返り値: slug と kind を含む行。これらは get_title と
get_reviews に組み合わせて渡します。また、title、year、release_date、
公開されている年齢レーティングの rating、metascore、検索ルートでは
どの行にも公開されず、すべての行で null となる user_score、および
source_url が含まれます。サイトが算出していないスコアは 0 ではなく
null です。 0 から始まる尺度では両者を区別できず、レビューが少なすぎる
タイトルにはスコアが付かないためです。
get_title
1 件の項目を読み取ります。より負荷の高い情報は既定では返されず、追加で 取得するたびにリクエストが 1 回必要です。
| 引数 | 型 | 必須 | 機能 |
|---|---|---|---|
slug | 1 文字以上の文字列 | はい | 行に含まれる識別子です。 |
kind | movie、show、game | はい | 該当するカタログです。 |
sections | basic、scores、awards、production、networks、where_to_watch の配列。既定値は ["basic", "scores"] | いいえ | 返す情報です。 |
max_chars | 200〜20000 の整数。既定値は 4000 | いいえ | 返す説明文の文字数です。 |
offset | 0 以上の整数。既定値は 0 | いいえ | 説明文の取得を再開する位置です。 |
返り値: 検索結果の行に含まれる項目に加えて、description、tagline、
genres、duration_minutes、imdb_id が含まれます。ページに記載がない項目は
それぞれ null です。total_chars、returned_chars、offset は、返された
説明文の範囲を示します。
get_reviews
1 件のエントリーのレビューを読み取ります。
| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
slug | 1 文字以上の文字列 | はい | 行が持つ識別子です。 |
kind | movie、show、または game | はい | 所属するカタログです。 |
source | critic、または user、デフォルトは critic | いいえ | 誰のレビューを読み取るかです。 |
sentiment | all、positive、neutral、または negative、デフォルトは all | いいえ | レビューに求める好意度です。 |
limit | 整数、1~50、デフォルトは 10 | いいえ | 返すレビュー数です。 |
offset | 整数、0 以上、デフォルトは 0 | いいえ | ページングのためにスキップするレビュー数です。 |
返される内容: reviews。各レビューには、公開されたとおりの quote、その score、スコアの満点を示す max(批評家の場合は 100、ユーザーの場合は 10)、および掲載した publication が含まれます。レビューを引用する際は、掲載した媒体名を明記してください。
total_available は、指定した sentiment に関係なく、そのエントリーについて Metacritic がそのソースから保持しているすべてのレビュー数です。sentiment は、このサーバーが受け取ったサンプルを並べ替えるものであり、サンプルを取得したリクエストには適用されないためです。next_offset は次のページに続きます。
browse_titles
カタログを一覧表示します。
| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
kind | movie、show、または game、デフォルトは movie | いいえ | 一覧表示するカタログです。 |
sort | score、recent、または popular、デフォルトは score | いいえ | 行の並び順です。 |
genre | 文字列 | いいえ | Horror など、ジャンル名を 1 つ指定します。 |
limit | 整数、1~50、デフォルトは 20 | いいえ | 返す行数です。 |
offset | 整数、0 以上、デフォルトは 0 | いいえ | ページングのためにスキップする行数です。 |
返される内容: search_titles が返す行と、一覧を読み取った際の total_available、offset、next_offset、および kind、sort、genre です。
2 つのスコア、測定するものは 2 つ
Metascore は、プロのレビューの加重平均で、満点は 100 です。ユーザースコアは、登録メンバーが付けた評価の平均で、満点は 10 です。異なる集団を異なる尺度で測定しているため、ある作品には一方のスコアだけが付いている場合もあります。各レビューに記載された max を使って読み取り、スコアがない場合は、ないものとして報告してください。
設定
すべての変数は省略可能です。クライアント設定の env ブロックで設定します。
| 変数 | デフォルト | 説明 |
|---|---|---|
MC_USER_AGENT | プロジェクトの識別情報 | サイトにアプリケーション名と、連絡可能な担当者の連絡先を伝えます。 |
MC_MIN_INTERVAL_MS | 1000 | 2つのリクエスト間の間隔です。500〜60000の範囲で指定します。 |
MC_TIMEOUT_MS | 15000 | 1つのリクエストのタイムアウト時間です。1000〜120000の範囲で指定します。 |
MC_MAX_RETRIES | 3 | 一時的な失敗後の再試行回数です。0〜10の範囲で指定します。 |
MC_CACHE_TTL_MS | 86400000 | カタログのエントリーをメモリに保持する時間です。0〜604800000の範囲で指定します。 |
MC_SCORES_CACHE_TTL_MS | 3600000 | スコアとレビューをメモリに保持する時間です。0〜86400000の範囲で指定します。 |
MC_CACHE_MAX_ENTRIES | 200 | 一度にメモリに保持する回答数です。0〜10000の範囲で指定します。 |
MC_LOG_LEVEL | error | silent、error、info、debugのいずれかです。stderrに出力されます。 |
レビューが投稿されるとスコアは変動し、特にリリース前後はその傾向が強いため、スコアは1時間保持されます。一方、カタログのエントリーは1日保持されます。値が範囲外の場合はデフォルト値に戻り、その理由がstderrに出力されます。
エラー
すべての失敗には、6種類のコードのいずれかとメッセージが含まれ、必要に応じて次の対応を示すヒントも含まれます。
| コード | 発生したこと | 対応 |
|---|---|---|
not_found | サイトから応答がありましたが、該当するエントリーはありません。 | search_titlesでスラッグと種類を確認してください。 |
invalid_input | リクエストが送信される前に、引数が拒否されました。 | メッセージを読み、どの引数に問題があるか確認してください。 |
rate_limited | サイトから、このクライアントのリクエストを遅らせるよう求められました。 | ヒントに示された秒数だけ待ってから、同じ引数で再度呼び出してください。エントリーは引き続き存在しています。 |
parse_failure | 応答をこのクライアントで読み取れない形式で受信しました。 | イシュートラッカーで報告してください。 |
network_error | リクエストが完了しませんでした。 | 少し待ってから再試行してください。 |
timeout | リクエストがタイムアウトしました。 | MC_TIMEOUT_MSを増やすか、取得する行数を減らしてください。 |
ライブラリとして
サイトを読み取るレイヤーは、リクエスト間隔の制御、キャッシュ、エラー処理を備え、プロトコルに依存しない形で単独で公開されています。
import { McClient } from "mcp-metacritic/client";
const client = new McClient();
const { data, cached } = await client.getDetail("movie", "the-matrix");
console.log(data.title, data.metascore, cached);
各読み取り処理は{ data, cached }を返し、6種類のコードのいずれかを含むエラーをスローします。リクエスト間の最小間隔も、ここで同様に適用されます。
リクエスト間隔と帰属表示
リクエストは一度に1件ずつ送信され、少なくとも1秒の間隔を空けます。サーバーの設定にかかわらず、間隔は最低でも0.5秒確保されます。User-Agent の末尾には必ず、プロジェクト名と連絡可能な担当者のアドレスが含まれます。
すべての結果にMetacriticのページアドレスが含まれ、引用されたレビューには、そのレビューを掲載した媒体が記載されます。レビューの権利は著者と掲載媒体に帰属します。
このMCPサーバーは非公式のプロジェクトであり、Metacriticとは無関係です。
プライバシー
このサーバーはお客様に関する情報を収集せず、作者に情報を送信することもありません。お客様のマシン上で実行され、backend.metacritic.com のみに接続し、実行中は回答をメモリに保持しますが、ディスクには何も書き込みません。
PRIVACY.mdには、リクエストに含まれる情報と、内容を変更する設定が記載されています。
開発
npm install
npm run build:fixtures
npm test
npm run check
テストは生成されたフィクスチャを使って実行され、ネットワークリクエストは行いません。ライブテストスイートのnpm run test:liveは、各ルートにつき1回リクエストを行い、毎晩、実際のサイトに対して実行されます。
貢献
バグ、質問、アイデアは イシュートラッカーにお寄せください。プルリクエストも歓迎します。まずイシューを作成すると、変更内容の方向性を合意しやすくなります。CONTRIBUTING.mdをご覧ください。
ライセンス
MITライセンスです。詳細はLICENSEをご覧ください。スコアとレビューの権利はMetacriticおよび引用元の媒体に帰属します。
mcp-metacritic(フランス語)
Metacriticは、映画、テレビシリーズ、ビデオゲームについて、批評家や一般ユーザーが寄せた評価をまとめています。各作品ページには、公開年、年齢区分、ジャンルのほか、作品ごとの2つの評価が掲載されています。ひとつはプロの批評家による加重平均のMetascore、もうひとつは登録ユーザーが10点満点で付けたユーザー評価です。各作品ページの下には、レビューと、それを掲載した媒体、引用文が掲載されています。
このサーバーは、会話型クライアントとこのカタログをつなぎます。作品の検索、評価や詳細情報を含む作品ページの閲覧、スコア、新しさ、人気度によるカタログの閲覧、出典や評価のトーンで絞り込んだ作品レビューの閲覧ができます。APIキーもアカウントも不要です。
インストール
ワンクリックインストール
Claude Code
claude mcp add metacritic -- npx -y mcp-metacritic
Claude Desktop、Cursor、および標準設定形式に対応したすべてのクライアント
{
"mcpServers": {
"metacritic": {
"command": "npx",
"args": ["-y", "mcp-metacritic"]
}
}
}
Node 24以降が必要です。環境変数の設定は不要です。
Dockerを使用
{
"mcpServers": {
"metacritic": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-metacritic:2.0.1"]
}
}
}
-iは、プロトコルの通信チャネルとなる標準入力を開いたままにします。TTYはデータストリームを書き換えるため、-tは省略しています。コンテナに必要な通信は、backend.metacritic.comへのHTTPSによる外部接続のみです。ボリューム、ポート、認証情報は不要です。
npm不要のバンドル
mcp-metacritic-2.0.1.mcpbを最新リリースからダウンロードして開いてください。MCPバンドルに対応したクライアントであれば、npmも設定ファイルの変更も不要で、自動的にインストールされます。バンドルには依存関係が含まれているため、インストール時にダウンロードは発生しません。
質問できること
- 「『マトリックス』は批評家からどう評価されましたか?」
- 「このゲームの否定的なレビューをいくつか読んでください。」
- 「評価が最も高いホラー映画は何ですか?」
- 「ユーザースコアは Metascore と比べてどうですか?」
- 「最近公開されて、評判の良かった作品は何ですか?」
通常の流れは、検索から作品情報の取得へ進みます。各行には slug と
kind が含まれ、get_title と get_reviews ではこの2つを一緒に指定します。
ツール
| ツール | 機能 |
|---|---|
search_titles | タイトルから映画、シリーズ、ゲームを検索します。 |
get_title | 作品情報、スコア、詳細を取得します。 |
get_reviews | 作品のレビューを、出典や論調ごとに取得します。 |
browse_titles | スコア、新しさ、人気度でカタログを一覧表示します。 |
タイトルは slug と kind を組み合わせて指定します。同じ slug が映画と
ゲームの両方を指す場合があります。
search_titles
タイトルから映画、シリーズ、ゲームを検索します。
| 引数 | 型 | 必須 | 機能 |
|---|---|---|---|
query | 1文字以上の文字列 | はい | タイトルまたはその一部。 |
kind | movie、show、game、any。既定値は any | いいえ | 検索するカタログ。 |
limit | 1~50の整数。既定値は 10 | いいえ | 返す行数。 |
戻り値: slug と kind を含む行。get_title と get_reviews ではこの2つを一緒に指定します。title、year、release_date、公開されている年齢区分である rating、metascore、user_score が含まれます。検索ルートではどの行にも user_score は公開されず、すべて null です。また、source_url も含まれます。サイトが算出していないスコアは 0 ではなく null になります。 0から始まる尺度では両者を区別できず、レビュー数が少なすぎるタイトルにはスコアが付かないためです。
get_title
作品情報を取得します。詳細情報は既定では返されず、必要な項目を指定します。既定値以外の項目を指定するたびに、リクエストが1回必要です。
| 引数 | 型 | 必須 | 機能 |
|---|---|---|---|
slug | 1文字以上の文字列 | はい | 行の識別子。 |
kind | movie、show、game | はい | 該当するカタログ。 |
sections | basic、scores、awards、production、networks、where_to_watch の配列。既定値は ["basic", "scores"] | いいえ | 返す項目。 |
max_chars | 200~20000の整数。既定値は 4000 | いいえ | 返す説明文の長さ。 |
offset | 0以上の整数。既定値は 0 | いいえ | 説明文の取得を再開する位置。 |
戻り値: 検索結果の行に含まれる作品情報に加え、description、
tagline、genres、duration_minutes、imdb_id が含まれます。ページに記載がない項目は null になります。total_chars、returned_chars、offset は、返された説明文の範囲を示します。
get_reviews
作品のレビューを読み取ります。
| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
slug | 1文字以上の文字列 | はい | 作品の識別子です。 |
kind | movie、show、またはgame | はい | 該当するカタログです。 |
source | criticまたはuser、デフォルトはcritic | いいえ | レビューの投稿者です。 |
sentiment | all、positive、neutral、またはnegative、デフォルトはall | いいえ | 求めるレビューの評価傾向です。 |
limit | 整数、1~50、デフォルトは10 | いいえ | 取得するレビュー数です。 |
offset | 0以上の整数、デフォルトは0 | いいえ | ページ分割のためにスキップするレビュー数です。 |
返される内容: reviews。それぞれに、公開時のままのquote、score、そのスコアの上限を示すmax(批評家の場合は100、ユーザーの場合は10)、および署名したpublicationが含まれます。レビューを引用する際は、掲載媒体名を明記してください。 total_availableは、求める評価傾向にかかわらず、この作品についてMetacriticがこの投稿元から取得しているレビューの総数です。評価傾向は、検索時のクエリではなく、受け取ったサンプルを絞り込むものだからです。next_offsetを使って次のページを取得できます。
browse_titles
カタログを一覧表示します。
| 引数 | 型 | 必須 | 説明 |
|---|---|---|---|
kind | movie、show、またはgame、デフォルトはmovie | いいえ | 一覧表示するカタログです。 |
sort | score、recent、またはpopular、デフォルトはscore | いいえ | 作品の並び順です。 |
genre | 文字列 | いいえ | Horrorのような、ジャンル名を1つ指定します。 |
limit | 整数、1~50、デフォルトは20 | いいえ | 取得する作品数です。 |
offset | 0以上の整数、デフォルトは0 | いいえ | ページ分割のためにスキップする作品数です。 |
返される内容: search_titlesが返す作品と、リストの取得に使ったkind、sort、genre、およびtotal_available、offset、next_offsetです。
2つのスコアが測るもの
Metascoreは、専門家によるレビューの加重平均で、100点満点です。ユーザースコアは、登録メンバーが付けた評価の平均で、10点満点です。これらは異なる集団を異なる尺度で測定するものであり、作品によっては一方のスコアしか付いていない場合があります。それぞれのレビューに記載されたmaxに従って読み取り、スコアがない場合は、ないものとして報告してください。
設定
すべての変数は任意です。クライアント設定の env ブロックに設定します。
| 変数 | デフォルト | 説明 |
|---|---|---|
MC_USER_AGENT | プロジェクトの識別情報 | サイトにアプリケーション名と、担当者に連絡できるメールアドレスを伝えます。 |
MC_MIN_INTERVAL_MS | 1000 | リクエスト間隔です。500〜60000の範囲で設定します。 |
MC_TIMEOUT_MS | 15000 | リクエストのタイムアウトです。1000〜120000の範囲で設定します。 |
MC_MAX_RETRIES | 3 | 一時的な失敗後の再試行回数です。0〜10の範囲で設定します。 |
MC_CACHE_TTL_MS | 86400000 | タイトル情報をメモリに保持する期間です。0〜604800000の範囲で設定します。 |
MC_SCORES_CACHE_TTL_MS | 3600000 | スコアとレビューをメモリに保持する期間です。0〜86400000の範囲で設定します。 |
MC_CACHE_MAX_ENTRIES | 200 | 同時にメモリに保持するレスポンス数です。0〜10000の範囲で設定します。 |
MC_LOG_LEVEL | error | silent、error、info、debugのいずれかです。標準エラー出力に書き込みます。 |
レビューに伴ってスコアは変動し、特にリリース前後は大きく変わるため、タイトル情報は1日保持する一方で、スコアは1時間だけ保持します。範囲外の値を指定するとデフォルト値に戻り、その理由が標準エラー出力に書き込まれます。
エラー
失敗には6種類のコードのいずれか、メッセージ、および役立つ場合は次に行う操作の案内が含まれます。
| コード | 発生したこと | 対処法 |
|---|---|---|
not_found | サイトから応答がありましたが、そのタイトル情報はありません。 | スラッグと種類を search_titles で確認してください。 |
invalid_input | リクエストを送信する前に引数が拒否されました。 | 引数名が記載されたメッセージを確認してください。 |
rate_limited | サイトから、このクライアントに速度を落とすよう求められました。 | 指定された秒数だけ待ち、同じ引数で再度呼び出してください。タイトル情報は引き続き利用できます。 |
parse_failure | この環境で解釈できない形式のレスポンスが届きました。 | インシデントトラッカーで報告してください。 |
network_error | リクエストが完了しませんでした。 | 少し待ってから再試行してください。 |
timeout | リクエストがタイムアウトしました。 | MC_TIMEOUT_MSを増やすか、取得する行数を減らしてください。 |
ライブラリとして
サイトを読み取るレイヤーは、独自のレート制御、キャッシュ、エラー処理を備え、特定のプロトコルに依存しないライブラリとして単独で公開されています。
import { McClient } from "mcp-metacritic/client";
const client = new McClient();
const { data, cached } = await client.getDetail("movie", "the-matrix");
console.log(data.title, data.metascore, cached);
各読み取りは{ data, cached }を返し、6種類のコードのいずれかを持つエラーをスローします。リクエスト間の最小間隔もここで適用されます。
リクエスト頻度とクレジット表記
リクエストは1件ずつ送信され、少なくとも1秒の間隔を空けます。設定にかかわらず、最小間隔は0.5秒です。User-Agent の末尾には、常にプロジェクトの識別情報と担当者への連絡先が含まれます。
各結果にはMetacriticのページアドレスが記載され、引用された各レビューには、執筆した媒体が記載されます。レビューの著作権は、執筆者および掲載した媒体に帰属します。
このMCPは非公式プロジェクトであり、Metacriticとは一切関係ありません。
プライバシー
このサーバーは、ユーザーに関する情報を収集せず、作者に情報を送信することもありません。お使いのマシン上で動作し、backend.metacritic.com のみに接続します。実行中は応答をメモリに保持し、ディスクには何も書き込みません。
PRIVACY.mdには、リクエストに含まれる情報と、それを変更する設定について記載されています。
開発
npm install
npm run build:fixtures
npm test
npm run check
テストは生成されたフィクスチャを使用して実行され、リクエストは一切送信しません。ライブテストスイートのnpm run test:liveは、各ルートにつき1件のリクエストを送信し、毎晩サイト自体に対して実行されます。
貢献
不具合、質問、アイデアはイシュートラッカーにお寄せください。変更の提案も歓迎します。まずチケットを作成すると、変更内容について合意しやすくなります。CONTRIBUTING.mdをご覧ください。
ライセンス
MITライセンスです。LICENSEをご覧ください。注記とレビューの権利は、Metacriticおよび引用された媒体に帰属します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。