Skip to main content
Glama

Change a clip's caption look

set_caption_style

Use this when the person wants to change a made clip's captions, anything a person can change by hand, without a render: style (list_styles names), size (smaller, bigger, small, medium, large, extra_large), position (up, down, top, middle, lower, bottom) or an exact height (caption_y, e.g. to keep them clear of a scene's drawing), colour, highlight colour, font, case, outline, shadow, words per line, captions off, and stretches with no captions (hide: where a scene already writes the words on screen, so they are not shown twice); also weight, italic, size_fraction, appearance (how words appear: word by word, karaoke, typewriter...), card (a box behind the words), letter, word and line spacing, effect (glow, gradient, echo, depth, knockout), highlight_block and highlight_size for the highlighted word, blur in and out, arrangement (a stacked layout), colour_by_speaker and reset. scope {from_word, to_word} gives just those captions their own look; words [{word, color, size, weight, font, italic, case, highlight, big}] styles single words. list_styles kinds font, appearance, effect and arrangement list the choices. A clip with scenes from you follows the change. Use restyle_clip only when the person wants a new video made straight away.

Input Schema

NameRequiredDescriptionDefault
blurNoWords blur in and out: false, true, or { "in", "out", "strength": "soft" | "full" }.
cardNoA box behind the words: false, true, or { "color", "opacity" 0-1, "padding" 0-1.5, "radius" 0-1.5 }.
caseNo
fontNoOne of Slice's caption fonts: Inter, Montserrat, Poppins, Sora, TeX Gyre Heros, DM Sans, IBM Plex Mono, JetBrains Mono, Courier Prime, Anton, Bebas Neue, Oswald, Nunito, DM Serif Display, Instrument Serif, Cormorant Garamond, Lora, Libre Baskerville, Merriweather, Playfair Display, Space Mono, Pacifico, Courgette, Satisfy, Dancing Script, Kaushan Script, Yellowtail, Grand Hotel, Parisienne, Caveat, Archivo Black, Barlow Condensed, Baloo 2, Anybody, Archivo, Bricolage Grotesque, Epilogue, Figtree, Manrope, Outfit, Plus Jakarta Sans, Space Grotesk, Urbanist, Bitter, Bodoni Moda, EB Garamond, Fraunces, Libre Bodoni, Newsreader, Spectral, Young Serif, Zilla Slab, Alfa Slab One, Big Shoulders Display, Black Ops One, Bungee, Fjalla One, Fugaz One, Lilita One, Passion One, Rubik Mono One, Staatliches, Teko, Titan One, Ultra, Abril Fatface, Bungee Inline, Lobster Two, Lobster, Monoton, Poiret One, Sacramento, Silkscreen, Yeseva One, Amatic SC, Bangers, Caveat Brush, Chewy, Fredoka, Gloria Hallelujah, Indie Flower, Luckiest Guy, Patrick Hand, Rock Salt, Shrikhand, Sriracha, Audiowide, Chakra Petch, Major Mono Display, Michroma, Orbitron, Rajdhani, Share Tech Mono, VT323, Heebo, Rubik, Assistant, Frank Ruhl Libre, Secular One, Suez One.
hideNoStretches (seconds on the clip) with no captions, e.g. where a scene already writes the words on screen. Replaces the clip's hidden stretches; [] shows captions everywhere again.
colorNoThe caption words' colour, "#rrggbb".
resetNo"look" (back to the style's own look), "captions" (every caption back on the clip's look), "positions" (captions placed by hand back in line) or "all".
scopeNoGive only the captions holding these words this look (colour, font, case, weight, size, outline, shadow, card, effect, appearance...).
styleNo
wordsNoLooks for single words (index from get_clip_edit): colour, size (0.5 to 3 times), weight, font, italic, case, highlight, big (the one big word of a Big word caption).
effectNonone, glow, gradient, echo, depth or knockout, or { "type", "color", "color2" }.
italicNo
shadowNofalse, true, or { "color": "#rrggbb", "blur": 0 to 0.5, "offset_y": 0 to 0.3 }.
weightNo100 to 900; snapped to the weights the font has.
clip_idYesThe clip's id (from get_episode, get_job or the Slice link).
outlineNofalse, true, or { "width": 0 to 0.3 (fraction of the font size), "color": "#rrggbb" }.
captionsNoCaptions on or off for the whole clip.
positionNo
caption_yNoThe caption block's centre: a fraction of the frame's height (0.7) or px of 1920 (1340). Kept inside Instagram's safe area. On a clip with scenes from you it holds on every scene.
hide_alsoNoStretches to add to the hidden ones.
appearanceNoHow the words appear: phrase, fade, rise, pop (word by word), bounce, karaoke, word (one at a time), typewriter, punch, slide, sweep, around.
arrangementNoA stacked layout id (list_styles kind "arrangement"), or null to take it off.
line_heightNo0.7 to 2; null for the style's own.
caption_sizeNo
word_spacingNoem, -0.2 to 1; null for the style's own.
size_fractionNoExact caption size: a fraction of the frame height, 0.015 to 0.15 (0.05 is large).
highlight_sizeNoThe highlighted word's size, 0.5 to 3 times the others.
letter_spacingNoem, -0.1 to 0.5; null for the style's own.
words_per_lineNoAt most this many words a caption line, 1 to 7, or "auto".
highlight_blockNoA block behind the highlighted word: false, true, or { "color", "opacity", "padding", "radius" }.
highlight_colorNoThe highlighted word's colour, "#rrggbb".
colour_by_speakerNotrue gives each voice its own colour, false takes it off, or { "<voice>": "#rrggbb" }.

Output Schema

NameRequiredDescriptionDefault
clip_idNo
open_in_sliceNoThe clip in the Slice editor, where the person sees the change.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish that this is a non-read-only, non-destructive, closed-world mutation. The description adds significant behavioral context beyond annotations: changes happen without a render, scope limits the effect to selected words, hide replaces the clip's hidden stretches, reset has specific meanings, and clips with generated scenes follow the change. It stops short of covering permission needs or full reversibility, so it is strong but not exhaustive.

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

Conciseness3/5

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

The when-to-use guidance is front-loaded, and the length is partly justified by 32 parameters. However, nearly all parameter semantics are packed into one run-on paragraph with semicolons and parentheticals, making it hard for an agent to scan and parse the different option groups.

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?

Given the tool's complexity, the description covers the essential decision context, the main parameter families, scoping behavior, hide semantics, reset semantics, and the key sibling alternative. An output schema exists, so the description does not need to explain return values, and the remaining details are handled by the rich input 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 already high, but the description adds domain meaning: style names come from list_styles, size and position accept specific named values, caption_y can keep captions clear of a scene's drawing, hide is for stretches where a scene already shows words, scope applies styling to a word range, and words applies styling to individual words. It covers most parameter groups, though the single dense sentence is less precise than the schema for several nested options.

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?

The description states a specific action and resource: change a made clip's captions look, including style, size, position, colour, effects, and per-word or per-range styling. It explicitly distinguishes itself from restyle_clip, so an agent can identify the correct tool without opening the 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 gives a clear when-to-use condition: the person wants to change an already made clip's captions by hand without a render. It also names the alternative and its selecting condition: use restyle_clip only when a new video should be made straight away.

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