by samuelgursky
MCP server integration for DaVinci Resolve
# Add to your Claude Code skills
git clone https://github.com/samuelgursky/davinci-resolve-mcpA Model Context Protocol (MCP) server providing complete coverage of the DaVinci Resolve Scripting API. Connect AI assistants (Claude, Cursor, Windsurf) to DaVinci Resolve and control every aspect of your post-production workflow through natural language.
fusion_comp tool — 20-action tool exposing the full Fusion composition node graph API. Add/delete/find nodes, wire connections, set/get parameters, manage keyframes, control undo grouping, set render ranges, and trigger renders — all on the currently active Fusion page compositiontimeline_item_fusion cache actions — added get_cache_enabled and set_cache actions for Fusion output cache control directly on timeline itemsNo comments yet. Be the first to share your thoughts!
_resolve_safe_dir() now handles macOS (/var/folders, /private/var), Linux (/tmp, /var/tmp), and Windows (AppData\Local\Temp) sandbox paths that Resolve can't write to. Redirects to ~/Documents/resolve-stills instead of Desktopgrab_and_export — exported files are read into the response (DRX as inline text, images as base64) then deleted from disk automatically. Zero file accumulation. Pass cleanup: false to keep files on diskserver.py and resolve_mcp_server.py now share the same version and both use _resolve_safe_dir() for all Resolve-facing temp paths (project export, LUT export, still export)grab_and_export action on gallery_stills — combines GrabStill() + ExportStills() in a single atomic call, keeping the live GalleryStill reference for reliable export. Returns a file manifest with exported image + companion .drx grade file/var/folders and /private/var paths are redirected to ~/Desktop/resolve-stills since Resolve's process can't write to sandboxed temp directoriesExportStills requires the Gallery panel to be visible on the Color page. All 9 supported formats (dpx, cin, tif, jpg, png, ppm, bmp, xpm, drx) produce a companion .drx grade file alongside the imageexport_layout_preset, import_layout_preset, and delete_layout_preset now validate that resolved file paths stay within the expected Resolve presets directory, preventing path traversal via crafted preset namesquit_app/restart_app tools can terminate Resolve; MCP clients should require user confirmation before invokingtimeline_item_color unpacked _check() as (proj, _, _) but _check() returns (pm, proj, err), so proj got the ProjectManager instead of the Project, crashing assign_color_group and remove_from_color_group--full mode) now auto-reconnects and auto-launches Resolve, matching the compound server behaviorGetProjectManager(), GetCurrentProject(), GetCurrentTimeline() failures now return clear errors instead of NoneType crashesget_resolve(), get_project_manager(), get_current_project() replace 178 boilerplate blocksmode to grade_mode to match Resolve API; corrected documentation from replace/append to actual keyframe alignment modes (0=No keyframes, 1=Source Timecode aligned, 2=Start Frames aligned)mode for existing clients, grade_mode takes precedenceGetNodeGraph(0) returns False in Resolve; now calls without args unless layer_index is explicitly providednot g instead of g is None to catch False returnspython install.py for macOS/Windows/Linux, 10 MCP clients| Metric | Value | |--------|-------| | MCP Tools | 26 compound (default) / 342 granular | | API Methods Covered | 324/324 (100%) | | Methods Live Tested | 319/324 (98.5%) | | Live Test Pass Rate | 319/319 (100%) | | API Object Classes | 13 | | Tested Against | DaVinci Resolve 19.1.3 Studio |
Every non-deprecated method in the DaVinci Resolve Scripting API is covered. The default compound server exposes 27 tools that group related operations by action parameter, keeping LLM context windows lean. The full granular server provides 342 individual tools for power users. Both modes cover all 13 API object classes:
| Class | Methods | Tools | Description | |-------|---------|-------|-------------| | Resolve | 21 | 21 | App control, pages, layout presets, render/burn-in presets, keyframe mode | | ProjectManager | 25 | 25 | Project CRUD, folders, databases, cloud projects, archive/restore | | Project | 42 | 42 | Timelines, render pipeline, settings, LUTs, color groups | | MediaStorage | 9 | 9 | Volumes, file browsing, media import, mattes | | MediaPool | 27 | 27 | Folders, clips, timelines, metadata, stereo, sync | | Folder | 8 | 8 | Clip listing, export, transcription | | MediaPoolItem | 32 | 32 | Metadata, markers, flags, properties, proxy, transcription | | Timeline | 56 | 56 | Tracks, markers, items, export, generators, titles, stills, stereo | | TimelineItem | 76 | 76 | Properties, markers, Fusion comps, versions, takes, CDL, AI tools | | Gallery | 8 | 8 | Albums, stills, power grades | | GalleryStillAlbum | 6 | 6 | Stills management, import/export, labels | | Graph | 11 | 22 | Node operations, LUTs, cache, grades (timeline + clip graph variants) | | ColorGroup | 5 | 10 | Group management, pre/post clip node graphs |
# Clone the repository
git clone https://github.com/samuelgursky/davinci-resolve-mcp.git
cd davinci-resolve-mcp
# Make sure DaVinci Resolve is running, then:
python install.py
The universal installer auto-detects your platform, finds your DaVinci Resolve installation, creates a virtual environment, and configures your MCP client — all in one step.
The installer can automatically configure any of these clients:
| Client | Config Written To |
|--------|-------------------|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Claude Code | .mcp.json (project root) |
| Cursor | ~/.cursor/mcp.json |
| VS Code (Copilot) | .vscode/mcp.json (workspace) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Cline | VS Code global storage |
| Roo Code | VS Code global storage |
| Zed | ~/.config/zed/settings.json |
| Continue | ~/.continue/config.json |
| JetBrains IDEs | Manual (Settings > Tools > AI Assistant > MCP) |
You can configure multiple clients at once, or use --clients manual to get copy-paste config snippets.
python install.py # Interactive mode
python install.py --clients all # Configure all clients
python install.py --clients cursor,claude-desktop # Specific clients
python install.py --clients manual # Just print the config
python install.py --dry-run --clients all # Preview without writing
python install.py --no-venv --clients cursor # Skip venv creation
The MCP server comes in two modes:
| Mode | File | Tools | Best For |
|------|------|-------|----------|
| Compound (default) | src/server.py | 26 | Most users — fast, clean, low context usage |
| Full | src/resolve_mcp_server.py | 342 | Power users who want one tool per API method |
The compound server's timeline_item tool includes dedicated actions for common workflows:
| Category | Actions | Parameters | |----------|