by samuelgursky
davinci-resolve-mcp is a Model Context Protocol (MCP) server that integrates AI coding assistants with DaVinci Resolve. It enables users to control and query DaVinci Resolve through natural language commands, streamlining video editing and project management workflows.
davinci-resolve-mcp is a Model Context Protocol (MCP) server that integrates AI coding assistants like Cursor and Claude Desktop with DaVinci Resolve. This integration allows users to query and control DaVinci Resolve through natural language commands, streamlining video editing, color grading, media management, and project control workflows.
There are several ways to install and use davinci-resolve-mcp:
1. New One-Step Installation (Recommended):
git clone https://github.com/samuelgursky/davinci-resolve-mcp.git
cd davinci-resolve-mcp
./install.sh
install.bat
This script automates path detection, virtual environment creation, MCP SDK installation, environment variable setup, Cursor/Claude integration configuration, and installation verification. It can also optionally start the MCP server.
2. Alternative Quick Start:
run-now.bat
chmod +x run-now.sh
then ./run-now.sh
3. Full Manual Installation:
pip install -r requirements.txt
(or pip install git+https://github.com/modelcontextprotocol/python-sdk.git
)check-resolve-ready.sh/bat
).mcp.json
with the server details (examples provided for macOS and Windows)../scripts/mcp_resolve-cursor_start
).Usage with AI Assistants:
./scripts/mcp_resolve-cursor_start
or ./scripts/mcp_resolve_launcher.sh --start-cursor
. Then, in Cursor's AI chat, you can interact with DaVinci Resolve using natural language commands.claude_desktop_config.json
file from the template. Run the Claude Desktop server using ./scripts/mcp_resolve-claude_start
or ./scripts/mcp_resolve_launcher.sh --start-claude
. Interact with DaVinci Resolve in Claude Desktop similarly to Cursor.General:
Project Management:
Timeline Operations:
Media Pool Operations:
Platform Support:
Q: What are the requirements for running davinci-resolve-mcp? A: You need macOS or Windows with DaVinci Resolve installed, Python 3.6+, and DaVinci Resolve running in the background. Node.js/npm is optional for some features.
Q: How do I troubleshoot connection issues with DaVinci Resolve?
A: Ensure DaVinci Resolve is running before starting the server. Verify that your environment variables are set correctly, you have the correct paths for your DaVinci Resolve installation, and you have restarted your terminal after setting environment variables. Check the log file at scripts/cursor_resolve_server.log
for more details.
Q: Are there any specific considerations for Windows users? A: Ensure DaVinci Resolve is installed in the default location. Use forward slashes (/) in configuration files. Python must be installed and paths configured. DaVinci Resolve must be running before starting the server.
Q: How can I contribute to the project? A: You can contribute by checking the feature checklist in the repository and picking an unimplemented feature to work on. The code is structured with clear sections for different functionalities.
Q: What are the future plans for davinci-resolve-mcp? A: Future plans include adding Windows and Linux support (though Windows is now stable), more DaVinci Resolve features, and enhanced support for Claude Desktop.
A Model Context Protocol (MCP) server that connects AI coding assistants (Cursor, Claude Desktop) to DaVinci Resolve, enabling them to query and control DaVinci Resolve through natural language.
For a comprehensive list of implemented and planned features, see docs/FEATURES.md.
For detailed installation instructions, please see INSTALL.md. 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 easiest way to get started is with our new unified installation script. This script does everything automatically:
Clone the repository:
git clone https://github.com/samuelgursky/davinci-resolve-mcp.git
cd davinci-resolve-mcp
Make sure DaVinci Resolve Studio is installed and running
Run the installation script: macOS/Linux:
./install.sh
Windows:
install.bat
This will:
You can also use the original quick start scripts:
Windows Users:
run-now.bat
macOS Users:
chmod +x run-now.sh
./run-now.sh
For configuration of DaVinci Resolve MCP with different AI assistant clients like Cursor or Claude, see the config-templates directory.
For detailed troubleshooting guidance, refer to the INSTALL.md file which contains solutions to common issues.
run-now.sh
looking for files in the wrong locationsscripts/cursor_resolve_server.log
for troubleshootingFor issues and feature requests, please use the GitHub issue tracker.
After installation, you have several ways to start the server:
The repository includes dedicated scripts for launching with specific clients:
# 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 specialized scripts:
Before connecting AI assistants, verify your environment is properly configured:
# On macOS
./scripts/check-resolve-ready.sh
# On Windows
./scripts/check-resolve-ready.bat
These scripts will:
For advanced users, our unified launcher provides full 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:
Clone this 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 to use the server by creating a configuration file:
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 using one of the client-specific scripts:
# For Cursor
./scripts/mcp_resolve-cursor_start
# For Claude Desktop
./scripts/mcp_resolve-claude_start
Start the Cursor server using the dedicated script:
./scripts/mcp_resolve-cursor_start
Or use the universal launcher:
./scripts/mcp_resolve_launcher.sh --start-cursor
Start Cursor and open a project.
In Cursor's AI chat, you can now interact with DaVinci Resolve. Try commands like:
Create a claude_desktop_config.json
file in your Claude Desktop configuration directory using the template in the config-templates
directory.
Run the Claude Desktop server using the dedicated script:
./scripts/mcp_resolve-claude_start
Or use the universal launcher:
./scripts/mcp_resolve_launcher.sh --start-claude
In Claude Desktop, you can now interact with DaVinci Resolve using the same commands as with Cursor.
Windows support is stable in v1.3.3 and should not require additional troubleshooting:
logs/
directoryMake sure DaVinci Resolve is running before starting the server. 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
MIT
Samuel Gursky (samgursky@gmail.com)
If you'd like to contribute, please check the feature checklist in the repo and pick an unimplemented feature to work on. The code is structured with clear sections for different areas of functionality.
MIT
After cleanup, the project has the following structure:
resolve_mcp_server.py
- The main MCP server implementationrun-now.sh
- Quick start script that handles setup and runs the serversetup.sh
- Complete setup script for installationcheck-resolve-ready.sh
- Pre-launch check to verify DaVinci Resolve is readystart-server.sh
- Script to start the serverrun-server.sh
- Simplified script to run the server directlyKey Directories:
src/
- Source code and modulesassets/
- Project assets and resourceslogs/
- Log files directoryscripts/
- Helper scriptsWhen developing, it's recommended to use ./run-now.sh
which sets up the environment and launches the server in one step.
See docs/CHANGELOG.md for a detailed history of changes.
When integrating with Cursor, follow these specific steps:
Make sure DaVinci Resolve is running before starting Cursor
Install required dependencies:
# From the davinci-resolve-mcp directory:
pip install -r requirements.txt
Note: This will install the MCP package and other dependencies automatically.
Set up the MCP server configuration 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
)Common issues:
Reviews feature coming soon
Stay tuned for community discussions and feedback