Skip to main content
Glama
README.md
# DaVinci Resolve 21 MCP Server

An MCP server providing full API coverage for DaVinci Resolve 21. Exposes 88 tools and 20 resources for project management, timeline editing, media import, color grading, rendering, export, AI analysis (transcription, audio classification, Intellisearch, Slate ID, motion deblur, speech generation), and composite workflows like automated dailies creation.

Built for macOS. Requires DaVinci Resolve Studio with scripting enabled.

## Installation

### Prerequisites

- DaVinci Resolve Studio 21
- Python 3.10+
- An MCP client (Claude Code, Claude Desktop, etc.)

### Install

```bash
git clone https://github.com/apvlv/resolve-mcp.git
cd resolve-mcp
pip install -e .
```

### Configure MCP Client

Add to your MCP client config (e.g. `~/.claude/settings.json`):

```json
{
  "mcpServers": {
    "davinci-resolve": {
      "command": "resolve-mcp"
    }
  }
}
```

Or without installing:

```json
{
  "mcpServers": {
    "davinci-resolve": {
      "command": "python3",
      "args": ["-m", "resolve_mcp"],
      "env": {
        "PYTHONPATH": "/path/to/resolve-mcp/src"
      }
    }
  }
}
```

## Resources

Resources provide read-only access to current Resolve state.

| URI | Description |
|-----|-------------|
| `resolve://system/status` | Connection state, version, current page |
| `resolve://project/current` | Project name, resolution, frame rate, timeline count |
| `resolve://project/list` | All project names in current database |
| `resolve://project/settings` | Full project settings |
| `resolve://project/timelines` | All timelines with index and name |
| `resolve://timeline/current` | Current timeline details (frames, tracks, TC, FPS) |
| `resolve://timeline/tracks` | Track list with type, name, enabled, locked, item count |
| `resolve://timeline/markers` | All timeline markers |
| `resolve://timeline/items` | All timeline items across video tracks |
| `resolve://mediapool/folders` | Recursive folder tree with clip counts |
| `resolve://mediapool/current-folder` | Current folder contents |
| `resolve://mediapool/clips` | Clip details for current folder |
| `resolve://mediapool/selected-clips` | Currently selected clips |
| `resolve://storage/volumes` | Mounted media storage volumes |
| `resolve://gallery/albums` | Gallery still albums |
| `resolve://gallery/stills` | Stills in current album |
| `resolve://render/jobs` | Render job list |
| `resolve://render/formats` | Available formats and codecs |
| `resolve://render/presets` | Render presets |
| `resolve://render/is-rendering` | Render status |

## Tools

### Project (6)
`create_project`, `load_project`, `save_project`, `close_project`, `set_project_setting`, `disable_background_tasks`

### Navigation (1)
`open_page` - Switch between media, cut, edit, fusion, color, fairlight, deliver

### Timeline (13)
`create_empty_timeline`, `create_timeline_from_clips`, `set_current_timeline`, `set_current_timeline_by_name`, `delete_timeline`, `duplicate_timeline`, `add_track`, `delete_track`, `set_track_name`, `enable_track`, `lock_track`, `append_clips_to_timeline`, `set_timeline_start_timecode`

### Media Pool (4)
`create_bin`, `set_current_folder`, `move_clips_to_folder`, `delete_clips`

### Media Import (5)
`import_media`, `import_media_to_bin`, `scan_directory`, `import_camera_roll`, `import_timeline_from_file`

### Metadata (8)
`get_clip_metadata`, `set_clip_metadata`, `set_clip_metadata_batch`, `set_clip_property`, `set_clip_color`, `add_clip_flag`, `extract_qc_notes_from_markers`, `calculate_clip_file_sizes`

### Clips (2)
`rename_clips` (token patterns: `{CAM}`, `{REEL}`, `{REEL:N}`, `{N}`, `{N:N}`, `{DATE}`, `{TIME}`, `{UID}`), `rename_clip`

