Skip to main content
Glama

Create, change, delete or publish a preset

manage_preset
Destructive

Free, needs a key. Saves your own looks for reuse. action create: type custom saves a full caption style (name + style, or basePreset + overrides; returns id custom:cp_...); type brand saves a font/color/position/logo overlay (returns brandPresetId). action update: changes a custom preset in place (overwrites). action delete: permanently removes a custom or brand preset by id. action submit: proposes a custom preset for the public community gallery (moderated; visible to everyone once approved). Check a style first with get_presets action validate.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "manage_preset"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNoPreset id: cp_... or custom:cp_... as returned by manage_preset {action:'create', type:'custom'} / get_presets {type:'custom'}.
nameNoDisplay name (max 80 characters).
tagsNoUp to 8 gallery tags, max 24 characters each (e.g. bold, podcast).
typeNocustom (default) or brand. Used by create and delete.
colorNoCaption text color as #RRGGBB.
styleNoFull caption style JSON, the same document get_catalog {kind:'presets'} returns in style and the web editor stores: fontFamily, fontWeight, fontSize (px at 720p), color, strokeWidth/strokeColor, backgroundEnabled/backgroundColor/backgroundOpacity/paddingX/paddingY/borderRadius, shadow*, position (top|center|bottom), margin, subtitleWidth, textTransform, letterSpacing, revealMode (none|full|progressive|word-by-word), animationEnabled + animation (Fade|Zoom In|Zoom Out|Slide Up|Slide Down), motion*, wordStateStyles {active|past|upcoming|future: partial style}, wordHighlights {rules,customLists}, smartEmphasis, segmentColorCycle. Unknown fields are rejected. fontFamily (also inside wordStateStyles) must be a bundled font: Inter, Poppins, Oswald, Roboto, Anton, Bebas Neue, Playfair Display, Caveat, IBM Plex Mono (get_catalog {kind:'presets'} returns fonts). Caption forms: maxWordsPerCaption 1-8 (1 = one big word at a time; wins over the autoFit words cap). activeWordReflow true = a scaled active word pushes neighbours aside. wordEntrance bounce|slide-up|fade (+ wordEntranceDuration seconds) animates each word when spoken. positionMode cycle|keyword (+ positionCycle [top|center|bottom], positionKeywords [words], keywordPosition) moves captions, always inside the safe zone. captionLayout stacked = poster, one word per line with a bigger hero word (posterHeroScale 1-3). faceAvoid true = burns detect faces and move captions off them; the result returns faceAvoid.faceLayout, store it as style.faceLayout to reuse.
actionYescreate, update (custom only), delete or submit (custom only, to the public gallery).
authorNoPublic credit, e.g. the agent or person name. Default 'AI agent'.
api_keyNoOnly for a connection without an Authorization header: the token create_key returned (av_live_...). Pass it on every call to use that key in this same session, no reconnect or config change. Ignored when the connection already sends a key. It works like a password: create a new key if this conversation is shared.
positionNoCaption position: top, center or bottom.
overridesNoStyle fields to change on top of basePreset (or of style).
basePresetNoStart from this preset (id, slug, name, or custom:cp_...) instead of a full style.
fontFamilyNoOne of the bundled fonts: Inter, Poppins, Oswald, Roboto, Anton, Bebas Neue, Playfair Display, Caveat, IBM Plex Mono.
logoBase64NoOptional logo as base64 PNG, JPEG or WebP under 1 MB, drawn on videos burned with this brand preset.
descriptionNoShort description shown with the preset (max 500 characters).
previewTextNoSample caption text for the gallery preview (max 140 characters).

Output Schema

NameRequiredDescriptionDefault
totalNoTotal number of items (paginated lists).
resultNoThe value, when the tool returns something other than an object.
hasMoreNotrue when more items are available (paginated lists).
nextCursorNoPass as cursor for the next page (paginated lists).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / api_key
      Added value: +{
      +  "description": "Only for a connection without an Authorization header: the token create_key returned (av_live_...). Pass it on every call to use that key in this same session, no reconnect or config change. Ignored when the connection already sends a key. It works like a password: create a new key if this conversation is shared.",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, yet the description still adds per-action consequences: update 'overwrites' in place, delete is 'permanently' removed, submit enters a moderated gallery that becomes 'visible to everyone once approved,' and it states the key requirement up front. It does not cover rate limits, whether delete is reversible, or moderation turnaround.

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 cost/auth constraint, then structured as action: behavior clauses, which is easy to scan. Every clause earns its place, though the terse opening 'Free, needs a key' is slightly telegraphic and the last sentence could sit earlier as a precondition.

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 16-parameter, four-action mutation tool with an output schema and full schema description coverage, the description covers all four modes, the id formats needed for subsequent calls, the public-visibility consequence of submit, and points to get_presets for validation. Return values need not be explained given the 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?

With 100% schema description coverage the baseline is 3, but the description adds real chaining meaning: create returns an id of the form custom:cp_... for custom presets and a brandPresetId for brand presets, and it explains the basePreset + overrides composition versus supplying a full style. It stays high level on how the parameters map per action, which the schema carries.

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 gives a specific verb-plus-resource framing ('Saves your own looks for reuse') and then enumerates the four concrete operations with their distinct effects: create (custom caption style vs. brand overlay), update (in place, overwrites), delete (permanent removal), submit (proposes to a moderated public gallery). An agent can distinguish this from get_presets or get_catalog purely from the text.

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

Usage Guidelines4/5

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

It explicitly routes the validation case elsewhere: 'Check a style first with get_presets action validate,' and the schema's action description flags update/submit as custom-only. What's missing is guidance on when to create versus update (i.e. whether an existing id should be patched), so context is clear but not exhaustive.

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