Skip to main content
Glama

Apply edit batch

apply_edit_batch

PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Apply a complete group of ordinary edits atomically, with no render wait. Read get_edl first; base_version must be current. operation_id is a unique 16-80 character retry id (letters/digits/hyphens/underscores); reuse it on transport retry. Each operation is {action,layer,value?,id?}. set replaces one complete layer; upsert patches or adds a named item; remove deletes a named item; reorder accepts all insert ids for a canvas sequence. Layers: keep,speed,inserts,frame,captions,caption_mutes,texts,vectors,music,sfx,voiceover,volume,master,effects,overlays,canvas,motion (motion graphics by id: {id,template,start,end,params}; graphics placed this way are silent and cannot sit behind the subject — use add_motion_graphic for those). Use existing EDL field shapes and project media keys. All times describe the RESULTING timeline: include dependent caption/music/text timing changes in the same batch. Unknown fields or invalid media reject the whole batch. This saves an edit; it does not certify picture/audio quality. Review changed moments, then the finished edit. Layer fx holds the creative devices (silhouette flashes, punctuation frames, junctions, grade windows, finishes) by id: read_skill('devices') for their exact shapes.

Input Schema

NameRequiredDescriptionDefault
operationsYes
project_idYesRequired immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess.
base_versionYes
operation_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / operations / items / properties / layer / enum
      Previous value: -[
      -  "keep",
      -  "speed",
      -  "inserts",
      -  "frame",
      -  "captions",
      -  "caption_mutes",
      -  "texts",
      -  "vectors",
      -  "music",
      -  "sfx",
      -  "voiceover",
      -  "volume",
      -  "master",
      -  "effects",
      -  "overlays",
      -  "canvas",
      -  "motion"
      -]New value: +[
      +  "keep",
      +  "speed",
      +  "inserts",
      +  "frame",
      +  "captions",
      +  "caption_mutes",
      +  "texts",
      +  "vectors",
      +  "music",
      +  "sfx",
      +  "voiceover",
      +  "volume",
      +  "master",
      +  "effects",
      +  "overlays",
      +  "canvas",
      +  "motion",
      +  "fx"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / operations / items / properties / layer / enum
      Previous value: -[
      -  "keep",
      -  "speed",
      -  "inserts",
      -  "frame",
      -  "captions",
      -  "caption_mutes",
      -  "texts",
      -  "vectors",
      -  "music",
      -  "sfx",
      -  "voiceover",
      -  "volume",
      -  "master",
      -  "effects",
      -  "overlays",
      -  "canvas"
      -]New value: +[
      +  "keep",
      +  "speed",
      +  "inserts",
      +  "frame",
      +  "captions",
      +  "caption_mutes",
      +  "texts",
      +  "vectors",
      +  "music",
      +  "sfx",
      +  "voiceover",
      +  "volume",
      +  "master",
      +  "effects",
      +  "overlays",
      +  "canvas",
      +  "motion"
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / operations / items / properties / id / description
      Added value: +"Existing item id for upsert/remove; omit for whole-layer set."
    • addedInput schema / properties / operations / items / properties / layer / enum
      Added value: +[
      +  "keep",
      +  "speed",
      +  "inserts",
      +  "frame",
      +  "captions",
      +  "caption_mutes",
      +  "texts",
      +  "vectors",
      +  "music",
      +  "sfx",
      +  "voiceover",
      +  "volume",
      +  "master",
      +  "effects",
      +  "overlays",
      +  "canvas"
      +]
    • addedInput schema / properties / operations / items / properties / value / description
      Added value: +"set: complete layer value (array for texts/inserts/music). upsert: one item object merged by id. reorder: all insert ids. Read get_edl for exact shapes."
  4. Added

TDQS

A4.5/5.0
Behavior5/5

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

Despite annotations covering the safety profile, the description adds substantial behavior beyond them: atomic all-or-nothing semantics, no render wait, that unknown fields or invalid media reject the entire batch, that operation_id is a retry id to be reused on transport failure, that times describe the RESULTING timeline, and that motion graphics placed here are silent and cannot sit behind the subject. It even sets expectations honestly ('saves an edit; it does not certify picture/audio quality') and points to read_skill('devices') for layer fx shapes.

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?

It is front-loaded with the scope constraint and the core action, and every sentence carries information relevant to calling the tool correctly. It is dense and long, with several heavily parenthesized clauses, but for a tool with four interlocking required parameters and 18 layers the length is largely earned rather than padded.

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 complex atomic-mutation tool with no output schema and thin schema descriptions, the definition covers scope, prerequisite read, retry semantics, failure mode, action semantics, layer set, timeline-coordinate convention, and the fact that project identity is returned. It deliberately defers exact value shapes to get_edl and read_skill, which is the right place for that detail, leaving no operationally necessary gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 25%, the description carries the burden and does so well: it specifies operation_id's character class and 16-80 length, that base_version must be current, the {action,layer,value?,id?} operation shape, the meaning of each action (set replaces one complete layer; upsert patches or adds by id; remove deletes by id; reorder takes all insert ids), and enumerates the layers with anchor semantics (motion by id, fx by id). This goes well beyond what the schema itself documents.

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?

The description states a specific verb and resource ('Apply a complete group of ordinary edits atomically, with no render wait') and scopes it explicitly to the project (PROJECT-SCOPED, acts only on project_id). It is clear what the tool does, but it never names its closest sibling 'apply_short_edit_batches', leaving the agent to infer the boundary between the two batch tools.

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 gives real prerequisites ('Read get_edl first; base_version must be current') and routes one specific case to an alternative ('graphics placed this way are silent and cannot sit behind the subject - use add_motion_graphic for those'). However, it offers no guidance on when to choose this over the per-layer siblings (set_text, add_music, etc.) or over apply_short_edit_batches, so the primary selection decision is left implicit.

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.