Skip to main content
Glama

editor composition edit

editor_composition_edit
DestructiveIdempotent

Edit composition elements by stable element ID from the editor snapshot: text content, style and animation. Content/style edits preserve placement timing. Optional edit.structure runs ordered insert/move/remove operations before changes. Group by inserting a group and moving children into it. Supply new unique IDs; beforeId null appends. Move coordinates preserveLocal keeps local style and frame offsets, not world position/time. Remove deletes the subtree. Preview reports affected and removed element IDs. Optional edit.duration sets source frames with explicit placements policy: preserve keeps visible windows and syncs unused tails; resizeAll preserves starts/trims and resizes all active placements. Source windows must fit; invalid shortening is rejected. Shared content changes affect all its placements. Omitted fields stay unchanged; null clears a style override; animation values replace the whole property's animation. Attached presets require explicit detachment. Revision checked; dryRun previews by default.

Input Schema

NameRequiredDescriptionDefault
editYes
dryRunYes
itemIdYes
projectIdYesUUID string.
workspaceIdYes
idempotencyKeyYes
expectedRevisionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior5/5

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

Substantial disclosure beyond annotations: omitted fields stay unchanged, null clears a style override, animation values replace the entire property animation, attached presets require explicit detachment, shared content changes propagate to all placements, move preserveLocal keeps local style/frame offsets rather than world position/time, and remove deletes the subtree. It also covers failure semantics (source windows must fit, invalid shortening rejected) and preview reporting of affected/removed IDs, which goes well past the destructiveHint/idempotentHint annotations.

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 core operation, and nearly every sentence adds a distinct constraint (ordering, ID uniqueness, timing preservation, duration policy, null-clears semantics). The downside is a dense run-on with no paragraph or bullet structure, making it hard to scan, even though little is verifiably wasted.

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?

Return values needn't be covered since an output schema exists, and annotations carry the safety profile. However, for a 7-required-parameter mutation tool with 14% schema coverage, the description leaves the top-level identity and concurrency parameters (itemId, workspaceId, projectId, idempotencyKey, expectedRevision) unexplained, which is a real gap for correct invocation.

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

Parameters3/5

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

Schema description coverage is only 14%, so the description must carry the load. It does explain the deep edit internals well (edit.structure ordering, beforeId null meaning append, edit.duration frames/placements policies, ownership detach requirement) but says nothing about the required top-level itemId, workspaceId, projectId, idempotencyKey, or expectedRevision semantics beyond the terse 'Revision checked'.

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?

States a specific verb and resource ('Edit composition elements by stable element ID from the editor snapshot') and enumerates the edit domains (text content, style, animation, structure). An agent can identify the operation, though overlap with siblings like editor_items_move and editor_items_remove is never explicitly disambiguated.

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?

Usage context is implied throughout ('Group by inserting a group and moving children into it', 'beforeId null appends') but there is no explicit statement of when to prefer this tool over editor_items_move, editor_items_remove, or editor_text_set. Conditions such as revision-checking and dryRun defaulting are stated, so the agent can infer safe usage without being told.

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