Skip to main content
Glama

Grade a Clip in the Edit

lab_grade_clip
Idempotent

Set the colour grade of ONE clip in the edit (Murnau), or of the whole programme with programm: true. It is the same grade a colourist sets in Murnau's colour workspace, and the export uses it: Murnau bakes the export LUTs when you set it. Only the fields you send change (zuruecksetzen: true starts from neutral). Fields and ranges, as the sliders: exposure in stops (−5..5); contrast, saturation, temperature, tint −100..100; hue −180..180; lift/gamma/gain/offset as {x, y, master}, each −1..1 (x/y move the colour wheel); log as {shadow|midtone|highlight: {x, y, master}} — the Log wheels in ACEScct, each acting only on its range of brightness (shadows below ~4 % linear, highlights above ~50 %), master ±1 ≈ ±2 stops there; schritte as a list (≤ 8) of further grades with the same fields (plus name), applied in series after this grade — serial nodes; creative and sek stay on the grade itself; hdr as {dark|shadow|light|highlight: {x, y, master}} — HDR zone wheels centred −3/−1/+1/+3 stops around 18 % grey, master ±1 ≈ ±1.5 stops; curves as {master|r|g|b: [[x,y],…]} 0..1; boost, shadows, highlights −100..100; intensity 0..100 (0 = original). Per clip also sek — a secondary correction: {qualifier: {hueCenter, hueWidth, satLow, satHigh, lumLow, lumHigh, softness, invert}, fenster: [{form: kreis|rechteck|verlauf|polygon|bezier, cx, cy, rx, ry, winkel, weich, invert, modus: add|sub, punkte (polygon/bezier only: 3–16 resp. 3–12 [x, y] in the window's own unit space, scaled by rx/ry and turned by winkel — bezier draws a smooth closed curve through them)}], grade: {saturation, exposure, temperature, tint, hue, schutz}} — schutz 0..100 takes the clip's and the programme's grade back inside the selection (100 = ungraded there, e.g. to protect skin); sek: null removes it. Any level also takes warper — the Color Warper: {huesat|chromalum: {res: 6|12|24, punkte: [[i, j, dx, dy], …]}}; node (row i, column j) sits at (j/res, i/res) and is moved by (dx, dy) in −1..1. huesat plane: x = 0.5 + 0.5·sat·cos(hue), y = 0.5 + 0.5·sat·sin(hue) (lightness kept); chromalum plane: x = sat, y = 1 − lightness (hue kept). Only moved nodes; warper: null removes it. Call WITHOUT grade to list the clips (clip_id, start/end, current grade, input profile) and the programme grade. Measure first and after with lab_scopes — its vorschlag.grade is a computed correction you can pass here as grade. Writes state, costs nothing.

Input Schema

NameRequiredDescriptionDefault
gradeNoFields to set — see description; omit to list clips and grades
presetNoSoft highlight shoulder (master curve only, saturation untouched) for AI-generated video; fields in `grade` override it; pair with Mid Detail −10 in the editor for a softer look (measured: −19 % fine-detail energy).
seq_idYesSequence id — positive integer as string (lab_list_sequences)
clip_idNoThe clip to grade (from the listing); omit with programm:true
programmNoGrade the whole programme instead of one clip
zuruecksetzenNoStart from a neutral grade before applying `grade`

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / preset
      Added value: +{
      +  "description": "Soft highlight shoulder (master curve only, saturation untouched) for AI-generated video; fields in `grade` override it; pair with Mid Detail −10 in the editor for a softer look (measured: −19 % fine-detail energy).",
      +  "enum": [
      +    "ki_video_weich"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  3. Added

TDQS

A4.2/5.0
Behavior4/5

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

Goes well past the annotations by disclosing a real side effect — Murnau bakes the export LUTs on set — plus partial-update semantics ('Only the fields you send change'), neutral-reset behavior, and clip-vs-programme propagation via `schutz`. Consistent with destructiveHint=false and idempotentHint=true, though no auth/permission or failure behavior is covered.

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

Conciseness3/5

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

Front-loaded correctly and nearly every clause carries real information, but the body is a single dense run-on paragraph mixing scope, ranges, warper geometry, and qualifier windows, making it hard to scan. Some framing ('the same grade a colourist sets in Murnau's colour workspace', the measured −19% detail plug) could be trimmed without loss.

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 6-parameter tool with deeply nested payloads and no output schema, the description covers the listing return shape (clip_id, start/end, grade, input profile), preset interaction with `grade`, and every nested sub-structure. Nothing an agent needs to invoke it correctly is missing.

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 exposes `grade` as an opaque open object, so the description carries semantics the schema cannot: numeric ranges for exposure/contrast/hue, wheel structures for lift/gamma/gain/offset, log-wheel behavior per brightness range, HDR zone centres, curve domains, and the serial `schritte` limit of 8. The Color Warper coordinate math (node at (j/res, i/res), plane formulas) is genuinely beyond anything structured.

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 opening sentence names a specific verb and resource ('Set the colour grade of ONE clip in the edit'), and draws the clip-vs-programme scope boundary with `programm: true`. It does not differentiate itself from near-name siblings such as lab_grade, lab_grade_suggest, or lab_grade_from_resolve, so an agent must still infer which grading tool to pick.

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?

Strong when-to-use cues: call without `grade` to list clips first, use `programm: true` for the whole programme, run lab_scopes before and after and pass its `vorschlag.grade` back in, and `sek: null` / `warper: null` to remove. The gap is that no alternative grading tools are named or excluded, so sibling selection is left unguided.

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