Skip to main content
Glama

Read an entry

get_title
Read-onlyIdempotent

Retrieve a specific Metacritic entry for a movie, show, or game using its slug and kind. Choose sections like basic info, scores, awards, or where to watch, with pagination for long descriptions.

Instructions

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 Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesWhich catalogue the entry belongs to. Pass it back with the slug.
slugYesIdentifier from search_titles, such as 'the-matrix'.
offsetNoWhere to resume the description.
sectionsNoWhich parts to return. Each extra section beyond the default costs a request.
max_charsNoCharacter budget for the description.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesYes
titleYes
awardsNoOne tally per ceremony. Metacritic publishes no per-category detail.
genresYes
offsetYes
imdb_idYesIMDb identifier, usable to cross-reference other sources.
taglineYes
networksNoBroadcasters, for shows.
truncatedYes
productionNo
user_scoreYes
descriptionYes
next_offsetYesPass as 'offset' to read the rest.
total_charsYesLength of the full description.
critic_scoreYes
returned_charsYes
where_to_watchNo
duration_minutesYesRuntime in minutes for a film, or the length of a typical episode for a show.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed33 schema fields changedv2.0.1
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • changedOutput schema / properties / awards / items / properties / nominations / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / awards / items / properties / wins / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / critic_score / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "max": {
      -        "description": "Scale this score is on: 100 for critics, 10 for users.",
      -        "type": "number"
      -      },
      -      "negative_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "neutral_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "positive_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "review_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "score": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "sentiment": {
      -        "description": "Metacritic's own wording for the verdict.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "score",
      -      "max",
      -      "review_count",
      -      "positive_count",
      -      "neutral_count",
      -      "negative_count",
      -      "sentiment"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "max": {
      +        "description": "Scale this score is on: 100 for critics, 10 for users.",
      +        "type": "number"
      +      },
      +      "negative_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "neutral_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "positive_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "review_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "score": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sentiment": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Metacritic's own wording for the verdict."
      +      }
      +    },
      +    "required": [
      +      "score",
      +      "max",
      +      "review_count",
      +      "positive_count",
      +      "neutral_count",
      +      "negative_count",
      +      "sentiment"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / description / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / description / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • changedOutput schema / properties / duration_minutes / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / imdb_id / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / imdb_id / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • 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
    • changedOutput schema / properties / production / items / properties / id / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / returned_chars / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / returned_chars / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / tagline / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / tagline / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / title / properties / id / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / title / properties / id / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / title / properties / metascore / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / title / properties / metascore / type
      Removed value: -[
      -  "number",
      -  "null"
      -]
    • addedOutput schema / properties / title / properties / rating / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / title / properties / rating / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / title / properties / release_date / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / title / properties / release_date / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / title / properties / user_score / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / title / properties / user_score / type
      Removed value: -[
      -  "number",
      -  "null"
      -]
    • changedOutput schema / properties / title / properties / year / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / total_chars / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / total_chars / minimum
      Added value: +-9007199254740991
    • changedOutput schema / properties / user_score / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/properties/critic_score/anyOf/0"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "max": {
      +        "description": "Scale this score is on: 100 for critics, 10 for users.",
      +        "type": "number"
      +      },
      +      "negative_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "neutral_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "positive_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "review_count": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "score": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sentiment": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Metacritic's own wording for the verdict."
      +      }
      +    },
      +    "required": [
      +      "score",
      +      "max",
      +      "review_count",
      +      "positive_count",
      +      "neutral_count",
      +      "negative_count",
      +      "sentiment"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / where_to_watch / items / properties / url / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / where_to_watch / items / properties / url / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
  2. First observedv1.0.0

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses several behaviors beyond the readOnly/idempotent annotations: sections gate the payload, 'scores alone returns no description', 'where_to_watch costs an extra request', and pagination via 'truncated'/'next_offset'. It also adds the critical caveat that critic and audience scales are not comparable.

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 five dense sentences, each carrying actionable information; core purpose is front-loaded before section behavior and pagination. There is no filler or redundancy.

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?

With an output schema present and readOnly/idempotent annotations already covering safety, the description supplies the remaining needed operational context: what sections return, request cost, media-type scope, and pagination. An agent has enough to call and iterate on this tool correctly.

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

Parameters5/5

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

Even though the schema already documents all parameters, the description enriches the sections parameter by explaining the default, the payload-gating effects of each section, and the extra-request cost. It also explains offset/'next_offset' pagination, which the schema does not capture.

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

Purpose4/5

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

The description starts with a specific verb and resource ('Read one Metacritic entry by slug and kind') and ties identifiers to search_titles, so an agent knows exactly what the call returns. It does not explicitly contrast itself with sibling tools such as get_reviews or browse_titles, so the differentiation is clear but not fully spelled out.

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 gives concrete selection guidance for sections ('basic and scores are the default and cover most questions'), warns about extra cost for where_to_watch, and notes media-type limitations. It does not explicitly state 'use this instead of get_reviews/browse_titles', so sibling routing is left implicit.

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