# 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`)