Skip to main content
Glama
smeet666

mcp-tvsubtitles

Read one subtitle's record

get_subtitle
Read-onlyIdempotent

Fetch a subtitle's full record by its ID from tvsubtitles.net, including episode, release, uploader, date, size, and download count, to evaluate before downloading.

Instructions

Read one subtitle's record on tvsubtitles.net, from an id list_subtitles returned. The record carries the episode it belongs to, the release it was cut for, who uploaded it and when, its size and how often it was downloaded. Six of the site's ten fields are absent on some records, the author on roughly two out of three, and an absent field is null rather than blank. This server reads the catalogue: open 'page_url' to download the file.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesA subtitle id from list_subtitles. The site answers an id it does not hold by sending the reader to its front page, which this reports as an absence.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesYes
cachedYes
sourceYes
subtitleYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.0.0
    • addedOutput schema / properties / subtitle / properties / read_from
      Added value: +{
      +  "description": "Which page this row was read from. A listing carries no file name, no size and no comment, because the site prints those on a record's own page alone: read a null on one of the three as unread here rather than as something the site does not publish.",
      +  "enum": [
      +    "listing",
      +    "record"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / subtitle / properties / title_id / description
      Previous value: -"The show this belongs to."New value: +"The show this belongs to, where the page it was read from names one. A record's own page names no show, so a row whose 'read_from' is 'record' carries null here and names the show under 'show_name' instead."
    • changedOutput schema / properties / subtitle / properties / title_id / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / subtitle / required
      Previous value: -[
      -  "id",
      -  "title_id",
      -  "page_url",
      -  "language",
      -  "language_code",
      -  "releases",
      -  "release_match",
      -  "season",
      -  "episode",
      -  "is_pack",
      -  "files_in_pack",
      -  "hearing_impaired",
      -  "machine_translated",
      -  "uploader",
      -  "published_at",
      -  "published_text",
      -  "downloads",
      -  "rating",
      -  "file_name",
      -  "size_text",
      -  "comment",
      -  "source",
      -  "show_name",
      -  "episode_title"
      -]New value: +[
      +  "id",
      +  "title_id",
      +  "page_url",
      +  "language",
      +  "language_code",
      +  "releases",
      +  "read_from",
      +  "release_match",
      +  "season",
      +  "episode",
      +  "is_pack",
      +  "files_in_pack",
      +  "hearing_impaired",
      +  "machine_translated",
      +  "uploader",
      +  "published_at",
      +  "published_text",
      +  "downloads",
      +  "rating",
      +  "file_name",
      +  "size_text",
      +  "comment",
      +  "source",
      +  "show_name",
      +  "episode_title"
      +]
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark this as read-only, idempotent, and non-destructive, but the description adds meaningful behavioral detail: missing fields are null rather than blank, field absence rates vary, and invalid ids are surfaced as an absence. This materially improves the agent's ability to interpret results without contradicting the annotations.

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 four sentences, but each one earns its place: purpose, record contents, null-behavior caveat, and download routing. It is front-loaded with the primary action and uses no filler or repetition.

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 one-parameter read tool with an output schema and strong annotations, this description is complete. It covers what the record contains, how to interpret missing fields, and how to proceed when a download is needed, leaving no critical gap for correct invocation or result handling.

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

Parameters3/5

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

Schema description coverage is 100%, and the id parameter is already well documented, including the invalid-id behavior. The tool description reinforces that the id comes from list_subtitles but does not add significant semantic value beyond the schema, so the baseline of 3 is appropriate.

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 action ('Read one subtitle's record') and a specific resource (tvsubtitles.net), and anchors the input to an id from list_subtitles. It is clearly distinguishable from the sibling tools, which search or list subtitles rather than read a single record.

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?

The description clearly indicates when to use this tool: after list_subtitles has returned an id. It also gives a practical boundary by saying the server reads the catalogue and that opening 'page_url' is how to download the file. It does not explicitly name alternatives or exclusions, but the usage context is unambiguous.

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