Skip to main content
Glama

match speakers to faces

transcriptions_analyze-speakers
Destructive

Run or retry speaker-to-face matching for a completed video transcription when automatic analysis is unavailable, not requested, failed, or timed out.

Instructions

Run, or retry, the speaker-to-face match for a COMPLETED video transcription and return the analysis in the same shape as transcriptions_get-speaker-analysis. Read transcriptions_get-speaker-analysis first: video transcriptions of your own media are usually analysed automatically. Call this only when that read says unavailable with reason not_requested, or with retry: true after a failed or timed-out attempt (analysis_failed, analysis_timeout). Not for audio-only transcriptions, windows longer than 2 minutes or more than 8 speakers: those return unavailable with a reason instead of running. A completed or still-running analysis is returned unchanged, even with retry; a new attempt overwrites the previous failed result, and a transcription gets at most 3 attempts including the automatic one (then retry_limit). Free; 3 calls a minute. The analysis runs inside the request and can take minutes; if this call times out the analysis keeps going, so read it with transcriptions_get-speaker-analysis and wait: true rather than calling again. A stale revision or unfinished transcript is a 409 error, and a sourceVideoUrl that is not the transcription's own video is a 422.

Input Schema

NameRequiredDescriptionDefault
idYesTranscription id from transcriptions_create.
retryNotrue to start a new attempt after a failed or timed-out one. Omit for a first analysis. Ignored while an analysis is completed or still running.
revisionYesThe transcription's revision from transcriptions_get (a 64-character hex string, present once COMPLETED). A stale one fails with 409.
sourceVideoUrlYesThe transcription's sourceVideoUrl from transcriptions_get, unchanged; any other video is refused with 422.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.2.4
    • changedInput schema / properties / retry / description
      Previous value: -"true to run the analysis again for this revision."New value: +"true to start a new attempt after a failed or timed-out one. Omit for a first analysis. Ignored while an analysis is completed or still running."
    • changedInput schema / properties / revision / description
      Previous value: -"The transcription's revision from transcriptions_get."New value: +"The transcription's revision from transcriptions_get (a 64-character hex string, present once COMPLETED). A stale one fails with 409."
    • changedInput schema / properties / sourceVideoUrl / description
      Previous value: -"The transcription's sourceVideoUrl from transcriptions_get."New value: +"The transcription's sourceVideoUrl from transcriptions_get, unchanged; any other video is refused with 422."
  2. Changed4 schema fields changed
    • addedInput schema / properties / id / description
      Added value: +"Transcription id from transcriptions_create."
    • addedInput schema / properties / retry / description
      Added value: +"true to run the analysis again for this revision."
    • addedInput schema / properties / revision / description
      Added value: +"The transcription's revision from transcriptions_get."
    • addedInput schema / properties / sourceVideoUrl / description
      Added value: +"The transcription's sourceVideoUrl from transcriptions_get."
  3. Addedv0.1.5

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: attempt accounting (max 3 including the automatic one, then retry_limit), that an in-flight or completed analysis is returned unchanged even with retry, that a new attempt overwrites a failed result, cost (free), rate limit (3/min), in-request execution time, timeout survival behavior, and the 409/422 failure conditions. These are consistent with destructiveHint=true and idempotentHint=false rather than in conflict with them.

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-loads purpose, then the routing rule, then constraints and failure modes; nearly every clause carries operational information. It is a single dense paragraph, though, and the rate-limit/cost/failure-code tail is packed tightly enough to be easy to skim past.

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 non-idempotent, potentially minutes-long, attempt-limited operation with no output schema, the description covers preconditions, alternatives, retry semantics, wait strategy, quotas, and error codes. Return shape is delegated to transcriptions_get-speaker-analysis, which is the correct move given no output schema.

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, and the description adds real semantics on top: the attempt-limit consequences of 'retry', the staleness/409 meaning of 'revision', and the 422 refusal for a foreign 'sourceVideoUrl'. It largely echoes the schema's own error notes, so it is additive but not fully independent.

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 ('run, or retry, the speaker-to-face match') and an explicit precondition (a COMPLETED video transcription), then distinguishes itself from the sibling read tool by name. An agent can tell instantly that this initiates work rather than returning existing analysis.

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-to-use criteria ('only when that read says unavailable with reason not_requested, or with retry: true after a failed or timed-out attempt'), names the alternative to consult first (transcriptions_get-speaker-analysis), and enumerates when not to call (audio-only, >2 minutes, >8 speakers) along with the recovery path after a timeout.

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