Skip to main content
Glama

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 .cube LUTs, 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.

GitHub profile · LinkedIn

Available Tools

21 tools
davinci_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:

  1. Analyzes audio track for exact BPM, phase downbeats, and bar boundaries.

  2. Arranges video clips locked to musical beats ('rapid', 'standard', 'bars').

  3. Injects ASC CDL color grading and synthesizes native 3D LUT.

  4. Injects rhythmic punch-in motion zooms ('comic_dynamic', 'high_energy', 'subtle').

  5. 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:

  1. Transcodes 10-bit HEVC (which shows as audio-only in DaVinci Free) to 8-bit H.264 MP4 using hardware GPU acceleration.

  2. Converts Apple HEIC photos to high-resolution JPEG.

  3. 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

    B3/5.0

    Scored across 21 tools

    Disambiguation2/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers