samuelgursky / resolve-fusion
Fusion composition work in the DaVinci Resolve MCP. Apply when building or editing Fusion comps — titles, motion graphics, VFX, merges, masks, trackers — on a timeline item live in a running Resolve OR authoring a .comp declaratively offline. Routes to the live fusion_comp tools and the offline fusion authoring tool.
Resolve Fusion
Thin router; depth stays in the kernel.
Live tool mechanics —
docs/kernels/fusion-composition-kernel.md(thefusion_compboundary).- Offline authoring —
resolve-advanced/README.md→ thefusiontool.
Live subtitle effects
Discover installed factory titles/subtitle presets withtimeline_ai.list_title_presets. For subtitle-track effects use livetimeline_ai.set_subtitle_preset with a preset name or full template ID; omitpreset to adjust the current effect. Common literal inputs cover font/style,
size/position and text RGBA. Highlight/outline mappings are Word Highlight-specific.
Unmapped or connected/animated controls are refused. Other installed subtitle
presets are captured natively in a temporary title timeline and applied through
DRT interchange; the original edit remains recoverable. Ordinary Fusion titles
use timeline.insert_fusion_title with the full template ID, then scopedfusion_comp probes/input writes. Keep Resolve open and inspect native rendered
frames. Do not route routine effects to Project.db. Unbundled dry runs need an
existing preset_reference to avoid live capture. Caption text/timing corrections
can use live UI; direct DB maintenance remains offline. Seedocs/guides/title-library-automation.md anddocs/guides/subtitle-track-editing.md.
Two servers — author offline, apply live
| Job | Server | Tools |
|---|---|---|
| Build/edit a comp on a running timeline item | davinci-resolve (Python, live) | fusion_comp (probe_fusion_comp, safe_add_tool, safe_set_inputs, safe_connect_tools, fusion_boundary_report) |
Author a .comp from a spec/template with no Resolve open | davinci-resolve-advanced (Node) | fusion (generate, generate_from_template, list_templates, to_api_calls) |
Flow
Author/verify offline:
fusion(action="generate"|"generate_from_template")→
a.comp, orfusion(action="to_api_calls")→ the ordered tool/input/
connection calls.Apply live:
fusion_compsafe_add_tool→safe_set_inputs→safe_connect_tools. Theto_api_callsoutput maps directly onto those.Probe first (
probe_fusion_comp/probe_fusion_tool) — tool availability
and input readability vary by Resolve/Fusion build; some inputs coerce or are
write-only. Bulk mutation needs timeline scope, not the active Fusion page.
Never modify/transcode/derive source media (AGENTS.md).