Skip to main content
Glama

AwesomeVideo

Transcribe

transcribe
Idempotent

Transcribe speech with Workers AI Whisper (@cf/openai/whisper-large-v3-turbo). Audio is extracted and downsampled to 16 kHz mono before the model runs; video frames are not decoded. Pass a media URL or an uploaded file id. Language defaults to auto. format is srt, vtt, or json with word timestamps. This is prepaid. A key with too little balance gets a 402 insufficient_balance payload (requiredCents, balanceCents, checkoutUrl, howToBuy) and no job starts. Cache hits are scoped to the API key and include language, format, and duration hint. A different key cannot read another key's result.

Input Schema

NameRequiredDescriptionDefault
fileIdNoId from create_upload, upload_base64, or POST /v1/uploads.
formatNoDefault json, including word timestamps.
glossaryNoNames and terms. Used as the Whisper prompt and to fix close spellings. Included in the transcription price.
languageNoBCP-47 language, or omit for auto.
mediaUrlNoHTTPS URL of the audio or video file.
maxCreditsNoRefuse the job when the debit would exceed this many cents.
webhookUrlNoPublic https URL. POSTed an HMAC-signed JSON body when the job finishes. Three tries.
notifyEmailNoOptional completion email. Free. Needs the email binding.
durationSecondsNoOptional duration hint used before probe.
useSavedGlossaryNoDefault true: also apply the saved glossary (save_glossary) with its alias fixes, e.g. 'awesome video' -> 'AwesomeVideo'. Free.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that audio is extracted and downsampled to 16 kHz mono while video frames are not decoded, that this is a prepaid operation, the exact 402 insufficient_balance payload fields and that no job starts, and that cache hits are keyed by API key plus language/format/duration hint with cross-key isolation. This is exactly the operational context 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.

Conciseness5/5

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

Front-loads the model and processing behavior, then billing, then failure payload, then caching, with no filler sentences. Every clause (downsampling, 402 fields, cache key scoping) carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers inputs, processing, pricing, failure mode, and caching for a 10-parameter tool with no output schema. The notable gap is execution model: the presence of webhookUrl and a get_job sibling implies asynchronous job submission, but the description never says whether the call returns a job id to poll or a result synchronously.

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 baseline is 3; the description still adds value by reinforcing the mediaUrl-vs-fileId choice, the auto language default, and format output content, and by tying language, format, and the duration hint to cache scoping. It does not explain glossary vs useSavedGlossary or maxCredits semantics, keeping it from a 5.

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?

States a specific verb and resource plus the exact model ('Transcribe speech with Workers AI Whisper @cf/openai/whisper-large-v3-turbo') and the accepted input forms (media URL or uploaded file id). It is distinguishable from caption_video/burn_captions, but it never explicitly names those siblings to route the agent, so it stops short of a 5.

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

Usage Guidelines3/5

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

Offers input guidance ('Pass a media URL or an uploaded file id') and default behaviors ('Language defaults to auto'), which implies when the tool applies. However there is no explicit when-to-use / when-not-to-use statement and no comparison to caption_video, burn_captions, or dub, which produce overlapping subtitle output.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources