Skip to main content
Glama

Color (write)

color_write
Destructive

Change DaVinci Resolve color state by adding versions, applying DRX grades, managing color groups, setting CDL/node LUTs, exporting LUTs, and encrypting DCTLs; each write is verified by read-back.

Instructions

Change color state; may overwrite current values. Every change is read back from Resolve (receipt.verified=false means it did not take). op.action (params; * = required):

  • add_version(item*, name*, version_type): Add a color version to a clip (Color page; fails from the Edit page).

  • apply_grade_from_drx(target*, path*, grade_mode, apply_to_all_layers, reset_first): Apply a DRX grade to a graph (Color page); replaces the current grade, no new version.

  • assign_to_color_group(group*, items*): Assign clips to an existing color group.

  • create_color_group(name*): Create a color group (the name must be unique).

  • encrypt_dctl(input_path*, output_folder*, name, expiry): Encrypt a DCTL file into an output folder.

  • export_lut(item*, path*, lut_type): Export the grade of a clip as a LUT file (works only from the Color page).

  • load_version(item*, name*, version_type): Make a named color version the active one of a clip.

  • remove_from_color_group(items*): Remove clips from their color group.

  • rename_color_group(name*, new_name*): Rename a color group.

  • rename_version(item*, name*, new_name*, version_type): Rename a color version of a clip.

  • reset_node_colors(item*): Reset the node colors of every node in the active version of a clip.

  • set_cdl(item*, node*, slope, offset, power, saturation): Set CDL slope, offset, power and saturation on a node of a clip.

  • set_node_cache_mode(target*, node*, mode*): Set the render cache mode (auto, enabled, disabled) of a node.

  • set_node_enabled(target*, node*, enabled*): Enable or disable a node of a clip, group or timeline graph.

  • set_node_lut(target*, node*, lut_path*): Set (or clear) a node LUT; files outside the LUT root are installed into it first. Shortcuts (prefer them for whole tasks):

  • workflow_write.apply_look: Apply a LUT to every video item, group them in a color group and grab a still. One call instead of set_node_lut, create_color_group, assign_to_color_group. Calls known in advance (a sequence, the same change on several items): ONE batch_run.

Input Schema

NameRequiredDescriptionDefault
opYes{action, ...params}. Parameters per action: see the description or this server's describe_action tool.
dry_runNotrue: return the planned effect, change nothing.
snapshotNotrue: back up the timeline/project first; omitted: server policy.

Output Schema

NameRequiredDescriptionDefault
jobNo
planNo
statusYes
receiptNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.0.4
    • addedInput schema / properties / dry_run / description
      Added value: +"true: return the planned effect, change nothing."
    • addedInput schema / properties / snapshot / description
      Added value: +"true: back up the timeline/project first; omitted: server policy."
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the warning about overwriting current values is largely redundant with structured data. The description does add genuinely new behavior: changes are read back from Resolve and receipt.verified=false signals the change did not take, plus set_node_lut installs files outside the LUT root. Useful, but the safety profile comes from annotations rather than the text.

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?

Well front-loaded: the overwrite caveat and verification semantics come first, then actions, then shortcuts. The per-action enumeration is long but each line is dense and earns its place across 15 actions; a slight cost is that describe_action is also offered as the parameter reference, creating mild duplication.

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?

Covers a 15-action destructive write tool thoroughly: action inventory, preconditions, verification signal, shortcut alternatives and batching guidance. With an output schema present, no return-value explanation is required, and the receipt.verified note bridges behavior to that output.

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?

The schema's op object is an open bag (additionalProperties=true, only 'action' enumerated), so the description is the sole source of per-action parameter names and which are required (marked with *). Without this list the agent could not construct a valid call, making it high-value beyond the schema.

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?

Opens with a specific verb and resource ('Change color state') and then enumerates all 15 actions with concrete objects (versions, grades, groups, nodes, LUTs). This clearly separates it from color_read and color_delete and lets an agent match an intent to an action 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 Guidelines5/5

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

Explicitly routes the agent: whole-task work should go to workflow_write.apply_look, pre-known sequences or repeated changes to batch_run, and describe_action is named as the parameter reference. It also states preconditions that select/deselect actions (add_version and export_lut 'fail from the Edit page').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.