Back to Browse

Davinc Resolve Local Bridge MCP Server

Developer ToolsUse Caution3.5MCP RegistryLocal
Free

Server data from the Official MCP Registry

Control DaVinci Resolve from any AI assistant. 215 MCP tools covering the full Resolve API.

About

Control DaVinci Resolve from any AI assistant. 215 MCP tools covering the full Resolve API.

Security Report

3.5
Use Caution3.5High Risk

This MCP server provides extensive control over DaVinci Resolve via a local HTTP bridge. While the architecture is sound (localhost-only, no hardcoded credentials, proper MCP integration), there are notable security concerns: the bridge lacks authentication/authorization on its HTTP endpoints, accepts arbitrary method calls without validation, and the MCP server does not validate responses from the bridge before passing them to Claude. The broad permission scope (full Resolve API access including file operations, rendering, and script execution) is appropriate for its stated purpose, but combined with the validation gaps, presents moderate risk. Supply chain analysis found 9 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.

4 files analyzed · 19 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

process_spawn

Check that this permission is expected for this type of plugin.

system_info

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-airta-admin-davinc-resolve-local-bridge-mcp": {
      "args": [
        "davinc-resolve-local-bridge-mcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Davinc-Resolve-Local-Bridge-MCP


What Is This?

Davinc-Resolve-Local-Bridge-MCP is a Model Context Protocol (MCP) server that gives AI assistants full control over DaVinci Resolve. It exposes 215 tools covering the entire Resolve scripting API — projects, timelines, media, Fusion, color grading, rendering, and more.

How It Works

Your AI Assistant (Claude, Cursor, Devin, etc.)
       │
       │  talks MCP (stdio)
       ▼
  mcp_server/server.py        ← runs on your machine
       │
       │  talks HTTP (localhost:8787)
       ▼
  Bridge-Connection-Script.py ← runs INSIDE DaVinci Resolve
       │                        (Workspace > Scripts menu)
       ▼
  DaVinci Resolve API         ← full read + write access

The bridge script runs inside DaVinci Resolve's process, giving it full access to the Resolve scripting API — even on the Free edition (which blocks external scripting). The MCP server runs as a separate process and proxies tool calls to the bridge over localhost HTTP.


Quick Start

Prerequisites

  • DaVinci Resolve 18.5+ (Free or Studio)
  • Python 3.10+ on your machine
  • An MCP-compatible AI assistant (Claude Desktop, Cursor, Devin, etc.)

Step 1 — Install the Bridge Script

Run the installer:

python install.py

Or manually copy bridge/Bridge-Connection-Script.py to Resolve's scripts folder:

PlatformPath
Windows%APPDATA%\Roaming\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts\Utility\
macOS~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts/Utility/
Linux~/.local/share/DaVinciResolve/Fusion/Scripts/Utility/

Step 2 — Install MCP Server Dependencies

pip install -r requirements.txt

Step 3 — Configure Your AI Assistant

Add the MCP server to your assistant's configuration file. The server path is mcp_server/server.py in this repo.

Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "davinci-resolve-local-bridge": {
      "command": "python",
      "args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
    }
  }
}
Cursor

Edit .cursor/mcp.json:

{
  "mcpServers": {
    "davinci-resolve-local-bridge": {
      "command": "python",
      "args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
    }
  }
}
Devin

Edit mcp_config.json:

{
  "mcpServers": {
    "resolve-local-bridge": {
      "command": "python",
      "args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
    }
  }
}
Claude Code
claude mcp add davinci-resolve-local-bridge -- python C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py
Any MCP Client (generic)

The server uses stdio transport. Launch it with:

python mcp_server/server.py

Step 4 — Start the Bridge Inside DaVinci Resolve

  1. Open DaVinci Resolve
  2. Go to Workspace → Scripts → Bridge-Connection-Script
  3. Look in the Console (Workspace → Console) for:
[Resolve Bridge] Connected to Resolve 21.0.4.5
[Resolve Bridge] HTTP server running on http://127.0.0.1:8787
[Resolve Bridge] 215 actions available

Step 5 — Start Using It

Ask your AI assistant:

"Check if DaVinci Resolve is connected"

The assistant will call the resolve_status tool and report back. Then try:

