Skip to main content
Glama

Read reviews

get_reviews
Read-onlyIdempotent

Get critic or user reviews for a Metacritic entry by slug and kind. Filter by sentiment to see positive or negative reactions; critic reviews include publication and original link.

Instructions

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 Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesWhich catalogue the entry belongs to. Pass it back with the slug.
slugYesIdentifier from search_titles, such as 'the-matrix'.
limitNoHow many reviews to return from the sample Metacritic publishes.
offsetNoHow many of the sampled reviews to skip. The sample itself cannot be paged past.
sourceNo'critic' is the professional press, 'user' is the audience.critic
sentimentNoWhich slice to read. Metacritic groups reviews this way itself.all

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
slugYes
notesYes
offsetYes
sourceYes
reviewsYes
sentimentYes
source_urlYesMetacritic page these reviews belong to. Cite it when an article link is missing.
next_offsetYesPass as 'offset' for the next page.
total_availableYesHow many reviews Metacritic counts in total. Usually far more than it serves here.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changedv2.0.1
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • changedOutput schema / properties / next_offset / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / offset / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / offset / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / reviews / items / properties / author / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / reviews / items / properties / author / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / reviews / items / properties / date / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / reviews / items / properties / date / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / reviews / items / properties / publication / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / reviews / items / properties / publication / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / reviews / items / properties / quote / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / reviews / items / properties / quote / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / reviews / items / properties / score / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / reviews / items / properties / score / type
      Removed value: -[
      -  "number",
      -  "null"
      -]
    • addedOutput schema / properties / reviews / items / properties / url / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / reviews / items / properties / url / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / total_available / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / total_available / minimum
      Added value: +-9007199254740991
  2. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses critical behaviors: Metacritic returns a fixed sample, total_available is misleading, pagination cannot go past the sample, and critic vs. user scores use different scales. It also notes that critic reviews include publication and link metadata, which affects how results should be quoted. This is substantial added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries unique information: purpose, prerequisite, sentiment behavior, sample limitation, citation requirement, and score-scale warning. It is front-loaded with the core purpose before caveats, so an agent can quickly determine relevance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter tool with an output schema, the description covers the required parameters, the prerequisite dependency, filtering semantics, result limitations, and how to handle critic vs. user data. No essential operational detail seems missing, and the output schema can carry the return-shape burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds non-obvious semantics: sentiment maps to Metacritic's own grouping, offset only skips within the published sample and cannot extend it, and the score scales differ by source. These enrich the parameter meanings beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') with a precise resource ('individual reviews of a Metacritic entry') and names the two review sources (critics or users). It clearly differentiates from siblings like search_titles and browse_titles, which are discovery tools, whereas this is a content retrieval tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent to obtain slug and kind from search_titles first, which is exactly the right prerequisite. It does not explicitly contrast against get_title or browse_titles, but the dependency chain and the filtering guidance make the intended usage clear without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools