Skip to main content
Glama

read which face belongs to each speaker

transcriptions_get-speaker-analysis
Read-only

Read which face in a video belongs to each transcript speaker by transcription ID, returning matched or uncertain speakers and the revision needed to slice face tracks for lipsync timelines.

Instructions

Read which face in the video belongs to each transcript speaker of a COMPLETED video transcription, by transcription id. Read-only: video transcriptions of your own media are usually analysed automatically, and transcriptions_analyze-speakers starts or retries an analysis only when this returns unavailable with reason not_requested, analysis_failed or analysis_timeout. Returns status (processing, completed or unavailable), the revision that transcriptions_slice-speaker-face-track needs, and speakers: each matched (with an avatar, the evidence and a faceTrack whose url is a public JSON file with one box per frame of the source file where that face is visible) or uncertain (with a reason). Other unavailable reasons do not call for analyze-speakers: retry_limit means the attempts are used up, and reasons such as source_binding_unavailable (an audio-only source or one outside your organization's storage), source_too_long or too_many_speakers rule the source out. wait: true waits for the analysis, not the transcription; jobs_wait with kind speaker_analysis, when available, waits on the same analysis. Next step for lipsync_create-timeline: cut each matched speaker's track per clip with transcriptions_slice-speaker-face-track. Clips of an uncertain speaker use speaker detect instead, or lipsync: false where the timeline tool offers that field.

Input Schema

NameRequiredDescriptionDefault
idYesTranscription id from transcriptions_create.
waitNoWait on the server while the analysis status is processing, for up to about 50 seconds, then return its latest state; if still processing, call again with wait: true instead of sleeping. Does not wait for an unfinished transcription, which returns 409.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.4
    • changedInput schema / properties / wait / description
      Previous value: -"Wait on the server until the job finishes or about 50 seconds pass, then return its latest state. If it is still running, call again with wait: true instead of sleeping."New value: +"Wait on the server while the analysis status is processing, for up to about 50 seconds, then return its latest state; if still processing, call again with wait: true instead of sleeping. Does not wait for an unfinished transcription, which returns 409."
  2. Changed1 schema field changed
    • addedInput schema / properties / id / description
      Added value: +"Transcription id from transcriptions_create."
  3. Addedv0.1.5

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish readOnlyHint/openWorldHint=false, and the description goes well beyond them: it discloses the three status values, the revision field, the structure of matched vs uncertain speakers, the faceTrack URL format (public JSON, one box per frame), and the failure reason taxonomy. It also clarifies that wait waits on the analysis rather than the transcription, which is a subtle behavioral distinction an agent would otherwise get wrong.

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?

Front-loaded with the core action and scope, then the conditional routing, then the return shape, then the next step — a sensible order with no filler sentences. It is dense and long, and the slice-speaker-face-track guidance appears in both the return-value and next-step sentences, which is slight redundancy but each occurrence serves a different point.

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?

No output schema exists, yet the description fully describes the response envelope (status, revision, speakers with matched/uncertain branches and their fields), so an agent knows exactly what it will receive. Combined with the error-reason routing and the named downstream tool, nothing needed to call this correctly is missing.

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 both parameters are already documented in the schema, including the ~50s wait semantics and the 409 on unfinished transcription. The description adds real meaning beyond that by contrasting wait here with jobs_wait with kind speaker_analysis, making the wait target unambiguous; the id parameter itself gets no extra semantics beyond the schema.

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?

States a specific verb and resource: read which face belongs to each transcript speaker, by transcription id, for a COMPLETED transcription. It explicitly distinguishes itself from the two most confusable siblings, transcriptions_analyze-speakers (which starts/retries an analysis) and transcriptions_slice-speaker-face-track (the downstream consumer of the returned revision).

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?

Gives explicit when/when-not routing: normally the analysis runs automatically, so only call analyze-speakers when this returns unavailable with reason not_requested, analysis_failed or analysis_timeout, and it names the other unavailable reasons (retry_limit, source_binding_unavailable, source_too_long, too_many_speakers) that do NOT warrant a retry. It also routes uncertain speakers to speaker detect or lipsync: false, and points to jobs_wait for the same analysis.

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