"Create a new 1920x1080 30fps project called 'My Video' and add a timeline"


Architecture

Bridge Script (bridge/Bridge-Connection-Script.py)

A Python script that runs inside DaVinci Resolve via the Workspace > Scripts menu. It:

  • Obtains the live resolve object from Fusion's globals
  • Starts an HTTP server on 127.0.0.1:8787
  • Exposes 3 endpoints:
    • GET /health — check if the bridge is alive
    • GET /actions — list all available action names
    • POST /action — execute an action by name with parameters
  • Stays alive with a blocking serve_forever() call
  • Kills any previous instance on the same port before starting

MCP Server (mcp_server/server.py)

A standalone MCP server that:

  • Connects to the bridge over HTTP on localhost
  • Auto-discovers all 215 actions from the bridge's /actions endpoint
  • Exposes each action as an MCP tool with the resolve_ prefix
  • Proxies tool calls to the bridge via POST /action
  • Stays in sync with the bridge — no manual tool definitions needed

All 215 Tools

The MCP server auto-discovers tools from the bridge. Each tool is prefixed with resolve_ (e.g., status becomes resolve_status). Pass parameters as a params object.

Resolve Application (15 tools)

ToolParametersDescription
resolve_statusCheck bridge connectivity and get current project/timeline info
resolve_get_versionGet Resolve version info
resolve_get_current_pageGet the active page (edit, cut, color, etc.)
resolve_open_pagepageSwitch to a page: edit, cut, fusion, color, fairlight, deliver, media
resolve_get_layout_presetsList available layout presets
resolve_load_layout_presetpresetNameLoad a layout preset by name
resolve_get_keyframe_modeGet current keyframe mode
resolve_set_keyframe_modekeyframeModeSet keyframe mode
resolve_get_fairlight_presetsList Fairlight audio presets
resolve_get_burnin_presetsList burn-in presets
resolve_import_render_presetpresetPathImport a render preset from file
resolve_export_render_presetpresetName, exportPathExport a render preset to file
resolve_open_fusion_pageSwitch to Fusion page
resolve_open_edit_pageSwitch to Edit page
resolve_open_deliver_pageSwitch to Deliver page

Project Manager (18 tools)

ToolParametersDescription
resolve_create_projectname, width, height, fpsCreate a new project
resolve_load_projectnameLoad an existing project
resolve_save_projectSave the current project
resolve_close_projectClose the current project
resolve_delete_projectnameDelete a project
resolve_create_folderfolderNameCreate a project folder
resolve_delete_folderfolderNameDelete a project folder
resolve_get_project_listList projects in current folder
resolve_get_folder_listList subfolders in current folder
resolve_get_current_folderGet current folder name
resolve_open_folderfolderNameOpen a folder
resolve_goto_root_folderNavigate to root folder
resolve_goto_parent_folderNavigate to parent folder
resolve_import_projectfilePath, projectNameImport a .drp project
resolve_export_projectprojectName, filePath, withStillsAndLUTsExport a project as .drp
resolve_archive_projectprojectName, filePath, ...Archive a project
resolve_get_current_databaseGet current database name
resolve_get_database_listList available databases

Project Settings (7 tools)

ToolParametersDescription
resolve_get_project_nameGet current project name
resolve_set_project_namenameRename the current project
resolve_get_project_settingkeyGet a project setting by key
resolve_set_project_settingkey, valueSet a project setting
resolve_get_project_settingsGet all project settings
resolve_get_project_preset_listList project presets
resolve_set_project_presetpresetNameApply a project preset

Media Storage (4 tools)

ToolParametersDescription
resolve_get_mounted_volumesList mounted storage volumes
resolve_get_subfolder_listfolderPathList subfolders in a path
resolve_get_file_listfolderPathList files in a folder
resolve_reveal_in_storagepathReveal a file in the OS file browser

Media Pool (13 tools)

