v2.28.0
DaVinci Resolve MCP Server v2.28.0
Structural timeline diffing, a declarative project spec you can apply, a
project health check, a clip query DSL, and machine-readable error context.
Highlights
See exactly what an edit changed — timeline version diff
Comparing two archived timeline versions now reports the clips that were
added, removed, moved, and trimmed, with summary counts and before/after
clip totals. Clips are aligned by a rename-stable identity, so a reordered or
renamed clip reads as a move or change — not a delete-and-re-add.
timeline_versioning(action="diff_versions", timeline_name, from_version, to_version)
→{added, removed, moved, trimmed, summary}- Control panel:
GET /api/timeline_versions/diff?timeline_name=&from_version=&to_version=
Reproducible project setup — declarative spec + apply
Describe a project's desired settings, color preset, timelines, and markers in a
project.dvr.yaml (or .json) and reconcile the live project toward it. Apply
is idempotent (running twice is a no-op) and you can preview every change
first.
project: MyShow
color_preset: rec709_gamma24
settings:
timelineFrameRate: "24"
timelines:
- name: Edit_v2
fps: 24
markers:
- { frame: 0, color: Blue, name: HEAD }- MCP (
project_manager):diff_to_spec,plan_spec,apply_spec(dry_run?, run_hooks?, continue_on_error?) - CLI:
davinci-resolve-mcp batch plan-spec SPECand
davinci-resolve-mcp batch apply SPEC [--dry-run] [--run-hooks] [--continue-on-error] - Color/HDR settings apply in dependency order; markers are only added when
absent; explicitsettingsoverride the namedcolor_preset; before/after
shell hooks are opt-in viarun_hooks.
Project health check — lint
project_manager(action="lint") returns a graded issue list (error / warning /
info): no project, no current timeline, mixed frame rates, empty timelines,
unset render format, unmanaged color science, offline media, and unanalyzed
clips. A fast pre-flight before an editing session.
Find clips in one call — clip_where
timeline(action="clip_where", ...) returns the clips on the current timeline
matching named filters (AND) instead of walking tracks by hand. Live filters:
track_type, track_index, name_contains, duration_lt, duration_gt. A
mistyped filter name is rejected rather than silently matching everything.
Machine-readable error context
Structured error responses can now carry an optional state object — a snapshot
of the relevant values at failure time — so callers can react without parsing
message text. All existing error fields are unchanged.
Compatibility
- Backward compatible. No tools, actions, or parameters were renamed or removed.
diff_versionskeeps its existingadded/removed/movedkeys and adds
trimmed+summary.
Notes
apply_specis the only new mutating path; it auto-checkpoints via the
existing timeline-versioning safeguards and supportsdry_run.