io.github.Airta-Admin/davinc-resolve-local-bridge-mcp
Provides tools for controlling DaVinci Resolve, including project management, timeline editing, media import, Fusion compositing, color grading, and rendering.
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., "@io.github.Airta-Admin/davinc-resolve-local-bridge-mcpCreate a new 1080p project 'Demo' and add a timeline"
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.
Davinc-Resolve-Local-Bridge-MCP
What Is This?
Davinc-Resolve-Local-Bridge-MCP is a Model Context Protocol (MCP) server that gives AI assistants controlled access to DaVinci Resolve. It exposes 218 tools covering projects, timelines, media, Fusion, color grading, rendering, and supported optional extensions.
How It Works
Your AI Assistant (Claude, Cursor, Devin, etc.)
│
│ talks MCP (stdio)
▼
mcp_server/server.py ← runs on your machine
│
│ talks HTTP (localhost:8787)
▼
DaVinciResolveBridge.py ← runs INSIDE DaVinci Resolve
│ (started from the Workflow Integration)
▼
DaVinci Resolve API ← full read + write accessThe bridge script runs inside DaVinci Resolve's process, giving it full access to the Resolve scripting API — even on the Free edition (which blocks external scripting). The MCP server runs as a separate process and proxies tool calls to the bridge over localhost HTTP.
Related MCP server: resolve-mcp
Quick Start
Prerequisites
DaVinci Resolve 18.5+ (Free or Studio)
Python 3.10+ on your machine
An MCP-compatible AI assistant (Claude Desktop, Cursor, Devin, etc.)
Step 1 — Install the Workflow Integration and Bridge
Run the installer:
python install.pyThe installer adds the user-facing launcher under Workspace → Workflow Integrations and installs the underlying bridge script. Restart Resolve once after installation so it discovers the integration.
For a manual installation, copy workflow/DaVinci Resolve Local Bridge MCP Server Connection.py and the workflow/assets directory to Resolve's Workflow Integration Plugins directory. Also copy bridge/Bridge-Connection-Script.py to Resolve's scripts folder as DaVinciResolveBridge.py. The Scripts entry is retained as a fallback, not the normal launch path.
Platform | Path |
Windows |
|
macOS |
|
Linux |
|
Step 2 — Install MCP Server Dependencies
pip install -r requirements.txtStep 3 — Configure Your AI Assistant
Add the MCP server to your assistant's configuration file. The server path is mcp_server/server.py in this repo.
Claude Desktop
Edit claude_desktop_config.json:
{
"mcpServers": {
"davinci-resolve-local-bridge": {
"command": "python",
"args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
}
}
}Cursor
Edit .cursor/mcp.json:
{
"mcpServers": {
"davinci-resolve-local-bridge": {
"command": "python",
"args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
}
}
}Devin
Edit mcp_config.json:
{
"mcpServers": {
"resolve-local-bridge": {
"command": "python",
"args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
}
}
}Claude Code
claude mcp add davinci-resolve-local-bridge -- python C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.pyAny MCP Client (generic)
The server uses stdio transport. Launch it with:
python mcp_server/server.pyStep 4 — Start the Bridge Inside DaVinci Resolve
Open DaVinci Resolve
Go to Workspace → Workflow Integrations → DaVinci Resolve Local Bridge MCP Server Connection
Click Start Bridge
Confirm that the panel reports Running on http://127.0.0.1:8787 (218 actions). For diagnostic details, open Workspace → Console and look for:
[Resolve Bridge] Connected to Resolve 21.0.4.5
[Resolve Bridge] HTTP server running on http://127.0.0.1:8787
[Resolve Bridge] 218 actions availableStep 5 — Start Using It
Ask your AI assistant:
"Check if DaVinci Resolve is connected"
The assistant will call the resolve_status tool and report back. Then try:
"Create a new 1920x1080 30fps project called 'My Video' and add a timeline"
Architecture
Bridge Script (bridge/Bridge-Connection-Script.py)
A Python script that runs inside DaVinci Resolve. The supported Workflow Integration launcher starts it for the user; Workspace → Scripts → DaVinciResolveBridge remains available only as a fallback. It:
Obtains the live
resolveobject from Fusion's globalsStarts an HTTP server on
127.0.0.1:8787Exposes 3 endpoints:
GET /health— check if the bridge is aliveGET /actions— list all available action namesPOST /action— execute an action by name with parameters
Stays alive with a blocking
serve_forever()callKills any previous instance on the same port before starting
MCP Server (mcp_server/server.py)
A standalone MCP server that:
Connects to the bridge over HTTP on localhost
Auto-discovers all 218 actions from the bridge's
/actionsendpointExposes each action as an MCP tool with the
resolve_prefixProxies tool calls to the bridge via
POST /actionStays in sync with the bridge — no manual tool definitions needed
All 218 Tools
The MCP server auto-discovers tools from the bridge. Each tool is prefixed with resolve_ (e.g., status becomes resolve_status). Pass parameters as a params object.
Resolve Application (15 tools)
Tool | Parameters | Description |
| — | Check bridge connectivity and get current project/timeline info |
| — | Get Resolve version info |
| — | Get the active page (edit, cut, color, etc.) |
|
| Switch to a page: edit, cut, fusion, color, fairlight, deliver, media |
| — | List available layout presets |
|
| Load a layout preset by name |
| — | Get current keyframe mode |
|
| Set keyframe mode |
| — | List Fairlight audio presets |
| — | List burn-in presets |
|
| Import a render preset from file |
|
| Export a render preset to file |
| — | Switch to Fusion page |
| — | Switch to Edit page |
| — | Switch to Deliver page |
Project Manager (18 tools)
Tool | Parameters | Description |
|
| Create a new project |
|
| Load an existing project |
| — | Save the current project |
| — | Close the current project |
|
| Delete a project |
|
| Create a project folder |
|
| Delete a project folder |
| — | List projects in current folder |
| — | List subfolders in current folder |
| — | Get current folder name |
|
| Open a folder |
| — | Navigate to root folder |
| — | Navigate to parent folder |
|
| Import a .drp project |
|
| Export a project as .drp |
|
| Archive a project |
| — | Get current database name |
| — | List available databases |
Project Settings (7 tools)
Tool | Parameters | Description |
| — | Get current project name |
|
| Rename the current project |
|
| Get a project setting by key |
|
| Set a project setting |
| — | Get all project settings |
| — | List project presets |
|
| Apply a project preset |
Media Storage (4 tools)
Tool | Parameters | Description |
| — | List mounted storage volumes |
|
| List subfolders in a path |
|
| List files in a folder |
|
| Reveal a file in the OS file browser |
Media Pool (13 tools)
Tool | Parameters | Description |
|
| Import media files into the pool |
| — | List all clips in root folder |
| — | Get root folder info |
|
| Create a subfolder |
|
| Set the current folder |
|
| Delete clips from pool |
|
| Move clips to a folder |
|
| Relink clips |
|
| Unlink clips |
|
| Export metadata CSV |
| — | List selected clips |
|
| Select a clip |
|
| Add matte files |
Timeline (21 tools)
Tool | Parameters | Description |
|
| Create a new empty timeline |
|
| Create timeline from clips |
| — | List all timelines |
| — | Get current timeline name |
|
| Rename current timeline |
|
| Switch to timeline by index (1-based) |
| — | Duplicate the current timeline |
|
| Delete timelines |
| — | Get start frame |
| — | Get end frame |
| — | Get start timecode |
|
| Set start timecode |
| — | Get current timecode |
|
| Set current timecode |
| — | Detect scene cuts |
|
| Auto-generate subtitles |
|
| Export timeline |
|
| Import timeline from file |
|
| Append clips to timeline |
|
| Get a timeline setting |
|
| Set a timeline setting |
Timeline Tracks (11 tools)
Tool | Parameters | Description |
|
| Count tracks (video/audio/subtitle) |
|
| Add a track |
|
| Delete a track |
|
| Enable/disable a track |
|
| Check if track is enabled |
|
| Lock/unlock a track |
|
| Check if track is locked |
|
| Get track name |
|
| Set track name |
|
| List clips on a track |
| — | List selected timeline clips |
Timeline Items (66 tools)
All item actions accept optional trackType, trackIndex, itemIndex to target a specific clip, or operate on the first selected clip if omitted.
Tool | Parameters | Description |
|
| Get clip name |
|
| Rename a clip |
|
| Get clip duration |
|
| Get clip start frame |
|
| Get clip end frame |
|
| Get a clip property |
|
| Set a clip property |
|
| Check if clip is enabled |
|
| Enable/disable a clip |
|
| Set clip color |
|
| Get clip color |
|
| Clear clip color |
|
| Add a flag |
|
| Get flags |
|
| Clear flags |
|
| Add a marker |
|
| Get markers |
|
| Insert a generator |
|
| Insert a Fusion generator |
| — | Insert a Fusion composition |
|
| Insert an OFX generator |
|
| Insert a title |
|
| Insert a Fusion title |
| — | Grab a still from current frame |
| — | Grab stills from all clips |
|
| Create a compound clip |
| — | Create a Fusion clip |
|
| Import into timeline |
|
| Stabilize a clip |
|
| Smart Reframe a clip |
|
| Create a Magic Mask |
|
| Regenerate Magic Mask |
|
| Get track info for a clip |
|
| Get linked items |
|
| Set CDL values |
|
| Add a take |
|
| Count takes |
|
| Select a take |
|
| Finalize the current take |
|
| Copy grades to other clips |
|
| Export a LUT |
|
| Set color output cache |
|
| Set Fusion output cache |
|
| Get clip metadata |
|
| Set clip metadata |
|
| Get clip property |
|
| Set clip property |
|
| Link proxy media |
| — | Unlink proxy media |
|
| Replace clip with file |
|
| Add a clip marker |
| — | Get clip markers |
|
| Set clip color (media pool) |
|
| Add a clip flag |
|
| Transcribe audio |
|
| Set mark in/out |
|
| Clear mark in/out |
|
| Add timeline marker |
| — | Get timeline markers |
|
| Delete markers by color |
|
| Delete marker at frame |
|
| Export current frame as still |
|
| Apply Fairlight preset |
| — | List quick export presets |
Fusion Compositions (14 tools)
Tool | Parameters | Description |
|
| Create a Fusion composition |
|
| Add a Fusion comp to a clip |
|
| Import a .comp file |
|
| Export a Fusion comp |
|
| Load a comp by name |
|
| Delete a comp by name |
|
| Rename a comp |
|
| Count Fusion comps on a clip |
|
| List Fusion comp names |
| — | Get current Fusion composition |
| — | List all open comps |
| — | Create a new Fusion comp |
|
| Save current comp |
|
| Load a comp file |
| — | Close current comp |
| — | Render current comp |
Fusion Tools (11 tools)
Tool | Parameters | Description |
| — | List all tools/nodes in current comp |
|
| Find a tool by name |
|
| Delete a tool |
|
| Get tool attributes |
|
| Set tool attributes |
|
| Add a node (Background, Paint, Merge, etc.) |
|
| Connect two nodes |
|
| Set a node input (can keyframe) |
|
| Get a node input value |
|
| Set the current frame |
| — | Get the current frame |
Gallery (4 tools)
Tool | Parameters | Description |
| — | List gallery still albums |
| — | List PowerGrade albums |
| — | Create a still album |
| — | Create a PowerGrade album |
Color / Nodes (7 tools)
Tool | Parameters | Description |
| — | Get node count on current clip |
|
| Get a node label |
|
| Get a node's LUT |
|
| Set a LUT on a node |
|
| Enable/disable a node |
| — | Reset all grades |
| — | Refresh the LUT list |
Rendering (22 tools)
Tool | Parameters | Description |
| — | List render formats |
|
| List codecs for a format |
| — | Get current format/codec |
|
| Set render format and codec |
| — | Get render mode |
|
| Set render mode |
|
| List render resolutions |
| — | List render presets |
|
| Load a render preset |
|
| Save a new render preset |
|
| Delete a render preset |
|
| Set render settings (TargetDir, CustomName, etc.) |
| — | Add a render job |
|
| Delete a render job |
| — | Delete all render jobs |
| — | List render jobs |
|
| Start rendering |
| — | Stop rendering |
| — | Check if rendering |
|
| Get render job status |
|
| Quick export |
|
| Add job and start rendering |
Speech & Subtitles (1 tool)
Tool | Parameters | Description |
|
| Generate AI speech audio |
Special (1 tool)
Tool | Parameters | Description |
|
| Create a hand-drawing animation (Daniel Batal technique) |
Optional open-source extensions (3 tools)
MCP Tool | Description |
| Read-only detection for OpenCaptions and Rembg-Fuse |
| List caption Text+ templates in the current project |
| Add an installed Rembg-Fuse node to the current Fusion comp |
OpenCaptions and Rembg-Fuse are independent third-party projects and are not bundled with this package.
DaVinci Resolve Local Bridge MCP Server Connection
install.py also installs a supported Workflow Integration launcher. After restarting Resolve once, open Workspace → Workflow Integrations → DaVinci Resolve Local Bridge MCP Server Connection for Start Bridge, Stop Bridge, Refresh Status, and an optional one-time $5 Developer Tip button that opens Stripe-hosted checkout in the default browser. Resolve's public scripting API does not support injecting arbitrary buttons into its native top menu bar; Workflow Integrations is the supported persistent menu surface.
Support development
Troubleshooting
Bridge won't start
Make sure DaVinci Resolve is running and a project is open
Open Workspace → Workflow Integrations → DaVinci Resolve Local Bridge MCP Server Connection and click Start Bridge
Check the Console (Workspace → Console) for error messages
Restart DaVinci Resolve after installation — it scans Workflow Integrations at startup
If the Workflow Integration cannot be opened, use Workspace → Scripts → DaVinciResolveBridge as a fallback and report the integration error
"Could not connect to Resolve Bridge"
Open Workspace → Workflow Integrations → DaVinci Resolve Local Bridge MCP Server Connection and verify that its status says Running
Check that the console shows
[Resolve Bridge] HTTP server running on http://127.0.0.1:8787If the port is already in use, close Resolve and reopen it (stale
fuscript.exeprocesses can hold the port)
Tools return errors
Call
resolve_statusfirst to verify connectivitySome actions require a project to be open, a timeline to exist, or a clip to be selected
Error messages from the bridge indicate what's missing
Technical Details
Bridge port: 127.0.0.1:8787 (localhost only, no external access)
Transport: HTTP/1.0 with Connection: close
MCP transport: stdio
Dependencies:
mcp,requests(MCP server only; bridge uses pure stdlib)Resolve version: 18.5+ (tested on 21.0.4.5)
Python: 3.10+ for MCP server; bridge uses Resolve's embedded Python
License
MIT License — see LICENSE file.
Credits
Created by: A Fellow Coder for fellow coders. Inspired by the DaVinci Resolve scripting community.
Available Tools
1 toolresolve_healthA
Check if DaVinci Resolve bridge is running. The bridge script must be running inside Resolve via Workspace > Scripts > DaVinciResolveBridge. If this returns an error, the bridge is not running.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the error behavior: 'If this returns an error, the bridge is not running.' This is key behavioral information. However, it does not disclose what a successful response contains or whether the tool has any side effects, though 'check' implies a read-only operation. Still, the error semantics are clearly and usefully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place. The first sentence states the purpose, the second gives the setup prerequisite, and the third explains error interpretation. It is front-loaded with the core function and contains no filler or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters, no output schema, and no siblings. The description covers what the tool checks and how to interpret an error. A minor gap is that it does not explicitly describe the success response, but for a health-check tool, the error condition is the most critical information. The description is otherwise complete for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so there is nothing to document. According to the guidelines, a baseline of 4 is appropriate when no parameters exist. The description does not need to add parameter-level detail, and it doesn't waste space on it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Check if DaVinci Resolve bridge is running.' The verb 'check' and resource 'DaVinci Resolve bridge' are specific and unambiguous. Since there are no sibling tools, there is no need for differentiation, and the description is fully self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by explaining the prerequisite: the bridge script must be running inside Resolve via Workspace > Scripts > DaVinciResolveBridge. It also tells the agent how to interpret the result, which is effectively guidance for using the tool. There are no alternatives to contrast, so no exclusions are necessary, but it doesn't explicitly say 'use this when you need to verify connectivity.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.2.5- First observed
resolve_health
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion or overlapping purposes. The tool's purpose is unambiguous.
The single tool name follows a clear verb_noun pattern (resolve_health), which is consistent and descriptive. With only one tool, naming consistency is inherently strong.
A single health-check tool is far too few for a server presumably meant to bridge to DaVinci Resolve. Even as a minimal health-only server, one tool feels extremely thin and provides little value beyond a ping.
The server only provides a health check, with no ability to interact with DaVinci Resolve projects, timelines, renders, or any other meaningful operations. This is a severely incomplete surface for a bridge to a complex application.
Maintenance
Related MCP Connectors
Remote MCP for AI video, image, music and speech generation.
Plan, compare, price, generate, and recover AI video from compatible MCP clients.
Build, run, schedule, and publish AI video pipelines to YouTube and TikTok from any MCP client.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceExposes 20 tools for project, media, render, and timeline control in DaVinci Resolve 18+ via stdio MCP, enabling AI agents to operate the software through natural language.13 PyPI51MIT
- AlicenseNot gradedqualityFmaintenanceComprehensive MCP server for DaVinci Resolve with 295+ tools to control projects, timelines, editing, color grading, rendering, and more via natural language.6MIT
- AlicenseBqualityFmaintenanceEnables AI-driven DaVinci Resolve 21 automation with 88 tools for project management, timeline editing, color grading, AI analysis, rendering, and dailies creation.882MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes the complete DaVinci Resolve scripting API, enabling AI assistants to control DaVinci Resolve programmatically with over 440 tools for project management, timeline editing, color grading, rendering, and more.7MIT