ToolParametersDescription
resolve_import_mediapaths (list)Import media files into the pool
resolve_get_media_poolList all clips in root folder
resolve_get_root_folderGet root folder info
resolve_add_sub_folderfolderName, parentFolderNameCreate a subfolder
resolve_set_current_folderfolderNameSet the current folder
resolve_delete_clipsclipNames (list)Delete clips from pool
resolve_move_clipsclipNames, targetFolderMove clips to a folder
resolve_relink_clipsclipNames, folderPathRelink clips
resolve_unlink_clipsclipNamesUnlink clips
resolve_export_metadatafileName, clipNamesExport metadata CSV
resolve_get_selected_clipsList selected clips
resolve_set_selected_clipclipNameSelect a clip
resolve_add_timeline_mattespaths (list)Add matte files

Timeline (21 tools)

ToolParametersDescription
resolve_create_timelinenameCreate a new empty timeline
resolve_create_timeline_from_clipsname, clipNamesCreate timeline from clips
resolve_list_timelinesList all timelines
resolve_get_timeline_nameGet current timeline name
resolve_set_timeline_namenameRename current timeline
resolve_set_current_timelinetimelineIndexSwitch to timeline by index (1-based)
resolve_duplicate_timelineDuplicate the current timeline
resolve_delete_timelinestimelineNamesDelete timelines
resolve_get_timeline_start_frameGet start frame
resolve_get_timeline_end_frameGet end frame
resolve_get_start_timecodeGet start timecode
resolve_set_start_timecodetimecodeSet start timecode
resolve_get_current_timecodeGet current timecode
resolve_set_current_timecodetimecodeSet current timecode
resolve_detect_scene_cutsDetect scene cuts
resolve_create_subtitles_from_audiosettingsAuto-generate subtitles
resolve_timeline_exportfileName, exportType, exportSubtypeExport timeline
resolve_import_timeline_from_filefilePathImport timeline from file
resolve_append_to_timelineclipNamesAppend clips to timeline
resolve_get_timeline_settingkeyGet a timeline setting
resolve_set_timeline_settingkey, valueSet a timeline setting

Timeline Tracks (11 tools)

ToolParametersDescription
resolve_get_track_counttrackTypeCount tracks (video/audio/subtitle)
resolve_add_tracktrackTypeAdd a track
resolve_delete_tracktrackType, trackIndexDelete a track
resolve_set_track_enabletrackType, trackIndex, enabledEnable/disable a track
resolve_get_track_enabletrackType, trackIndexCheck if track is enabled
resolve_set_track_locktrackType, trackIndex, lockedLock/unlock a track
resolve_get_track_locktrackType, trackIndexCheck if track is locked
resolve_get_track_nametrackType, trackIndexGet track name
resolve_set_track_nametrackType, trackIndex, nameSet track name
resolve_get_items_in_tracktrackType, indexList clips on a track
resolve_get_timeline_selected_clipsList selected timeline clips

Timeline Items (66 tools)

All item actions accept optional trackType, trackIndex, itemIndex to target a specific clip, or operate on the first selected clip if omitted.

