DaVinci Resolve MCP Server
# DaVinci Resolve MCP Server
Model Context Protocol (MCP) server that lets MCP clients control and inspect DaVinci Resolve (including Fusion) through tools and resources.
## What it provides
- Project management (create, load, save)
- Timeline operations (create timeline, switch timeline, build from clips)
- Media pool operations (import media, create folders, inspect folders)
- Fusion helpers (add comp to clip, create nodes, create node chains)
- Resolve page navigation
- Advanced scripting (`execute_python`, `execute_lua`)
## Requirements
- Python 3.10+
- DaVinci Resolve with scripting API available
- An MCP-compatible client (for example Claude Desktop)
## Install
```bash
git clone https://github.com/apvlv/davinci-resolve-mcp.git
cd davinci-resolve-mcp
uv sync --all-extras --dev
```
## Run the server
```bash
uv run davinci-resolve-mcp
```
The server will try to connect to Resolve on startup. Make sure DaVinci Resolve is running.
## MCP client setup
Configure your MCP client to launch the server command:
```json
{
"mcpServers": {
"davinci-resolve": {
"command": "uv",
"args": ["run", "davinci-resolve-mcp"]
}
}
}
```
## Resources
- `system://status`
- `project://current`
- `project://timelines`
- `timeline://current`
- `mediapool://folders`
- `mediapool://current`
- `storage://volumes`
## Tools
### Project
- `create_project(name)`
- `load_project(name)`
- `save_project()`
### Timeline
- `create_timeline(name)`
- `set_current_timeline(index)`
### Media
- `import_media(file_paths)`
- `create_folder(name)`
- `create_timeline_from_clips(name, clip_indices)`
### Fusion
- `add_fusion_comp_to_clip(timeline_index, track_type, track_index, item_index)`
- `create_fusion_node(node_type, parameters)`
- `create_fusion_node_chain(node_chain)`
### Resolve UI
- `open_page(page_name)` where page name is one of:
- `media`, `edit`, `fusion`, `color`, `fairlight`, `deliver`
### Advanced
- `execute_python(code)`
- `execute_lua(script)`
## Development
```bash
make install # install deps and pre-commit hooks
make lint-check # ruff check
make format-check # ruff format check
make test # pytest with coverage
make check # lint + format + tests
```
## Example usage ideas
- "Create a project named `My Documentary`"
- "List timelines in the current project"
- "Import these files into the media pool"
- "Open the Color page"
- "Create a Fusion node chain Blur -> ColorCorrector"
## License
MIT (see `LICENSE`)
TDQS
Scored across 14 tools
Each tool has a clearly distinct purpose targeting specific DaVinci Resolve operations like timeline management, Fusion composition, media import, and scripting. No tools overlap in functionality, making selection straightforward for an agent.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'create_project', 'import_media', and 'execute_lua'. This uniformity enhances readability and predictability across the toolset.
With 14 tools, the server is well-scoped for DaVinci Resolve operations, covering project management, timeline creation, media handling, Fusion nodes, and scripting. Each tool serves a clear purpose without redundancy or bloat.
The toolset provides comprehensive coverage for core workflows including project lifecycle, timeline operations, media import, and Fusion composition. Minor gaps exist, such as the lack of tools for deleting or modifying existing projects or timelines, but agents can work around these with available tools.