Skip to main content
Glama

DaVinci Resolve MCP

An MCP server that lets AI assistants (Claude, Codex, Antigravity, Cursor, …) drive DaVinci Resolve Studio through Resolve's scripting API: editing, color, Fusion, audio, subtitles and delivery. The assistant can also see timeline frames to check its own work.

Describe the edit ("cut the silence at 0:12, add a Persian title on V2, warm teal-orange look, export for Instagram") and the assistant does it in Resolve.

  • 102 tools, tested live on DaVinci Resolve Studio 21.1 (macOS)

  • Frame-accurate razor / trim / move / ripple, which Resolve's API does not have natively

  • Generated color looks (exposure, contrast, temperature, lift/gamma/gain, split toning) as LUTs

  • Fusion node building with keyframes, Text+ titles (Persian/Arabic supported)

  • Transcription with word timings for text-based editing, auto subtitles, AI voice isolation

  • One-call render, plus frame previews / contact sheets returned as images

Requirements

  • DaVinci Resolve Studio (the free edition does not allow external scripting), running

  • In Resolve: Preferences → System → General → External scripting using: Local

  • uv (it installs Python and dependencies automatically)

  • macOS is tested. Windows and Linux use Resolve's standard install paths but are untested.

Related MCP server: davinci-resolve-mcp

Install

Every client runs the same command, which downloads and runs the server from GitHub:

uvx --from git+https://github.com/AlirezaC9/davinci-resolve-mcp davinci-resolve-mcp

On macOS, GUI apps may not find uvx on PATH; then use its full path (which uvx, usually ~/.local/bin/uvx).

Claude Code

claude mcp add davinci-resolve --scope user -- uvx --from git+https://github.com/AlirezaC9/davinci-resolve-mcp davinci-resolve-mcp

Claude Desktop

Settings → Developer → Edit Config (claude_desktop_config.json):

{
  "mcpServers": {
    "davinci-resolve": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/AlirezaC9/davinci-resolve-mcp", "davinci-resolve-mcp"]
    }
  }
}

Codex (CLI and app)

~/.codex/config.toml:

[mcp_servers.davinci-resolve]
command = "uvx"
args = ["--from", "git+https://github.com/AlirezaC9/davinci-resolve-mcp", "davinci-resolve-mcp"]
startup_timeout_sec = 60
tool_timeout_sec = 3600

or codex mcp add davinci-resolve -- uvx --from git+https://github.com/AlirezaC9/davinci-resolve-mcp davinci-resolve-mcp

Antigravity

Agent panel → … → MCP Servers → Manage → View raw config (~/.gemini/config/mcp_config.json):

{
  "mcpServers": {
    "davinci-resolve": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/AlirezaC9/davinci-resolve-mcp", "davinci-resolve-mcp"]
    }
  }
}

Cursor / VS Code / others

Any MCP client that supports stdio servers works. Use the same command + args as above (Cursor: ~/.cursor/mcp.json).

From a local clone (for development)

git clone https://github.com/AlirezaC9/davinci-resolve-mcp && cd davinci-resolve-mcp
uv sync
uv run python tests/smoke_test_stdio.py        # with Resolve running

Then point your client at <clone>/.venv/bin/davinci-resolve-mcp (Windows: .venv\Scripts\davinci-resolve-mcp.exe).

Configuration (optional environment variables)

Variable

Default

Purpose

RESOLVE_MCP_TIMEOUT

120

Seconds before a call that Resolve does not answer returns an error (e.g. a dialog is open)

RESOLVE_MCP_HOME

~/Documents/ResolveMCP

Previews, snapshots, renders

RESOLVE_MCP_RTL_FONT

Geeza Pro (mac) / Tahoma

Font used automatically for Persian/Arabic titles

RESOLVE_APP_PATH, RESOLVE_SCRIPT_API, RESOLVE_SCRIPT_LIB, RESOLVE_LUT_DIR

standard install paths

Non-standard Resolve installs

Tools

Area

Tools

App / project

status, launch, page, save, undo, redo, projects_list, project_open, project_create, project_settings, project_snapshot, project_import, project_export, project_manage, presets, playhead

Media pool

media_import, media_pool, bin_manage, clip_info, clip_update, media_link, media_storage, media_select, metadata_export, transcribe, transcript, media_ai, audio_sync, multicam_create

Timeline

timelines, timeline_open, timeline_create, timeline_manage, timeline_settings, timeline_get, track_add, track_set, in_out, timeline_export, timeline_import, scene_cut_detect, subtitles_from_audio, clips_select_info

Editing

clips_place, clips_assemble, clips_delete, razor, clip_trim, clip_move, gaps_close, range_remove, clip_properties, clip_speed, clip_fade, clip_label, clips_link, transition_add, compound_create, title_add, title_update, generator_add, markers

Color

grade_look, grade_cdl, grade_lut, lut_list, nodes, grade_reset, grade_copy, grade_drx, color_versions, color_groups, stills, lut_export, clip_ai (magic mask, stabilize, smart reframe), dctl

Fusion

fusion_comps, fusion_comp_info, fusion_tool_add, fusion_set (values, keyframes, expressions), fusion_connect, fusion_tool_delete, fusion_render_settings

Audio

audio_normalize, voice_isolation, tts_generate, audio_insert, audio_mapping (+ volume/pan via clip_properties)

Deliver

render_options, render_job_add, render_start, render_status, render_jobs, render_timeline, quick_export

Visual check

frame_preview, frames_contact, media_frames

Escape hatches

run_python (full API + helpers), api_search, batch

Conventions: times are seconds from the timeline start (or "120f", or a timecode); tracks are V1/A1/S1; clips are "V1:0" (transitions not counted), {"track":"V1","time":3.2}, an id, or "selected".

How missing API features are handled

Resolve's scripting API has no razor, trim, move or undo, and titles/generators can only be inserted (rippling track V1):

  • razor / clip_trim / clip_move / range_remove / gaps_close rebuild the affected clips from source media, frame-accurately. They keep Inspector properties, fades, grades (copied through a temporary holder clip), Fusion comps, clip color and enabled state, and re-link audio/video. Retimed clips must be set back to 100% first; clip markers and extra color versions are not carried over.

  • title_add / generator_add insert at the end of V1 and wrap the result in a compound clip (bin "Titles (MCP)") placed at any track/time; title_update rebuilds such titles from stored parameters.

  • undo / redo send Cmd+Z / Cmd+Shift+Z (macOS, needs Accessibility permission). The reliable safety net is project_snapshot (exports a .drp backup).

Known Resolve quirks

  • Changing an existing timeline's frame rate by script can freeze Resolve's scripting bridge (sometimes with a "frame rate mismatch" dialog). Set the frame rate when creating the project. Every call has a watchdog, so a blocked Resolve returns an error instead of hanging the assistant; Resolve may need a restart.

  • MediaPool.ImportMedia([{"FilePath": …}]) (the documented form) fails on 21.1; plain path lists work. The server tries both.

  • Fusion comps edited by script must not be wrapped in comp.Lock(), or Resolve won't re-render the changes.

License

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers