Skip to main content
Glama
apvlv

DaVinci Resolve MCP Server

by apvlv
README.md
# 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

A3.5/5.0

Scored across 14 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues