DaVinci Resolve MCP

by samuelgursky
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables AI-assisted video editing in DaVinci Resolve, allowing access to timeline, media, and project information, manipulation of edits, automation of workflows, and color grading capabilities.

DaVinci Resolve MCP Server

An MCP server that provides tools for accessing and controlling DaVinci Resolve through its Scripting API, allowing AI assistants like Claude to interact with your timeline, media, and more.

Features

  • Project Management: Get project info, list projects, and switch between them
  • Timeline Operations: Get timeline info, clip names, markers, and control playback
  • Clip Information: Get detailed clip info including source timecode
  • Media Pool Access: Browse media, view folder structure, and add clips to the timeline
  • Color Correction: Node management, primary correction, and LUT operations (coming soon)
  • Advanced Timeline Analysis: Generate and export source timecode reports

Installation

Prerequisites

  • DaVinci Resolve Studio (Free version has limited scripting support)
  • Python 3.6+ (64-bit)
  • DaVinci Resolve API access (automatically set up when installed)

Development Environment

This project is being developed on:

  • macOS Sequoia 15.0.1
  • DaVinci Resolve Studio 19.1.3
  • Cursor AI Code Editor

Your experience may vary on different systems or with different versions of DaVinci Resolve.

Setup

# Install from PyPI pip install mcp-server-davinci-resolve # Or install from GitHub pip install git+https://github.com/samuelgursky/servers.git#subdirectory=mcp-server-davinci-resolve

Usage

Starting the server

# Start the server mcp-server-davinci-resolve # Specify host and port mcp-server-davinci-resolve --host 127.0.0.1 --port 8080 # With debug logging mcp-server-davinci-resolve --debug

Configuration with Cursor

This integration has been tested and verified to work with the Cursor AI Code Editor.

Potential Configuration with Claude Desktop (Untested)

The following configuration may work with Claude Desktop, but this has NOT been tested:

{ "mcpServers": { "davinci_resolve": { "command": "mcp-server-davinci-resolve", "args": [] } } }

A sample configuration file is included in the repository as claude_desktop_config.json. To use it:

  1. Copy the file to your Claude Desktop configuration directory
  2. Restart Claude Desktop
  3. Verify the DaVinci Resolve MCP server appears in your available tools

Examples

Working with Projects

// Get information about the current project const projectInfo = await client.execute("mcp_get_project_info"); console.log(`Project: ${projectInfo.name}, Resolution: ${projectInfo.resolution}, FPS: ${projectInfo.fps}`); // List all projects const projects = await client.execute("mcp_get_project_list"); console.log("Available projects:", projects.projects.join(", ")); // Switch to a different project await client.execute("mcp_switch_to_project", { project_name: "My Documentary" });

Working with Timelines

// Get current timeline name const timelineName = await client.execute("mcp_get_current_timeline_name"); console.log(`Current timeline: ${timelineName.name}`); // Get timeline information const timelineInfo = await client.execute("mcp_get_timeline_info"); console.log(`Timeline has ${timelineInfo.video_tracks} video tracks and ${timelineInfo.audio_tracks} audio tracks`); // Get all clips in timeline const clips = await client.execute("mcp_get_timeline_clip_names"); console.log(`Timeline contains ${clips.clips.length} clips`); // Get markers const markers = await client.execute("mcp_get_timeline_markers"); console.log(`Timeline has ${markers.markers.length} markers`);

Controlling Playback

// Get playhead position const position = await client.execute("mcp_get_playhead_position"); console.log(`Current position: ${position.timecode}`); // Control playback await client.execute("mcp_control_playback", { command: "play" }); // Other commands: "stop", "pause", "next_frame", "prev_frame", "next_clip", "prev_clip"

Working with Clips

// Get details about a specific clip const clipDetails = await client.execute("mcp_get_clip_details", { track_type: "video", track_index: 1, clip_index: 0 }); console.log(`Clip: ${clipDetails.name}, Duration: ${clipDetails.duration}`); // Get source timecode information const timecodeInfo = await client.execute("mcp_get_clip_source_timecode", { track_type: "video", track_index: 1, clip_index: 0 });

Timecode Reporting

// Generate a source timecode report for the entire timeline const report = await client.execute("mcp_get_source_timecode_report"); // Export report to file await client.execute("mcp_export_source_timecode_report", { export_path: "/path/to/report.csv", format: "csv", video_tracks_only: false });

Environment Setup

DaVinci Resolve has specific API paths that are needed depending on your operating system. These are automatically set up by the package.

Mac OS X:

RESOLVE_SCRIPT_API="/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting" RESOLVE_SCRIPT_LIB="/Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/Libraries/Fusion/fusionscript.so" PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"

Windows:

RESOLVE_SCRIPT_API="%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting" RESOLVE_SCRIPT_LIB="C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll" PYTHONPATH="%PYTHONPATH%;%RESOLVE_SCRIPT_API%\Modules\"

Linux:

RESOLVE_SCRIPT_API=`/opt/resolve/Developer/Scripting` RESOLVE_SCRIPT_LIB=`/opt/resolve/libs/Fusion/fusionscript.so` PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"

Known Limitations

  • DaVinci Resolve must be running before starting the MCP server
  • Some operations (like project settings changes) have API limitations
  • Playback control uses OS-specific keyboard shortcuts in some cases
  • Resolve Free has limited scripting support compared to Studio version

Contributing

Contributions are welcome! Please check the Contributing Guide for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

  • Built with the Model Context Protocol specification
  • Utilizes the DaVinci Resolve Scripting API from Blackmagic Design
-
security - not tested
A
license - permissive license
-
quality - not tested

A server that enables LLM applications to interact directly with DaVinci Resolve video editing software, allowing AI-assisted capabilities like accessing timeline information and automating editing workflows.

  1. Features
    1. Installation
      1. Prerequisites
      2. Development Environment
      3. Setup
    2. Usage
      1. Starting the server
      2. Configuration with Cursor
      3. Potential Configuration with Claude Desktop (Untested)
    3. Examples
      1. Working with Projects
      2. Working with Timelines
      3. Controlling Playback
      4. Working with Clips
      5. Timecode Reporting
    4. Environment Setup
      1. Known Limitations
        1. Contributing
          1. License
            1. Acknowledgements