Skip to main content
Glama
README.md
<div align="center">

<img src="assets/logo.png" alt="Resolve MCP" width="160" />

# Resolve MCP

*Formerly Svetovid.*

**An MCP server for seeing and editing video in DaVinci Resolve Studio.**

It does the one thing most editing tools for agents cannot: see.

<br/>

<a href="https://www.buymeacoffee.com/hello_emrah"><img src="https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=%E2%98%95&slug=hello_emrah&button_colour=9686D8&font_colour=3a2a10&coffee_colour=3a2a10&outline_colour=3a2a10&font_family=Inter" alt="Buy me a coffee" height="44" /></a>

</div>

---

Resolve MCP is a Model Context Protocol server for DaVinci Resolve Studio. Most tools drive an editor blind, pushing metadata they cannot see. Resolve MCP renders the frame at the playhead and hands it back, so the agent works from what is really on screen, not a guess. It speaks to Resolve over its scripting API, and you and the agent share the same open project. Built for personal use, shared openly, not productised.

Runs on your machine, alongside your open Resolve project.

## Tools

Eighty nine tools spanning the Resolve scripting API, from orienting in a project to delivering the final file. The two at the top are the heart: Resolve MCP renders the real frame so the agent edits against what is on screen, not blind metadata. Everything destructive sits behind a confirm gate, the tool previews the action and only applies it when called again with `confirm` set, so a first exploratory call never deletes work or starts a render.

| Group | Tools |
|---|---|
| See and navigate | `get_state`, `render_current_frame`, `open_page`, `get_playhead`, `set_playhead_timecode`, `set_playhead_frame`, `get_current_item` |
| Project | `list_projects`, `get_project_info`, `create_project`, `load_project`, `save_project`, `get_project_settings`, `set_project_setting` |
| Media | `browse_storage`, `import_media`, `list_media_pool`, `create_bin`, `set_current_bin`, `get_clip_properties`, `set_clip_property`, `set_clip_mark_in_out`, `delete_media_clips` |
| Timeline | `list_timelines`, `create_empty_timeline`, `set_current_timeline`, `rename_timeline`, `duplicate_timeline`, `delete_timeline`, `get_timeline_settings`, `set_timeline_setting`, `set_timeline_start_timecode`, `add_track`, `delete_track`, `set_track_name`, `set_track_enabled`, `set_track_locked` |
| Edit and assembly | `create_timeline_from_clips`, `append_to_timeline`, `insert_title`, `insert_fusion_title`, `insert_generator`, `create_compound_clip`, `create_fusion_clip`, `detect_scene_cuts`, `delete_timeline_items` |
| Clip transforms | `list_timeline_items`, `get_item_properties`, `set_item_property`, `set_item_transform`, `set_item_enabled`, `set_item_clip_color`, `smart_reframe`, `stabilize`, `add_fusion_comp` |
| Markers | `add_marker`, `list_markers`, `delete_marker`, `delete_markers_by_color` |
| Colour | `list_color_groups`, `add_color_group`, `assign_to_color_group`, `get_node_graph_info`, `set_node_lut`, `set_node_enabled`, `set_cdl`, `copy_grade`, `reset_grades`, `grab_still` |
| Audio | `insert_audio_at_playhead`, `transcribe_audio`, `clear_transcription`, `set_voice_isolation`, `create_subtitles_from_audio`, `auto_sync_audio` |
| Render and deliver | `list_render_presets`, `load_render_preset`, `get_render_formats`, `get_render_codecs`, `set_render_format_codec`, `set_render_settings`, `add_render_job`, `list_render_jobs`, `start_render`, `stop_render`, `get_render_status`, `delete_render_jobs`, `list_quick_export_presets`, `quick_export` |

Every tool returns plain data the agent can read, and reaches Resolve through the shared scaffolding in `connection.py` (the live handle), `gate.py` (the confirm gate) and `serialize.py` (objects to plain dicts). One module per group under `src/resolve_mcp/tools/`.

## Requirements

- DaVinci Resolve **Studio** 18.5 or newer, running. The scripting API is Studio only.
- External scripting enabled: Resolve, Preferences, System, General, **External scripting using** set to **Local**.
- Python 3.10 or newer.

## Install

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

## Wire into Claude Code

Add an entry to `~/.claude.json` under `mcpServers`:

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

Restart Claude Code. The tools appear under the `mcp__resolve__*` namespace.

## Environment

Resolve's scripting paths are auto-detected per platform. Set `RESOLVE_SCRIPT_API` and `RESOLVE_SCRIPT_LIB` in a `.env` only for a non-standard install (see `.env.example`).

## Design philosophy

The visual mark and the tool itself were built deliberately against the visual language of capitalist software design. No gradients, no neon, no glass, no drop shadows, no isometric stock illustration. Single-shade flat seals in warm earth tones, ancient-glyph silhouettes, generous whitespace. The mark could be pressed into wax or carved into stone.

This tool is built for personal use and shared openly. It is not productised, monetised, or instrumented. Use it for your own work or fork it for yours.

## License

MIT, see [LICENSE](LICENSE).

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools serve clearly distinct purposes: one provides project and timeline metadata, the other exports a frame as an image. There is no overlap or ambiguity.

Naming Consistency5/5

Both tools follow a consistent verb_noun snake_case pattern: get_state and render_current_frame. Naming is uniform and predictable.

Tool Count2/5

With only 2 tools for a complex domain like DaVinci Resolve, the server feels significantly underdeveloped. While it covers basic inspection and frame export, many essential operations (e.g., editing, timeline manipulation) are missing.

Completeness2/5

The server provides only state retrieval and frame rendering, lacking any editing or modification capabilities. For a tool claiming to 'orient' and 'see the edit,' the absence of editing tools makes it incomplete for interactive workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues