Skip to main content
Glama

getCaptionTranslationUnits

Read-only

Fetch caption translation units for one language: sentence-level phrases with IDs, source timing, and text, defaulting to untranslated ones so you can translate and store each unit.

Instructions

Read what to translate for one caption language: per asset the captions read (or the one assetId names), the transcript grouped into phrase units, each with its id, its span in the asset's source seconds and its text. A unit is a sentence or a run of speech between pauses, never a single word, so translate each one as a whole. By default only the units with no text yet in that language, so a translation sent in batches resumes where it stopped; includeTranslated returns the done ones too, with their translation. Translate them yourself, then store them with putCaptionTranslation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assetIdNo
languageYes
projectIdNoThe project to act on, from listProjects. Omit it only for the project open in the OpenScreen editor, which works only while the app runs.
includeTranslatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint/destructiveHint=false annotations, it discloses the default filtering behavior (only untranslated units), the resume semantics for batched translation, the unit granularity ('never a single word'), and what fields come back (id, span, text). These are behavioral traits the annotations cannot express.

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

Conciseness4/5

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

One dense paragraph that front-loads what is read and the scoping, then the default behavior, then the downstream call. Every sentence carries information, though the run-on punctuation makes it slightly heavier than necessary.

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 no output schema, the description fully describes the return shape (per asset, phrase units with id, source-second span, text) and the default filtering, leaving nothing an agent needs to call and interpret it correctly.

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 only 25%, so the description must compensate: it explains assetId ('or the one assetId names'), includeTranslated ('returns the done ones too, with their translation'), and the default filtering tied to language. projectId is documented in the schema. Language and assetId syntax are only lightly covered, but the semantic meaning of each is clear.

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?

Specific verb+resource: reads the caption translation units for one language, and it explicitly differentiates itself from getCaptions and getTranscript by describing the phrase-unit grouping and the per-asset scoping. An agent can distinguish it from putCaptionTranslation and getCaptions without opening a schema.

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

Usage Guidelines5/5

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

It states the workflow explicitly: default returns only units with no text yet so batched translation resumes, includeTranslated returns finished ones, and the downstream step is 'Translate them yourself, then store them with putCaptionTranslation.' This routes the agent to the sibling that consumes the output.

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