ToolParametersDescription
resolve_get_item_nametrackType?, trackIndex?, itemIndex?Get clip name
resolve_set_item_namename, trackType?, ...Rename a clip
resolve_get_item_durationtrackType?, ...Get clip duration
resolve_get_item_starttrackType?, ...Get clip start frame
resolve_get_item_endtrackType?, ...Get clip end frame
resolve_get_item_propertykey?, trackType?, ...Get a clip property
resolve_set_item_propertykey, value, trackType?, ...Set a clip property
resolve_get_item_enabledtrackType?, ...Check if clip is enabled
resolve_set_item_enabledenabled, trackType?, ...Enable/disable a clip
resolve_set_item_colorcolorName, trackType?, ...Set clip color
resolve_get_item_colortrackType?, ...Get clip color
resolve_clear_item_colortrackType?, ...Clear clip color
resolve_add_item_flagcolor, trackType?, ...Add a flag
resolve_get_item_flagstrackType?, ...Get flags
resolve_clear_item_flagscolor, trackType?, ...Clear flags
resolve_add_item_markerframeId, color, name, note?, ...Add a marker
resolve_get_item_markerstrackType?, ...Get markers
resolve_insert_generatorgeneratorNameInsert a generator
resolve_insert_fusion_generatorgeneratorNameInsert a Fusion generator
resolve_insert_fusion_compositionInsert a Fusion composition
resolve_insert_ofx_generatorgeneratorNameInsert an OFX generator
resolve_insert_titletitleNameInsert a title
resolve_insert_fusion_titletitleNameInsert a Fusion title
resolve_grab_stillGrab a still from current frame
resolve_grab_all_stillsGrab stills from all clips
resolve_create_compound_clipnameCreate a compound clip
resolve_create_fusion_clipCreate a Fusion clip
resolve_import_into_timelinefilePath, importOptions?Import into timeline
resolve_stabilizetrackType?, ...Stabilize a clip
resolve_smart_reframetrackType?, ...Smart Reframe a clip
resolve_create_magic_maskmode, trackType?, ...Create a Magic Mask
resolve_regenerate_magic_masktrackType?, ...Regenerate Magic Mask
resolve_get_item_track_infotrackType?, ...Get track info for a clip
resolve_get_linked_itemstrackType?, ...Get linked items
resolve_set_item_cdlcdl, trackType?, ...Set CDL values
resolve_add_takemediaPoolItemName, startFrame?, endFrame?Add a take
resolve_get_takes_counttrackType?, ...Count takes
resolve_select_take_by_indexidx, trackType?, ...Select a take
resolve_finalize_taketrackType?, ...Finalize the current take
resolve_copy_gradestargetItemNames, trackType?, ...Copy grades to other clips
resolve_export_lutexportType, path, trackType?, ...Export a LUT
resolve_set_color_output_cachecache_value, trackType?, ...Set color output cache
resolve_set_fusion_output_cachecache_value, trackType?, ...Set Fusion output cache
resolve_get_clip_metadatametadataType?Get clip metadata
resolve_set_clip_metadatametadataType, metadataValueSet clip metadata
resolve_get_clip_propertypropertyName?Get clip property
resolve_set_clip_propertypropertyName, propertyValueSet clip property
resolve_link_proxy_mediaproxyMediaFilePathLink proxy media
resolve_unlink_proxy_mediaUnlink proxy media
resolve_replace_clipfilePathReplace clip with file
resolve_add_clip_markerframeId, color, name, note?Add a clip marker
resolve_get_clip_markersGet clip markers
resolve_set_clip_colorcolorNameSet clip color (media pool)
resolve_add_clip_flagcolorAdd a clip flag
resolve_transcribe_clip_audiouseSpeakerDetection?Transcribe audio
resolve_set_clip_mark_inoutmarkIn, markOut, typeSet mark in/out
resolve_clear_clip_mark_inouttypeClear mark in/out
resolve_add_timeline_markerframeId, color, name, note?Add timeline marker
resolve_get_timeline_markersGet timeline markers
resolve_delete_timeline_markers_by_colorcolorDelete markers by color
resolve_delete_timeline_marker_at_frameframeNumDelete marker at frame
resolve_export_current_framefilePathExport current frame as still
resolve_apply_fairlight_presetnameApply Fairlight preset
resolve_get_quick_export_presetsList quick export presets

Fusion Compositions (14 tools)

ToolParametersDescription
resolve_create_fusion_compnameCreate a Fusion composition
resolve_add_fusion_comptrackType?, ...Add a Fusion comp to a clip
resolve_import_fusion_comppath, trackType?, ...Import a .comp file
resolve_export_fusion_comppath, compIndex?, trackType?, ...Export a Fusion comp
resolve_load_fusion_comp_by_namecompName, trackType?, ...Load a comp by name
resolve_delete_fusion_comp_by_namecompName, trackType?, ...Delete a comp by name
resolve_rename_fusion_compoldName, newName, trackType?, ...Rename a comp
resolve_get_item_fusion_comp_counttrackType?, ...Count Fusion comps on a clip
resolve_get_item_fusion_comp_namestrackType?, ...List Fusion comp names
resolve_get_current_compGet current Fusion composition
resolve_fusion_get_comp_listList all open comps
resolve_fusion_new_compCreate a new Fusion comp
resolve_fusion_save_compfilePathSave current comp
resolve_fusion_load_compfilePathLoad a comp file
resolve_fusion_close_compClose current comp
resolve_fusion_render_compRender current comp

Fusion Tools (11 tools)