### Markers (6)
`add_timeline_marker`, `delete_timeline_marker`, `delete_timeline_markers_by_color`, `add_clip_marker`, `get_clip_markers`, `delete_clip_marker`

### Color Grading (9)
`apply_drx_grade`, `set_cdl`, `apply_cdl_from_file` (CCC/EDL), `set_lut`, `search_and_apply_lut`, `copy_grade`, `reset_grades`, `get_node_graph_info`

### Audio (4)
`import_audio`, `auto_sync_audio`, `add_audio_track`, `generate_speech` (AI Speech Generator: text-to-speech clip, optionally placed on the timeline)

### Render (8)
`set_render_settings`, `set_render_format`, `add_render_job`, `start_render`, `get_render_progress`, `wait_for_render`, `delete_render_jobs`, `load_render_preset`

### Export (9)
`export_timeline`, `export_ale`, `export_edl`, `export_fcpxml`, `export_aaf`, `export_csv`, `export_otio`, `export_drt`

### Dailies (1)
`create_dailies` - End-to-end pipeline: scan camera rolls, create bins (OCF/{Cam}/{Roll}), import media, build timeline, apply DRX/CDL/LUT grades, import and sync audio

### Stills (1)
`extract_stills_from_markers` - Extract single-frame clips from timeline markers, create stills timeline with grade copy

### Fusion (3)
`add_fusion_comp`, `create_fusion_node`, `create_fusion_node_chain`

### AI Analysis (8)
Resolve 21 AI tools. Each operates on a single clip (`clip_name`), a folder and its nested folders (`folder_path`), or the current Media Pool folder. Require Resolve Studio and, in most cases, packages from the Extras Download Manager.

`transcribe_audio` (optional speaker detection), `clear_transcription`, `perform_audio_classification`, `clear_audio_classification`, `remove_motion_blur` (AI motion deblur → new clips), `analyze_for_intellisearch` (face ID + Faster/Better mode), `reset_intellisearch_analysis`, `analyze_for_slate` (AI Slate ID, places markers)

### Execute (2)
`execute_python`, `execute_lua` - Run arbitrary code with stdout/stderr capture and pre-populated Resolve API objects

## Examples

```
"What project is open and how many timelines does it have?"
"Import all media from /Volumes/Media/A001 as a camera roll"
"Create a timeline called 'Assembly' from all clips in the current bin"
"Apply the DRX grade at /Volumes/Grades/show.drx to all timeline clips"
"Export the current timeline as ALE with CDL values"
"Set up dailies from /Volumes/OCF/A-Cam/A001 with grade /Volumes/Grades/dailies.drx"
"Render the current timeline as ProRes 422 HQ to /Volumes/Deliveries/"
"Transcribe audio for all clips in the Interviews bin with speaker detection"
"Analyze the A-Cam folder for Intellisearch and identify faces"
"Run Slate analysis on the current folder and place green markers"
"Generate speech 'Scene 12, take 3' and add it to the timeline at 01:00:05:00"
```

## License

MIT

TDQS

B3.4/5.0

Scored across 88 tools

Disambiguation4/5

Most tools have distinct purposes with clear descriptions. Some potential confusion exists between closely related tools like set_clip_metadata and set_clip_metadata_batch, but overall the boundaries are well defined.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern using snake_case, with only minor exceptions like analyze_for_intellisearch which still fit the pattern. The naming is predictable and readable.

Tool Count2/5

With 88 tools, the set is very large and likely overwhelming for an agent. While the server covers extensive DaVinci Resolve functionality, the sheer number increases selection difficulty and cognitive load.

Completeness4/5

The tool set covers most major workflows: media management, timeline editing, color grading, audio, rendering, and exports. Minor gaps exist, such as missing timeline clip deletion or trimming, but overall it is quite comprehensive.

Maintenance

ActivityInactive
ResponsivenessUnresponsive