Skip to main content
Glama

Set clip properties

set_clip_properties
DestructiveIdempotent

Adjusts a clip. Only the provided fields change. Mix: volume (0–4, 1 = unity; volume keyframes, when the clip has any, override it), fadeInFrames / fadeOutFrames (gain or opacity ramps at the edges). Look: opacity (0–1), blend (normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | add), transform, crop and speed. transform.fit picks how the picture meets the frame before scaling: contain (letterbox, default) | cover (fill + crop overflow) | fill (stretch, ignores aspect). Identity = contain fit; position is offset from centre in timeline pixels (y down), scale multiplies the fitted size, rotationDeg is clockwise about the anchor (a fraction of the cropped picture, 0.5/0.5 = centre). Crop takes fractions off each edge of the source. Retiming: speed (constant rate/direction) and speedKeyframes (source-anchored rate curve; reflows length). Shape masks: masks (full-list replace). disabled parks a clip (it stays but neither renders nor sounds — DaVinci's D). text restyles text clips (mediaRef 'text:'). motion customizes MOTION clips (mediaRef 'motion:') per clip.

Input Schema

NameRequiredDescriptionDefault
cropNoOptional partial crop, fractions 0–1 of the SOURCE off each edge (the inspector shows source pixels). Crop is a window: it cuts pixels away without moving or re-fitting the picture; edges may meet (the picture vanishes).
textNoOptional TEXT clip restyle (clips with mediaRef 'text:'; create them with add_clips). Partial patch: content ( breaks lines), fontFamily (Inter | DM Sans | Space Grotesk | Bebas Neue | Playfair Display | Caveat), sizeFraction (of frame height), bold, italic, color (#rrggbb), align (left|center|right), outlineColor (#rrggbb or null), outlineWidth, backgroundFill (#rrggbb[aa] or null), box {x,y,w,h in frame fractions, centre-based}, animation. wholeCaptionGroup: true restyles every caption sharing the clip's caption group in one edit (content stays per-clip).
blendNoOptional blend mode (see description).
masksNoOptional shape masks, FULL-LIST replace (empty array removes all). Masks UNION (Resolve's additive Power Windows); `invert` flips one mask's coverage. Geometry in fractions of the SOURCE picture, centre 0.5/0.5 — masks ride the clip's transform. Each: {shape: rect|ellipse, center{x,y}, size{x,y}, rotationDeg, feather (fraction of source width), opacity 0–1, invert}.
speedNoOptional retiming (Resolve's Speed Change). rate 1 = 100 % (0.01–50); direction forward | reverse | freeze; freezeFrame = held source frame (offset from trim-in) while frozen; pitchCorrection keeps the audio's pitch. Keyframes stay glued to the pictures (they are source-anchored). Combine with speedRipple: true to rescale the clip so the same source range plays at the new rate and shift everything downstream.
tokenYesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
bypassNoOptional section switches, true = section OFF (its values are kept but not applied) — the inspector's per-section toggles.
clipIdYesClip to modify.
motionNoOptional MOTION clip customization (clips with mediaRef 'motion:<id>'). props: partial patch over the composition's schema-declared props ({key: value}; a key set to null resets it to the composition default). get_motion_composition lists the schema; per-clip values override its defaults.
volumeNoOptional new volume, linear 0–4 (1 = unity, 4 ≈ +12 dB).
denoiseNoAI voice denoise (dry/wet). Setting it (or enabling the section) queues the cached background render for the clip's source file.
opacityNoOptional static opacity 0–1.
disabledNoOptional. True disables the clip (and its A/V link partners): it stays on the timeline but neither renders nor sounds. False re-enables. The multicam angle switch is built on this.
projectIdYesProject id from get_projects.
transformNoOptional partial transform; provided keys replace, others stay.
cropRetainNoOptional. True = Resolve's 'Retain Image Position': the crop window stays fixed in the frame while transforms move the picture underneath it.
motionBlurNoOptional SHUTTER MOTION BLUR from the clip's own movement: each frame is the average of `samples` sub-frame renders spread over the open shutter, each at the position/scale/rotation (keyframes, dynamic zoom, tracking) the clip has at that instant — so a fast move streaks along its path and a still clip stays sharp (and costs nothing extra). {enabled: true} (or just true) turns it on — 6 samples at 180°, the film look, unless the clip already has its own; {enabled: false} (or false) turns it off; a partial setting changes only what it names. Costs one extra draw per sample on frames where the clip moves. Movement INSIDE the picture (footage, a motion composition's own animation) is not blurred — only the clip's transform. Not to be confused with the 'motionBlur' EFFECT (manage_effects): that is a fixed directional blur filter, the same on every frame; use this setting for blur that comes from the clip actually moving.
solidColorNoOptional, solid-colour matte clips only: recolour the matte (#rrggbb). Mattes are created by add_clips/insert_clips with mediaRef 'solid:#rrggbb'.
timelineIdYesTimeline containing the clip.
dynamicZoomNoOptional Ken Burns move (Resolve's Dynamic Zoom): animates the framing from `start` to `end` over the clip's WHOLE duration (retimes when the clip is trimmed). Rects: centre x/y as picture fractions (0.5/0.5 = middle) and scale (1 = whole picture, 0.5 = half → 2× zoom). Setting framing or ease switches it on.
speedRippleNoRipple Timeline for this speed edit (see `speed`).
cropSoftnessNoOptional crop-edge feather, fraction of the source width 0–0.5 (the inspector shows source pixels). Keyframable as 'cropSoftness'.
fadeInFramesNoOptional fade-in length in frames.
fadeOutFramesNoOptional fade-out length in frames.
stabilizationNoOptional stabilization knobs (Resolve's Stabilization). The expensive motion tracking is a per-media analysis — run it with the stabilizer; these values post-process its cached path instantly. mode perspective | similarity | translation; cameraLock kills ALL motion (ignores ratio/smooth); zoom scales up to hide blanking; croppingRatio 0.25–1 (1 allows no correction); smooth 0.25–1; strength -1–1 (negative inverts).
lensDistortionNoOptional Lens Correction Distortion, -1–1. Positive straightens wide-angle barrel distortion, negative adds it. 0 = none.
speedKeyframesNoOptional source-anchored speed keyframes (forward-direction clips only): [{atSourceFrame, rate}], rate 1 = 100 %. Rate is CONSTANT between points (held outside). Present, it replaces `speed.rate` AND REFLOWS the clip's timeline length to keep the same source window (slower ⇒ longer); the A/V link group retimes together. EMPTY array clears the curve (back to the constant rate).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / volume / description
      Previous value: -"Optional new volume (0–2)."New value: +"Optional new volume, linear 0–4 (1 = unity, 4 ≈ +12 dB)."
  2. Changed1 schema field changed
    • addedInput schema / properties / motionBlur
      Added value: +{
      +  "description": "Optional SHUTTER MOTION BLUR from the clip's own movement: each frame is the average of `samples` sub-frame renders spread over the open shutter, each at the position/scale/rotation (keyframes, dynamic zoom, tracking) the clip has at that instant — so a fast move streaks along its path and a still clip stays sharp (and costs nothing extra). {enabled: true} (or just true) turns it on — 6 samples at 180°, the film look, unless the clip already has its own; {enabled: false} (or false) turns it off; a partial setting changes only what it names. Costs one extra draw per sample on frames where the clip moves. Movement INSIDE the picture (footage, a motion composition's own animation) is not blurred — only the clip's transform. Not to be confused with the 'motionBlur' EFFECT (manage_effects): that is a fixed directional blur filter, the same on every frame; use this setting for blur that comes from the clip actually moving.",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    },
      +    "samples": {
      +      "description": "Sub-frame samples, integer 2–8 (default 6).",
      +      "type": "number"
      +    },
      +    "shutterAngle": {
      +      "description": "Degrees, >0–360 (default 180; 360 = open the whole frame).",
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

With annotations already declaring a destructive, idempotent mutation, the description adds substantial behavioral context: only supplied fields change, volume keyframes override volume, speedKeyframes reflows timeline length, masks are a full-list replace, and disabled keeps the clip while removing render/audio. There is no contradiction with the annotations.

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

Conciseness5/5

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

Dense but appropriately sized for a 27-parameter clip-property tool; it front-loads the purpose and partial-patch rule, then organizes details under Mix, Look, Retiming, masks, and special clip types. Every sentence carries operational meaning.

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?

Given the extremely rich input schema and mutation annotations, the description covers the main semantic categories and special cases needed to call the tool correctly. It does not explain return or error behavior, but no output schema exists and annotations cover the safety profile, so the remaining gap is minor.

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 the schema carries most parameter documentation; the top-level description still adds useful semantics for transform.fit identity, position units, scale/rotation anchor, crop fractions, and speed vs speedKeyframes. It does not add much for the remaining parameters, but the schema already does.

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?

Names a specific verb and resource ('Adjusts a clip') and clarifies scope with 'Only the provided fields change.' It enumerates Mix, Look, Retiming, masks, disabled, text, and motion, but does not explicitly name sibling operations like move_clips or trim_clips, so differentiation is implicit rather than explicit.

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?

Makes the partial-patch contract clear and gives conditional use cases: text clips via mediaRef 'text:', MOTION clips via mediaRef 'motion:<id>', disabled parks a clip, and masks replace the full list. It stops short of explicitly saying when to choose this over move_clips, trim_clips, or manage_effects.

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