Skip to main content
Glama

AwesomeVideo

Prepare client burn

prepare_client_burn
Read-onlyIdempotent

Build an ASS subtitle script from an AwesomeVideo preset without starting ffmpeg. Cost is zero and nothing is debited. This is the seam for a future client-side or WebMCP renderer that burns captions in the user's browser. Pass subtitles or a transcription job id and a preset id or name. Optional width and height set PlayRes; the default is 1280x720.

Input Schema

NameRequiredDescriptionDefault
widthNo
heightNo
presetNo
autoFitNoDefault true: caption size, words per caption (4 on 9:16, 5 on 1:1, 7 on 16:9), and a default safe zone follow the video shape, so text reads the same at 720p and 1080p and stays clear of app UI. Pass false only when the user wants the preset's exact fixed pixel sizes. Same price.
platformNoWhere the video will be posted: tiktok, instagram_reels, youtube_shorts, facebook_reels, snapchat_spotlight, linkedin, youtube, x (aliases like reels, instagram, shorts, snap, twitter; case-insensitive). Keeps captions out of that app's buttons and text. If the user says "para TikTok" / "for Reels", pass it; if they did not say and it matters, ask. Same price. Unknown values return 422 invalid_platform before any charge. See list_platforms.
presetIdNo
faceAvoidNotrue = move captions off faces (samples faces at 2 fps, same price; result.faceAvoid.faceLayout). Shortcut for styleOverrides.faceAvoid.
subtitlesNo
presetNameNo
highlightColorNo#RRGGBB for highlightWords. Default #FACC15.
highlightWordsNoShortcut: words or phrases to color in every caption (accent/case-insensitive), e.g. ["AwesomeVideo", "gratis"]. Maps to styleOverrides.wordHighlights rule {id:"custom", words, color}. Same price.
styleOverridesNoPer-call style changes deep-merged onto the preset (same fields as list_presets style; null removes a field), validated with the renderer schema and bundled fonts. Example {"fontSize":72,"maxWordsPerCaption":2,"wordEntrance":"bounce"}. Same price. No need to save_custom_preset. Every field with examples: get_style_reference.
transcriptionJobIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, and the description adds genuinely new behavior: zero cost, nothing debited, ffmpeg never started, and it is a seam for a future client-side renderer. It stops short of describing what comes back (raw script text vs. a reference/URL) or whether a job/ID is created.

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?

Four sentences, front-loaded with the artifact and the zero-cost guarantee before the renderer rationale. The "seam for a future WebMCP renderer" sentence is useful positioning but is the weakest use of space relative to the missing return-value information.

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

Completeness3/5

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

For a 13-parameter tool with a nested styleOverrides object and no output schema, the description leaves the response shape undefined — an agent cannot tell whether it receives the ASS text, a file reference, or a job id. Cost and no-ffmpeg behavior are well covered, so it is adequate but with a clear gap.

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 46%, but the description compensates on the two axes that matter: the subtitle source (inline subtitles vs. transcriptionJobId) and the preset reference (id or name), plus the undocumented PlayRes default of 1280x720 for width/height. It does not clarify whether any of the 13 params are required or how the id/name pairs interact on conflict.

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?

"Build an ASS subtitle script from an AwesomeVideo preset without starting ffmpeg" gives a specific verb and artifact, and the ffmpeg/cost framing implicitly separates it from the server-render sibling (burn_captions). The sibling is never named, so an agent still has to infer which tool does the actual burn.

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?

It says what to pass (subtitles or transcriptionJobId plus preset id or name) and hints at the client-side/browser use case, which implies when to prefer it. There is no explicit "use X instead when you want server-side rendering" exclusion, and no note about the mutually exclusive parameter combinations an agent must choose between.

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