MCP server integration for DaVinci Resolve providing powerful tools for video editing, color grading, media management, and project control
This document details the DaVinci Resolve Model Context Protocol (MCP) server, a powerful tool that bridges the gap between cutting-edge AI coding assistants (like Cursor and Claude Desktop) and the industry-leading DaVinci Resolve software. By leveraging the open Model Context Protocol, this server empowers you to control and query DaVinci Resolve using natural language, revolutionizing your post-production workflow.
This MCP server acts as a translator, enabling AI assistants to understand and execute your commands within DaVinci Resolve. Imagine instructing your AI to "Create a new timeline called 'My Sequence'" or "Add a marker at the current position" – this server makes it a reality.
Key Features:
For a comprehensive breakdown of implemented and planned features, consult the detailed Feature Roadmap.
To harness the power of this MCP server, ensure your system meets the following prerequisites:
We've simplified the installation process to get you up and running quickly. For detailed, step-by-step instructions, refer to the comprehensive Installation Guide. This guide covers:
Platform | Status | One-Step Install | Quick Start |
---|---|---|---|
macOS | ✅ Stable | ./install.sh | ./run-now.sh |
Windows | ✅ Stable | install.bat | run-now.bat |
Linux | ❌ Not supported | N/A | N/A |
The recommended approach is the one-step installation script, automating the entire setup process:
Clone the Repository:
git clone https://github.com/samuelgursky/davinci-resolve-mcp.git cd davinci-resolve-mcp
Ensure DaVinci Resolve is Running: Verify that DaVinci Resolve Studio is installed and actively running in the background.
Execute the Installation Script:
macOS/Linux:
./install.sh
Windows:
install.bat
This script intelligently automates the following tasks:
Alternatively, you can utilize the original quick start scripts:
Windows Users:
run-now.bat
macOS Users:
chmod +x run-now.sh ./run-now.sh
Customize the DaVinci Resolve MCP server for optimal integration with your preferred AI assistant client (Cursor or Claude) using the configuration templates located in the config-templates directory.
The Installation Guide provides comprehensive troubleshooting guidance and solutions to frequently encountered problems.
Key Troubleshooting Areas:
scripts/cursor_resolve_server.log
for detailed troubleshooting information.Platform-Specific Considerations:
For bug reports, feature requests, and general assistance, please utilize the GitHub issue tracker.
After installation, you have multiple options for launching the server:
Dedicated scripts are provided for launching the server with specific AI assistants:
# For Cursor integration (macOS) chmod +x scripts/mcp_resolve-cursor_start ./scripts/mcp_resolve-cursor_start # For Claude Desktop integration (macOS) chmod +x scripts/mcp_resolve-claude_start ./scripts/mcp_resolve-claude_start
These scripts streamline the launch process by:
Before connecting AI assistants, verify that your environment is properly configured:
# On macOS ./scripts/check-resolve-ready.sh # On Windows ./scripts/check-resolve-ready.bat
These scripts perform the following checks:
For advanced users, the unified launcher provides comprehensive control over both Cursor and Claude Desktop servers:
# Make the script executable (macOS only) chmod +x scripts/mcp_resolve_launcher.sh # Run in interactive mode ./scripts/mcp_resolve_launcher.sh # Or use command line options ./scripts/mcp_resolve_launcher.sh --start-cursor # Start Cursor server (uses mcp_resolve-cursor_start) ./scripts/mcp_resolve_launcher.sh --start-claude # Start Claude Desktop server (uses mcp_resolve-claude_start) ./scripts/mcp_resolve_launcher.sh --start-both # Start both servers ./scripts/mcp_resolve_launcher.sh --stop-all # Stop all running servers ./scripts/mcp_resolve_launcher.sh --status # Show server status
Additional options:
--force
--project "Project Name"
For a complete manual installation, follow these steps:
Clone the Repository:
git clone https://github.com/samuelgursky/davinci-resolve-mcp.git cd davinci-resolve-mcp
Create a Python Virtual Environment:
# Create virtual environment python -m venv venv # Activate it # On macOS/Linux: source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies from requirements.txt pip install -r requirements.txt # Alternatively, install MCP SDK directly pip install git+https://github.com/modelcontextprotocol/python-sdk.git
Set Up DaVinci Resolve Scripting Environment Variables:
For macOS:
export RESOLVE_SCRIPT_API="/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting" export RESOLVE_SCRIPT_LIB="/Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/Libraries/Fusion/fusionscript.so" export PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"
For Windows:
set RESOLVE_SCRIPT_API=C:\ProgramData\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting set RESOLVE_SCRIPT_LIB=C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll set PYTHONPATH=%PYTHONPATH%;%RESOLVE_SCRIPT_API%\Modules
Alternatively, run the pre-launch check script, which will set these for you:
# On macOS ./scripts/check-resolve-ready.sh # On Windows ./scripts/check-resolve-ready.bat
Configure Cursor (if applicable):
For macOS (~/.cursor/mcp.json
):
{ "mcpServers": { "davinci-resolve": { "name": "DaVinci Resolve MCP", "command": "/path/to/your/venv/bin/python", "args": [ "/path/to/your/davinci-resolve-mcp/src/main.py" ] } } }
For Windows (%APPDATA%\Cursor\mcp.json
):
{ "mcpServers": { "davinci-resolve": { "name": "DaVinci Resolve MCP", "command": "C:\\path\\to\\venv\\Scripts\\python.exe", "args": ["C:\\path\\to\\davinci-resolve-mcp\\src\\main.py"] } } }
Start the Server:
# For Cursor ./scripts/mcp_resolve-cursor_start # For Claude Desktop ./scripts/mcp_resolve-claude_start
Start the Cursor Server:
./scripts/mcp_resolve-cursor_start
Or use the universal launcher:
./scripts/mcp_resolve_launcher.sh --start-cursor
Launch Cursor: Start Cursor and open a project.
Interact with DaVinci Resolve: In Cursor's AI chat, use commands like:
Configure Claude Desktop: Create a claude_desktop_config.json
file in your Claude Desktop configuration directory using the template in the config-templates
directory.
Start the Claude Desktop Server:
./scripts/mcp_resolve-claude_start
Or use the universal launcher:
./scripts/mcp_resolve_launcher.sh --start-claude
Interact with DaVinci Resolve: In Claude Desktop, use the same commands as with Cursor.
Windows support is stable in v1.3.3 and should not require additional troubleshooting:
logs/
directory.If the server can't connect to Resolve, check that:
davinci-resolve-mcp/
├── README.md # This file
├── docs/ # Documentation
│ ├── FEATURES.md # Feature list and status
│ ├── CHANGELOG.md # Version history
│ ├── VERSION.md # Version information
│ ├── TOOLS_README.md # Tools documentation
│ ├── PROJECT_MCP_SETUP.md # Project setup guide
│ └── COMMIT_MESSAGE.txt # Latest commit information
├── config-templates/ # Configuration templates
│ ├── sample_config.json # Example configuration
│ ├── cursor-mcp-example.json # Cursor config example
│ └── mcp-project-template.json # MCP project template
├── scripts/ # Utility scripts
│ ├── tests/ # Test scripts
│ │ ├── benchmark_server.py # Performance tests
│ │ ├── test_improvements.py # Test scripts
│ │ ├── test_custom_timeline.py # Timeline tests
│ │ ├── create_test_timeline.py # Create test timeline
│ │ ├── test-after-restart.sh # Test after restart (Unix)
│ │ └── test-after-restart.bat # Test after restart (Windows)
│ ├── batch_automation.py # Batch automation script
│ ├── restart-server.sh # Server restart script (Unix)
│ ├── restart-server.bat # Server restart script (Windows)
│ ├── run-now.sh # Quick start script (Unix)
│ └── run-now.bat # Quick start script (Windows)
├── resolve_mcp_server.py # Main server implementation
├── src/ # Source code
│ ├── api/ # API implementation
│ ├── features/ # Feature modules
│ └── utils/ # Utility functions
├── logs/ # Log files
├── tools/ # Development tools
├── assets/ # Project assets
└── examples/ # Example code
Samuel Gursky ([email protected])
We encourage contributions! Check the feature checklist in the repository and select an unimplemented feature to work on. The code is structured with clear sections for different areas of functionality.
resolve_mcp_server.py
: The main MCP server implementation.run-now.sh
: Quick start script that handles setup and runs the server.setup.sh
: Complete setup script for installation.check-resolve-ready.sh
: Pre-launch check to verify DaVinci Resolve is ready.start-server.sh
: Script to start the server.run-server.sh
: Simplified script to run the server directly.Key Directories:
src/
: Source code and modules.assets/
: Project assets and resources.logs/
: Log files directory.scripts/
: Helper scripts.During development, use ./run-now.sh
to set up the environment and launch the server in one step.
See docs/CHANGELOG.md for a detailed history of changes.
When integrating with Cursor, follow these specific steps:
Ensure DaVinci Resolve is Running: DaVinci Resolve must be running before starting Cursor.
Install Dependencies:
# From the davinci-resolve-mcp directory: pip install -r requirements.txt
This will install the MCP package and other dependencies automatically.
Configure MCP Server in Cursor:
Create or edit ~/.cursor/mcp.json
on macOS (or %USERPROFILE%\.cursor\mcp.json
on Windows):
{ "mcpServers": { "davinci-resolve": { "name": "DaVinci Resolve MCP", "command": "/path/to/your/venv/bin/python", "args": [ "/path/to/your/davinci-resolve-mcp/src/main.py" ] } } }
Important Notes:
main.py
as the entry point (not resolve_mcp_server.py
).Troubleshooting:
mcp.json
and dependencies are installed.main.py
script will handle setting environment variables.📇 A simple TypeScript library for creating MCP servers.
#️⃣ 🏠 A C# SDK for building MCP servers on .NET 9 with NativeAOT compatibility ⚡ 🔌
☕ Java SDK for building MCP servers using Quarkus.
🐍 Provides MCP tool calling support in LangChain, allowing for the integration of MCP tools into LangChain workflows.