ToolParametersDescription
resolve_fusion_get_tool_listList all tools/nodes in current comp
resolve_fusion_find_toolnameFind a tool by name
resolve_fusion_delete_toolnameDelete a tool
resolve_fusion_get_attrsnameGet tool attributes
resolve_fusion_set_attrsname, attrsSet tool attributes
resolve_fusion_add_nodenodeType, nameAdd a node (Background, Paint, Merge, etc.)
resolve_fusion_connectfromNode, toNode, inputConnect two nodes
resolve_fusion_set_inputnode, input, value, frame?Set a node input (can keyframe)
resolve_fusion_get_inputnode, inputGet a node input value
resolve_fusion_set_current_frameframeSet the current frame
resolve_fusion_get_current_frameGet the current frame

Gallery (4 tools)

ToolParametersDescription
resolve_get_gallery_still_albumsList gallery still albums
resolve_get_gallery_powergrade_albumsList PowerGrade albums
resolve_create_gallery_still_albumCreate a still album
resolve_create_powergrade_albumCreate a PowerGrade album

Color / Nodes (7 tools)

ToolParametersDescription
resolve_get_node_countGet node count on current clip
resolve_get_node_labelnodeIndexGet a node label
resolve_get_node_lutnodeIndexGet a node's LUT
resolve_set_node_lutnodeIndex, lutPathSet a LUT on a node
resolve_set_node_enablednodeIndex, isEnabledEnable/disable a node
resolve_reset_all_gradesReset all grades
resolve_refresh_lut_listRefresh the LUT list

Rendering (22 tools)

ToolParametersDescription
resolve_get_render_formatsList render formats
resolve_get_render_codecsrenderFormatList codecs for a format
resolve_get_current_render_format_codecGet current format/codec
resolve_set_render_format_codecformat, codecSet render format and codec
resolve_get_render_modeGet render mode
resolve_set_render_moderenderModeSet render mode
resolve_get_render_resolutionsformat, codecList render resolutions
resolve_get_render_preset_listList render presets
resolve_load_render_presetpresetNameLoad a render preset
resolve_save_as_new_render_presetpresetNameSave a new render preset
resolve_delete_render_presetpresetNameDelete a render preset
resolve_set_render_settingssettingsSet render settings (TargetDir, CustomName, etc.)
resolve_add_render_jobAdd a render job
resolve_delete_render_jobjobIdDelete a render job
resolve_delete_all_render_jobsDelete all render jobs
resolve_get_render_job_listList render jobs
resolve_start_renderingjobIds?, isInteractiveMode?Start rendering
resolve_stop_renderingStop rendering
resolve_is_rendering_in_progressCheck if rendering
resolve_get_render_statusjobIdGet render job status
resolve_render_with_quick_exportpresetNameQuick export
resolve_rendersettings?Add job and start rendering

Speech & Subtitles (1 tool)

ToolParametersDescription
resolve_generate_speechtext, voice?Generate AI speech audio

Special (1 tool)

ToolParametersDescription
resolve_create_hand_animationimagePath, ...Create a hand-drawing animation (Daniel Batal technique)

Troubleshooting

Bridge won't start

  • Make sure DaVinci Resolve is running and a project is open
  • Check the Console (Workspace → Console) for error messages
  • Restart DaVinci Resolve — it only scans the Scripts folder at startup

"Could not connect to Resolve Bridge"

  • Make sure you ran Workspace → Scripts → Bridge-Connection-Script inside Resolve
  • Check that the console shows [Resolve Bridge] HTTP server running on http://127.0.0.1:8787
  • If the port is already in use, close Resolve and reopen it (stale fuscript.exe processes can hold the port)

Tools return errors

  • Call resolve_status first to verify connectivity
  • Some actions require a project to be open, a timeline to exist, or a clip to be selected
  • Error messages from the bridge indicate what's missing

Technical Details

  • Bridge port: 127.0.0.1:8787 (localhost only, no external access)
  • Transport: HTTP/1.0 with Connection: close
  • MCP transport: stdio
  • Dependencies: mcp, requests (MCP server only; bridge uses pure stdlib)
  • Resolve version: 18.5+ (tested on 21.0.4.5)
  • Python: 3.10+ for MCP server; bridge uses Resolve's embedded Python

License

MIT License — see LICENSE file.


Credits

Created by: A Fellow Coder for fellow coders. Inspired by the DaVinci Resolve scripting community.

Reviews

No reviews yet

Be the first to review this server!