# io.github.smeet666/mcp-metacritic (npm · mcp-metacritic)

Search Metacritic films, shows and games, read scores and critic reviews. No API key.

- Trust score: 81/100 (high trust)
- Change this week: +35
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-12

## Components

- mcpb · `mcp-metacritic-1.2.0.mcpb`: 42/100, [markdown](https://verifymcp.io/servers/smeet666-mcp-metacritic/https-github-com-smeet666-mcp-metacritic-releases-download-v1-2-0-mcp-metacritic.md), [page](https://verifymcp.io/servers/smeet666-mcp-metacritic/https-github-com-smeet666-mcp-metacritic-releases-download-v1-2-0-mcp-metacritic)
- npm · `mcp-metacritic`: 81/100 (this document), [markdown](https://verifymcp.io/servers/smeet666-mcp-metacritic/mcp-metacritic.md), [page](https://verifymcp.io/servers/smeet666-mcp-metacritic/mcp-metacritic)

## Channel facts

- Registry: `npm`
- Package: `mcp-metacritic`
- Version: `1.2.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-12.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 96 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to smeet666/mcp-metacritic).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 4 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1115 tokens (~278/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add smeet666-mcp-metacritic -- npx -y mcp-metacritic
```

### Codex

```bash
codex mcp add smeet666-mcp-metacritic -- npx -y mcp-metacritic
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "smeet666-mcp-metacritic": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-metacritic"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add smeet666-mcp-metacritic --command npx --arg -y --arg mcp-metacritic
```

### Hermes

```yaml
mcp_servers:
  smeet666-mcp-metacritic:
    command: "npx"
    args: ["-y", "mcp-metacritic"]
```

### Other

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

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-11 (score 81, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-09 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-07 (score 79, +33)

- [security improvement] Known CVEs: partial → pass
- [functional regression] Security disclosure: unverified → fail
- [functional improvement] Security disclosure: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.10
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Tool coverage: 100
- [functional] First check of Tool coverage: 100
- [functional] Dependency health: partial → 0.85
- [functional] Package version: 1.1.2 → 1.2.0

### 2026-08-06 (score 46, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-08-05 (score 46, −2)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: excellent
- [functional] First check of Tool coverage: 100
- [functional] Package version: 1.1.1 → 1.1.2

### 2026-08-04 (score 48)

First indexed and scored.

## MCP tools (4)

### `search_titles` (~187 tokens)

Search Metacritic

Search Metacritic for films, shows and games by title. Returns one compact row per match, carrying the critic Metascore, so a question about the critical verdict needs no second call. Search rows carry no audience score: use get_title for that, or browse_titles, which does return it. Use the slug and kind with get_title for the full entry, or with get_reviews for what critics wrote. There is no paging: 'limit' is the only lever, and results always start from the most relevant match. This searches titles only. It cannot find an entry from a plot detail, a person or a studio.

Input parameters:

- `kind` (string): Restrict results to one catalogue. Metacritic searches all three at once.
- `limit` (integer): How many rows to return.
- `query` (string, required): Title or part of one, for example 'the matrix'.

Output parameters:

- `notes` (array)
- `query` (string)
- `results` (array)
- `total_available` (integer): How many entries Metacritic counted. For a query of several words it counts entries matching any one of them, so the number is far larger than the useful matches and should not be read as a match cou…

### `get_title` (~238 tokens)

Read an entry

Read one Metacritic entry by slug and kind, both from search_titles. Sections are opt-in because a full entry is large: 'basic' and 'scores' are the default and cover most questions. 'scores' fetches the critic and audience breakdowns, each with its own scale, so never compare the two numbers directly. Sections gate the payload: asking for 'scores' alone returns no description, and 'basic' alone returns no scores. 'networks' lists the broadcasters of a show; 'where_to_watch' costs an extra request and covers films and shows only. A long description paginates: when 'truncated' is true, call again with 'offset' set to 'next_offset'.

Input parameters:

- `kind` (string, required): Which catalogue the entry belongs to. Pass it back with the slug.
- `max_chars` (integer): Character budget for the description.
- `offset` (integer): Where to resume the description.
- `sections` (array): Which parts to return. Each extra section beyond the default costs a request.
- `slug` (string, required): Identifier from search_titles, such as 'the-matrix'.

Output parameters:

- `awards` (array): One tally per ceremony. Metacritic publishes no per-category detail.
- `critic_score`
- `description` (string|null)
- `duration_minutes`: Runtime in minutes for a film, or the length of a typical episode for a show.
- `genres` (array)
- `imdb_id` (string|null): IMDb identifier, usable to cross-reference other sources.
- `networks` (array): Broadcasters, for shows.
- `next_offset`: Pass as 'offset' to read the rest.
- `notes` (array)
- `offset` (integer)
- `production` (array)
- `returned_chars` (integer)
- `tagline` (string|null)
- `title` (object)
- `total_chars` (integer): Length of the full description.
- `truncated` (boolean)
- `user_score`
- `where_to_watch` (array)

### `get_reviews` (~258 tokens)

Read reviews

Read individual reviews of a Metacritic entry, from critics or from users. Get the slug and kind from search_titles first. Filter with 'sentiment' to read only what praised or panned it, which Metacritic groups itself. Metacritic returns a fixed sample rather than the full list, so 'total_available' is usually far larger than what comes back, and there is no way to page past the sample. Critic reviews carry the publication and a link to the original article: quote them with both. Critic scores run to 100 and user scores to 10, so do not average the two together.

Input parameters:

- `kind` (string, required): Which catalogue the entry belongs to. Pass it back with the slug.
- `limit` (integer): How many reviews to return from the sample Metacritic publishes.
- `offset` (integer): How many of the sampled reviews to skip. The sample itself cannot be paged past.
- `sentiment` (string): Which slice to read. Metacritic groups reviews this way itself.
- `slug` (string, required): Identifier from search_titles, such as 'the-matrix'.
- `source` (string): 'critic' is the professional press, 'user' is the audience.

Output parameters:

- `kind` (string)
- `next_offset`: Pass as 'offset' for the next page.
- `notes` (array)
- `offset` (integer)
- `reviews` (array)
- `sentiment` (string)
- `slug` (string)
- `source` (string)
- `source_url` (string): Metacritic page these reviews belong to. Cite it when an article link is missing.
- `total_available` (integer): How many reviews Metacritic counts in total. Usually far more than it serves here.

### `browse_titles` (~227 tokens)

Browse rankings

List films, shows or games by score, by release date or by current popularity. Use this when there is no specific title to look up: best rated, newest, what people are looking at now. Filter by genre with a single name such as Horror, Comedy or Action. Sorting by score returns the all-time ranking, which is dominated by older titles: combine with a genre to narrow it. Scores come back on their own scales, 100 for critics and 10 for users. Paging is approximate: Metacritic does not order tied entries stably, so an entry can appear on two consecutive pages. Deduplicate by slug rather than counting rows.

Input parameters:

- `genre` (string): Single genre name, such as Horror. Omit for all genres.
- `kind` (string): Which catalogue to list.
- `limit` (integer): How many rows to return.
- `offset` (integer): How many rows to skip, for paging.
- `sort` (string): 'score' is the critic ranking, 'recent' is by release date, 'popular' is current attention.

Output parameters:

- `genre` (string|null)
- `kind` (string)
- `next_offset`: Pass as 'offset' for the next page. Tied entries are not ordered stably upstream, so deduplicate by slug across pages.
- `notes` (array)
- `offset` (integer)
- `results` (array)
- `sort` (string)
- `total_available` (integer): How many entries match upstream, which is the size of what this samples.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/smeet666-mcp-metacritic/mcp-metacritic#diagnostics

## Score history

- 2026-08-12: 81
- 2026-08-11: 81
- 2026-08-10: 80
- 2026-08-09: 80
- 2026-08-08: 79
- 2026-08-07: 79
- 2026-08-06: 46
- 2026-08-05: 46
- 2026-08-04: 48

## Links

- npm package: https://www.npmjs.com/package/mcp-metacritic
- Socket report: https://socket.dev/npm/package/mcp-metacritic
- Repository: https://github.com/smeet666/mcp-metacritic
- Changelog RSS feed: https://verifymcp.io/servers/smeet666-mcp-metacritic/mcp-metacritic.xml
- Changelog JSON feed: https://verifymcp.io/servers/smeet666-mcp-metacritic/mcp-metacritic.json
- HTML version of this page: https://verifymcp.io/servers/smeet666-mcp-metacritic/mcp-metacritic
