DaVinci Director MCP
This MCP server lets you control and automate DaVinci Resolve for vertical, beat-synced video workflows.
Check Resolve status, switch workspace pages, and enforce 1080x1920 vertical resolution.
Ingest/transcode footage, convert HEIC images, import media/audio, and download YouTube audio.
Create vertical projects/timelines and autonomously build beat-synced reels with markers, color presets, and motion effects.
Analyze audio BPM/downbeats/bars and add editorial beat markers.
Generate/install/list/apply 3D LUTs and synthesize color looks.
Micro-adjust clip framing/opacity/rotation, control transport actions, and queue vertical MP4 renders.
Use Windows UI helpers for clicks, virtual cursor movement, and UI inspection.
Provides automated video editing and color grading for DaVinci Resolve, including audio beat detection for rhythm-synced cuts, algorithmic 3D LUT generation, dynamic camera framing, transitions, and media transcoding.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DaVinci Director MCP Cut this footage to the beat and add a cinematic LUT"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DaVinci Director MCP
A Python MCP integration for AI-assisted DaVinci Resolve workflows: audio rhythm analysis, timeline preparation, LUT generation, and editor controls.
Project at a glance
Interface: MCP over stdio, with 21 registered tools in
src/davinci_director/server.py.Implementation: NumPy audio-energy analysis, generated FCP XML, mathematical
.cubeLUTs, a native Resolve scripting bridge, and Windows UI helpers.Examples: Beat-sync example and sample client configuration.
License: MIT.
Related MCP server: unofficial-davinci-mcp
Capabilities and boundaries
Area | Implementation in this repository | Validation boundary |
Rhythm analysis | NumPy energy/positive-flux autocorrelation, beat grids, and marker suggestions | Tempo and bar positions are estimates, not guaranteed musical ground truth |
Timeline preparation | Generated XML and clip scheduling | Verify imports, framing, transitions, and audio in the target Resolve version |
Color presets | Generated 3D LUTs and CDL values | Creative approximations; preset names do not establish measured film-stock accuracy |
Native editor operations | Resolve scripting bridge | Require an available native API connection; availability varies with the installed environment |
UI fallback | Win32 input and cursor helpers | Windows-specific; this refresh did not validate macOS or Linux operation |
Edition-wide claims such as full support for every Free/Studio workflow are not established by the current validation evidence. Check davinci_status and the returned operation results for the actual environment.
Installation
Python 3.10+ is declared in pyproject.toml. Clone the repository, create a virtual environment, then install with python -m pip install -e .. Windows UI helpers additionally use the windows extra: python -m pip install -e ".[windows]".
A compatible MCP library, Resolve installation, and the media dependencies are required. The current server imports MCPServer from mcp.server.mcpserver; verify that this API exists in the installed MCP version before starting the server. The package currently does not pin a tested MCP version.
Start with python -m davinci_director.server or the davinci-director entry point. Configure an MCP client with that command using the client's documented stdio settings. See the sample configuration for examples; client configuration formats can change.
Tool groups
Status and navigation:
davinci_status,davinci_switch_page,davinci_set_vertical_resolution.Media:
davinci_smart_ingest,davinci_import_audio,davinci_import_media.Projects and timelines:
davinci_create_vertical_project,davinci_create_vertical_timeline,davinci_build_beat_synced_reel.Rhythm and markers:
davinci_analyze_audio_beats,davinci_add_beat_marker.Color:
davinci_generate_and_install_lut,davinci_list_luts,davinci_apply_lut.Framing and output:
davinci_micro_adjust,davinci_render.UI helpers:
davinci_transport,davinci_seamless_click,davinci_ai_cursor_move,davinci_ghost_click,davinci_inspect_ui.
Source structure
beat_finder.py handles rhythm analysis; color_engine.py generates LUTs; import_manager.py handles media and XML workflows; resolve_bridge.py wraps the native API; ghost_input.py and ai_cursor_overlay.py provide Windows interactions; server.py exposes MCP tools.
Validation status
The documentation was checked against the source and registered-tool list on 29 October 2026. No Resolve timeline render, installation smoke test, or operating-system compatibility matrix was executed during that documentation review. A recorded end-to-end demo, pinned dependency validation, and automated tests remain useful next steps. Repository documentation should distinguish source capabilities from verified execution results.
Portfolio context
This project demonstrates API integration, Python automation, media-processing workflows, and tool design. It is separate from any employer's systems or confidential data.
Available Tools
21 toolsdavinci_add_beat_markerB
Adds an editorial marker on the timeline at the given frame number.
Inputs: frame (required), note, color. Returns: result
davinci_ai_cursor_moveC
Displays the virtual glowing AI cursor badge at coordinates (x, y).
Inputs: x (required), y (required), label. Returns: result
davinci_analyze_audio_beatsA
Analyzes audio track tempo (BPM), downbeats, musical bars, and frame-locked cut points for rhythmic video editing.
Inputs: audio_path (required), fps, max_duration_seconds. Returns: result
davinci_apply_lutC
Applies a 3D LUT (.cube) to a clip node or synthesizes an Antigravity look preset.
Inputs: lut_path (required), clip_index (required), node_index. Returns: result
davinci_build_beat_synced_reelB
Autonomously constructs and injects a 1080x1920 vertical beat-synced reel into DaVinci Resolve:
Analyzes audio track for exact BPM, phase downbeats, and bar boundaries.
Arranges video clips locked to musical beats ('rapid', 'standard', 'bars').
Injects ASC CDL color grading and synthesizes native 3D LUT.
Injects rhythmic punch-in motion zooms ('comic_dynamic', 'high_energy', 'subtle').
Injects downbeat timeline markers and loads sequence automatically into DaVinci Resolve.
Inputs: audio_path (required), clip_paths (required), timeline_name (required), fps, +3 more. Returns: result
davinci_create_vertical_projectC
Creates or configures a 9:16 vertical project (1080x1920) at specified frame rate (default 24fps).
Inputs: project_name (required), fps. Returns: result
davinci_create_vertical_timelineB
Creates a new 1080x1920 vertical timeline in DaVinci Resolve and arranges designated clips.
Inputs: timeline_name (required), audio_path, clip_names, clip_duration_frames. Returns: result
davinci_generate_and_install_lutA
Synthesizes an algorithmic 3D .cube LUT and installs it directly into DaVinci Resolve's native Support/LUT/Antigravity directory. Presets: comic_noir, kodak_2383, bleach_bypass, cyberpunk_neon, clean_commercial, all.
Inputs: size, preset_name. Returns: result
davinci_ghost_clickB
Dispatches a background click message to DaVinci Resolve at window coordinates (x, y).
Inputs: x (required), y (required). Returns: result
davinci_import_audioA
Imports audio file into DaVinci Resolve. If given a YouTube URL, automatically downloads and extracts high-fidelity 48kHz WAV audio first.
Inputs: path_or_url (required), destination_folder. Returns: result
davinci_import_mediaB
Imports video/audio clips from local disk paths into a designated Media Pool bin.
Inputs: file_paths (required), bin_name. Returns: result
davinci_inspect_uiC
Captures a micro-crop region around (x, y) and analyzes waveform / visual contrast telemetry.
Inputs: x (required), y (required). Returns: result
davinci_list_lutsA
Lists all Antigravity LUTs currently installed in DaVinci Resolve's native system directory.
Inputs: no named parameters. Returns: result
davinci_micro_adjustD
Performs micro-framing on a specific clip on Video Track 1 (1-based index).
Inputs: clip_index (required), zoom, pan_x, pan_y, +2 more. Returns: result
davinci_renderB
Queues and triggers 1080x1920 MP4 render (15,000 Kbps).
Inputs: filename (required), output_dir (required). Returns: result
davinci_seamless_clickB
Performs a localized click at (x, y) with glowing AI badge telemetry and restores mouse position.
Inputs: x (required), y (required), label. Returns: result
davinci_set_vertical_resolutionA
Enforces 1080x1920 (9:16 vertical) canvas resolution in DaVinci Resolve Project Settings.
Inputs: no named parameters. Returns: result
davinci_smart_ingestA
High-performance smart ingestion for raw footage:
Transcodes 10-bit HEVC (which shows as audio-only in DaVinci Free) to 8-bit H.264 MP4 using hardware GPU acceleration.
Converts Apple HEIC photos to high-resolution JPEG.
Automates DaVinci Resolve File Open Dialog in chunks to import all prepared media reliably.
Inputs: folder_path (required), chunk_size, max_videos. Returns: result
davinci_statusA
Checks the status of DaVinci Resolve on this computer. Returns window state, project title, active coordinates, and internal API connection state.
Inputs: no named parameters. Returns: result
davinci_switch_pageA
Switches DaVinci Resolve workspace page: 'media', 'cut', 'edit', 'fusion', 'color', 'fairlight', 'deliver'
Inputs: page (required). Returns: result
davinci_transportA
Executes playback, cutting, and timeline navigation shortcuts: 'play', 'pause', 'toggle', 'razor_cut', 'zoom_fit', 'fullscreen', 'blade', 'select'.
Inputs: action (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Multiple tools have overlapping functionality, such as davinci_import_audio vs davinci_import_media, davinci_build_beat_synced_reel overlapping with analyze_audio and create_timeline, and several UI automation tools (seamless_click, ghost_click, ai_cursor_move) that serve similar purposes. This creates ambiguity in selecting the correct tool.
All tools follow a consistent davinci_ prefix with snake_case verb_noun structure (e.g., davinci_status, davinci_switch_page, davinci_smart_ingest). Even compound verbs maintain the same pattern, making names predictable and readable.
With 21 tools, the count is on the higher side but reasonable for a comprehensive video editing suite covering timeline, LUTs, media import, UI automation, and rendering. Slightly heavy due to overlapping utilities, but not excessive.
The tool set covers major DaVinci Resolve operations: status, page switching, resolution, LUTs, media import, audio analysis, timeline creation, UI interaction, and rendering. It lacks some advanced export/project management features, but overall provides strong coverage for the intended workflow.
Maintenance
Related MCP Connectors
Edit video by talking to your AI — search footage, cut timelines, apply effects, add captions.
Edit video and audio using natural language.
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
The agentic video editor for ChatGPT and Claude. Ask in your chat and it cuts, captions, adds music, titles and motion graphics on a real timeline you can open and adjust.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI-driven DaVinci Resolve 21 automation with 88 tools for project management, timeline editing, color grading, AI analysis, rendering, and dailies creation.883MIT
- AlicenseAqualityDmaintenanceLets AI agents drive DaVinci Resolve for video editing, including beat-synced cuts, color matching, and loudness normalization, with both live Resolve Studio control and file-based interchange for the free edition.2338Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control DaVinci Resolve (Free and Studio) through natural language, providing 162 tools for timeline editing, color grading, rendering, and more. Includes local AI replacements for Studio-only features like voice isolation, background removal, and transcription.1MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to control DaVinci Resolve (Free and Studio) through 215 MCP tools covering the full Resolve scripting API, including projects, timelines, media, Fusion, color, and rendering.154 PyPI1MIT