Skip to main content
Glama

Apply an ordered batch of native design edits

apply_design_batch
Destructive

Apply an ordered list of the individually exposed design tools to one design, updating state between edits and rendering one final preview. The tools[].tool enum lists every supported native name; each schema branch identifies its standalone counterpart and exact compatibility aliases. Operations are text/image addition, text edits, move/resize/rotate/align/duplicate/delete, crop, background removal, flip, original/background restoration, artwork generation and photoshoot. Use explicit elementId/areaId and native text/asset/placement/options objects; standalone workflow shorthand is not normalized inside a batch. May overwrite or delete content. Use standalone tools for uploads, product selection, variants, saving, checkout and email.

Input Schema

NameRequiredDescriptionDefault
optionsNoExisting arguments; advanced fields/aliases remain accepted. Supplied design patches can overwrite session content; preview/rendering can fetch public image URLs in those designs. Catalogue/session results include the full designArgumentSchema.
subjectYesThe exact subject returned by start_design_session.
requestIdYesGenerate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
sessionTokenYesThe private expiring capability returned by start_design_session. Do not publish it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / options / properties / tools / items / anyOf
      Previous value: -[
      -  {
      -    "description": "Native edit for the standalone add_text tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "add_text"
      -        ]
      -      }
      -    },
      -    "title": "add_text"
      -  },
      -  {
      -    "description": "Native edit for the standalone update_text tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "update_text"
      -        ]
      -      }
      -    },
      -    "title": "update_text"
      -  },
      -  {
      -    "description": "Native edit for the standalone add_image tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "add_image"
      -        ]
      -      }
      -    },
      -    "title": "add_image"
      -  },
      -  {
      -    "description": "Native edit for the standalone generate_artwork tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "generate_artwork"
      -        ]
      -      }
      -    },
      -    "title": "generate_artwork"
      -  },
      -  {
      -    "description": "Native edit for the standalone move_element tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "move_element"
      -        ]
      -      }
      -    },
      -    "title": "move_element"
      -  },
      -  {
      -    "description": "Native edit for the standalone resize_element tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "resize_element"
      -        ]
      -      }
      -    },
      -    "title": "resize_element"
      -  },
      -  {
      -    "description": "Native edit for the standalone rotate_element tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "rotate_element"
      -        ]
      -      }
      -    },
      -    "title": "rotate_element"
      -  },
      -  {
      -    "description": "Native edit for the standalone align_element tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "align_element"
      -        ]
      -      }
      -    },
      -    "title": "align_element"
      -  },
      -  {
      -    "description": "Native edit for the standalone duplicate_element tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "duplicate_element"
      -        ]
      -      }
      -    },
      -    "title": "duplicate_element"
      -  },
      -  {
      -    "description": "Native edit for the standalone delete_element tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "delete_element"
      -        ]
      -      }
      -    },
      -    "title": "delete_element"
      -  },
      -  {
      -    "description": "Native edit for the standalone remove_background tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "remove_background"
      -        ]
      -      }
      -    },
      -    "title": "remove_background"
      -  },
      -  {
      -    "description": "Native edit for the standalone crop_image tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "crop_image"
      -        ]
      -      }
      -    },
      -    "title": "crop_image"
      -  },
      -  {
      -    "description": "Native edit for the standalone flip_image tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "flip_image"
      -        ]
      -      }
      -    },
      -    "title": "flip_image"
      -  },
      -  {
      -    "description": "Native edit for the standalone restore_original_image tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "restore_original_image"
      -        ]
      -      }
      -    },
      -    "title": "restore_original_image"
      -  },
      -  {
      -    "description": "Native edit for the standalone ai_photoshoot tool.",
      -    "properties": {
      -      "tool": {
      -        "enum": [
      -          "ai_photoshoot"
      -        ]
      -      }
      -    },
      -    "title": "ai_photoshoot"
      -  },
      -  {
      -    "description": "Existing native operation aliases retain their normal behavior and permission checks; this metadata does not create additional operations.",
      -    "properties": {
      -      "tool": {
      -        "not": {
      -          "enum": [
      -            "add_text",
      -            "update_text",
      -            "add_image",
      -            "move_element",
      -            "resize_element",
      -            "rotate_element",
      -            "align_element",
      -            "duplicate_element",
      -            "delete_element",
      -            "crop_image",
      -            "remove_background",
      -            "flip_image",
      -            "restore_original_image",
      -            "generate_artwork",
      -            "ai_photoshoot"
      -          ]
      -        },
      -        "type": "string"
      -      }
      -    },
      -    "title": "Existing native compatibility names"
      -  }
      -]New value: +[
      +  {
      +    "description": "Standalone tool: add_text. Add a new text object using native text options.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "add_text"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "add_text"
      +  },
      +  {
      +    "description": "Standalone tool: update_text. Edit the selected text object using native text or element fields.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "update_text"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "update_text"
      +  },
      +  {
      +    "description": "Standalone tool: add_image. Add artwork; add_asset is the existing name for the same native operation.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "add_image",
      +          "add_asset"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "add_image"
      +  },
      +  {
      +    "description": "Standalone tool: move_element. Edit the selected element's placement or supplied element/text/asset properties. update_element uses exactly the same native editor as move_element, resize_element, rotate_element and align_element.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "move_element",
      +          "update_element"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "move_element"
      +  },
      +  {
      +    "description": "Standalone tool: resize_element. Change the selected element's dimensions with native placement or element fields.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "resize_element"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "resize_element"
      +  },
      +  {
      +    "description": "Standalone tool: rotate_element. Change the selected element's rotation with native placement or element fields.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "rotate_element"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "rotate_element"
      +  },
      +  {
      +    "description": "Standalone tool: align_element. Change the selected element's position with explicit native placement coordinates.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "align_element"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "align_element"
      +  },
      +  {
      +    "description": "Standalone tool: duplicate_element. Duplicate the selected element.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "duplicate_element"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "duplicate_element"
      +  },
      +  {
      +    "description": "Standalone tool: delete_element. Delete the selected element.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "delete_element"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "delete_element"
      +  },
      +  {
      +    "description": "Standalone tool: crop_image. Crop the selected image. These compatibility names all use the native crop operation and its supplied crop fractions.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "crop_image",
      +          "crop_edge_lines",
      +          "crop_edge_borders",
      +          "remove_letterbox_bars",
      +          "crop_letterbox_bars",
      +          "trim_letterbox_bars",
      +          "trim_image_edge_lines",
      +          "trim_image_edge_borders"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "crop_image"
      +  },
      +  {
      +    "description": "Standalone tool: remove_background. Remove an image background. Preserve-box names set preserveImageBox/preserveReplacementBox/fitInsidePreviousBox. Colour-key/solid/shirt-colour names apply an already processed options.replacementUrl; the standalone remove_background tool also supports the colour_key method. These are background-removal modes, not additional unrelated operations.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "remove_background",
      +          "remove_background_content_aware",
      +          "remove_background_ai",
      +          "content_aware_background",
      +          "remove_background_preserve_box",
      +          "preserve_image_box",
      +          "remove_background_preserve_image_box",
      +          "remove_background_by_colour",
      +          "remove_background_by_color",
      +          "remove_background_colour_key",
      +          "remove_background_color_key",
      +          "remove_background_colour_key_centre_protected",
      +          "remove_background_color_key_center_protected",
      +          "colour_key_centre_protect",
      +          "color_key_center_protect",
      +          "remove_solid_background",
      +          "remove_shirt_colour_background",
      +          "remove_shirt_color_background",
      +          "colour_key_background",
      +          "color_key_background"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "remove_background"
      +  },
      +  {
      +    "description": "Standalone tool: flip_image. Flip the selected image. flip_image uses options.direction; horizontal/vertical compatibility names select that direction.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "flip_image",
      +          "flip_horizontal",
      +          "flip_vertical"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "flip_image"
      +  },
      +  {
      +    "description": "Standalone tool: restore_original_image. Recover the retained original upload for the exact element while preserving valid crop/flip modifiers and placement.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "restore_original_image"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "restore_original_image"
      +  },
      +  {
      +    "description": "Standalone tool: restore_background. Restore the current original image source, disable background removal and clear image modifiers while preserving placement.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "restore_background"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "restore_background"
      +  },
      +  {
      +    "description": "Standalone tool: generate_artwork. Generate artwork from options.prompt or value, using the existing allowance.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "generate_artwork"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "generate_artwork"
      +  },
      +  {
      +    "description": "Standalone tool: ai_photoshoot. Create an illustrative AI photoshoot; live_ai_photoshoot names the same native operation.",
      +    "properties": {
      +      "tool": {
      +        "enum": [
      +          "ai_photoshoot",
      +          "live_ai_photoshoot"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool"
      +    ],
      +    "title": "ai_photoshoot"
      +  }
      +]
    • addedInput schema / properties / options / properties / tools / items / properties / element
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Existing AgenticDesignToolRequest.element patch for the selected element, including text/style, image source and placement fields. Preserve unrelated returned element fields.",
      +  "type": "object"
      +}
    • changedInput schema / properties / options / properties / tools / items / properties / tool / description
      Previous value: -"Native operation listed below. Existing native compatibility names (for example flip_horizontal, flip_vertical, add_asset, update_element and crop_edge_lines) remain accepted. Workflow-only verbs such as checkout, designkey, load or select_product do not run in this batch."New value: +"Select one of these finite native operations or compatibility names. Every operation has an independently exposed tool identified in its schema branch. Checkout, designkey, load and select_product do not run in this batch."
    • addedInput schema / properties / options / properties / tools / items / properties / tool / enum
      Added value: +[
      +  "add_text",
      +  "update_text",
      +  "add_image",
      +  "add_asset",
      +  "move_element",
      +  "update_element",
      +  "resize_element",
      +  "rotate_element",
      +  "align_element",
      +  "duplicate_element",
      +  "delete_element",
      +  "crop_image",
      +  "crop_edge_lines",
      +  "crop_edge_borders",
      +  "remove_letterbox_bars",
      +  "crop_letterbox_bars",
      +  "trim_letterbox_bars",
      +  "trim_image_edge_lines",
      +  "trim_image_edge_borders",
      +  "remove_background",
      +  "remove_background_content_aware",
      +  "remove_background_ai",
      +  "content_aware_background",
      +  "remove_background_preserve_box",
      +  "preserve_image_box",
      +  "remove_background_preserve_image_box",
      +  "remove_background_by_colour",
      +  "remove_background_by_color",
      +  "remove_background_colour_key",
      +  "remove_background_color_key",
      +  "remove_background_colour_key_centre_protected",
      +  "remove_background_color_key_center_protected",
      +  "colour_key_centre_protect",
      +  "color_key_center_protect",
      +  "remove_solid_background",
      +  "remove_shirt_colour_background",
      +  "remove_shirt_color_background",
      +  "colour_key_background",
      +  "color_key_background",
      +  "flip_image",
      +  "flip_horizontal",
      +  "flip_vertical",
      +  "restore_original_image",
      +  "restore_background",
      +  "generate_artwork",
      +  "ai_photoshoot",
      +  "live_ai_photoshoot"
      +]
    • removedInput schema / properties / options / properties / tools / items / properties / tool / examples
      Removed value: -[
      -  "add_text",
      -  "update_text",
      -  "add_image",
      -  "move_element",
      -  "resize_element",
      -  "rotate_element",
      -  "align_element",
      -  "duplicate_element",
      -  "delete_element",
      -  "crop_image",
      -  "remove_background",
      -  "flip_image",
      -  "restore_original_image",
      -  "generate_artwork",
      -  "ai_photoshoot"
      -]
    • addedInput schema / properties / options / properties / tools / items / required
      Added value: +[
      +  "tool"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / options / description
      Previous value: -"Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema."New value: +"Existing arguments; advanced fields/aliases remain accepted. Supplied design patches can overwrite session content; preview/rendering can fetch public image URLs in those designs. Catalogue/session results include the full designArgumentSchema."
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

The description adds real behavior beyond the annotations: edits are applied in order with state passed between them, one final preview is rendered, and content 'may overwrite or delete' (the annotations already declare destructiveHint=true, so this is additive reinforcement rather than the only signal). It does not say how failures mid-batch are handled, which matters for a destructive, non-idempotent tool.

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 distinction that matters most (batch vs standalone), then capability list, then input rules, then exclusions. The middle capability enumeration partially duplicates the enum list in the schema, but the ordering is sensible and there is little filler.

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?

For a tool with 47 enum branches, no output schema and destructive semantics, the description correctly delegates detail to the schema branches while covering ordering, single-preview rendering, shorthand limitations and excluded operations. It does not describe what the response contains per item or whether partial success is reported, which is the remaining 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 100%, so baseline is 3; the description earns above that by adding a constraint the schema implies but never states — only explicit elementId/areaId with native text/asset/placement/options objects are accepted, and standalone shorthand is not normalized. It also points the reader to the per-branch mapping between enum names and their standalone counterparts.

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?

States a specific verb and resource ('Apply an ordered list of the individually exposed design tools to one design') plus the key scope trait: state is chained between edits and only one final preview is rendered. An agent can distinguish it from single-operation siblings like move_element or delete_element 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 Guidelines4/5

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

Explicitly routes away from the batch for uploads, product selection, variants, saving, checkout and email, and warns that standalone workflow shorthand is not normalized inside a batch. It does not spell out the inverse case (when a batch is preferable to two standalone calls beyond the single-preview hint), so it falls short of the highest bar.

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