# DaVinci Resolve Lua MCP (mcpb · davinci-resolve-lua-mcp.mcpb)

Control the free edition of DaVinci Resolve 21.1 from Claude through a Lua script inside Resolve.

- Trust score: 63/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- mcpb · `davinci-resolve-lua-mcp.mcpb`: 63/100 (this document), [markdown](https://verifymcp.io/servers/saadk408-davinci-resolve-lua-mcp/https-github-com-saadk408-davinci-resolve-lua-mcp-releases-download-v0-2-0-davin.md), [page](https://verifymcp.io/servers/saadk408-davinci-resolve-lua-mcp/https-github-com-saadk408-davinci-resolve-lua-mcp-releases-download-v0-2-0-davin)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/saadk408/davinci-resolve-lua-mcp/releases/download/v0.2.0/davinci-resolve-lua-mcp.mcpb`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 25/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs were checked across the 3 of 3 dependencies we could resolve, so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - 0 of 3 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 44 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2144 tokens (~142/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the DaVinci Resolve Lua MCP server?

DaVinci Resolve Lua MCP ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. The MCP registry declares no SHA-256 for this bundle, so there is no published digest to check the download against.

- Download bundle: `https://github.com/saadk408/davinci-resolve-lua-mcp/releases/download/v0.2.0/davinci-resolve-lua-mcp.mcpb`

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 63, +1)

- [security] Stability: 0.97 → pass

### 2026-11-03 (score 62, 0)

- [functional improvement] Maintenance: unverified → pass
- [functional] Stability: pass → 0.93

### 2026-11-02 (score 62, +1)

- [security regression] Provenance: unverified → fail
- [functional improvement] Security disclosure: unverified → pass

### 2026-11-01 (score 61, −2)

- [security regression] Provenance: fail → unverified
- [functional regression] Maintenance: pass → unverified
- [functional regression] Security disclosure: pass → unverified

### 2026-10-22 (score 63, +1)

- [security] Stability: 0.97 → pass

### 2026-10-20 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-18 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (15)

### `resolve_status` (~111 tokens)

Bridge status

Reports whether the in-Resolve Lua bridge is running and reachable, with the reason when it is not (never started, stopped, Resolve gone, no reply, lock held), the bridge session (pid, start time, state directory), the platform, the self-install outcome of the two Lua scripts, configuration problems, and, when alive, the Resolve product, version, edition (Studio or free), current page and open project. Read-only; it does not start the bridge (only a click in Resolve can).

Output parameters:

- `alive` (boolean)
- `config_problems` (array)
- `platform` (string)
- `reason` (string)
- `start_instruction` (string)
- `state_dir` (string)

### `run_lua` (~196 tokens)

Run Lua inside Resolve

Runs a Lua 5.1 chunk inside DaVinci Resolve with the live `resolve` object and returns its first return value as JSON together with captured print output, the execution time and any error. The chunk can call any scripting-API method and change the project, so it counts as destructive. Synchronous long API calls (RenderWithQuickExport, TranscribeAudio, Export, ArchiveProject) block the bridge until they finish; use render_current_timeline and get_render_status for renders. Results over the response cap come back truncated with a preview.

Input parameters:

- `code` (string, required): Lua 5.1 source. `resolve` is the Resolve object; `return` a value to receive it as JSON (tables become objects or arrays, userdata become placeholders).
- `timeout_s` (integer): Seconds to wait for the bridge, 1..300. Claude Desktop has its own undocumented tool timeout, so keep chunks short.

Output parameters:

- `error`
- `ms` (number)
- `ok` (boolean)
- `prints` (array)
- `result`
- `result_bytes` (number)
- `result_preview` (string)
- `truncated` (boolean)

### `get_project_info` (~94 tokens)

Project overview

Returns an overview of the open project: name and unique id, current page, database (type and name), current Media Pool folder, frame rate and resolution, timeline count, root-bin clip and sub-bin counts, and the current timeline (name, unique id, start timecode, start and end frame) when one is open. Read-only. Use list_timelines or list_media_pool_clips for the full lists.

Output parameters:

- `name` (string)
- `timeline_count` (number)
- `unique_id` (string)

### `list_projects` (~57 tokens)

List projects

Lists the projects in the current project-manager folder of the current database, with last-modified and creation dates and notes where Resolve provides them, and marks the open one. Read-only. It does not switch projects; use open_project for that.

Output parameters:

- `current` (string|null)
- `projects` (array)

### `list_timelines` (~63 tokens)

List timelines

Lists every timeline of the open project: index, name, unique id, start and end frame, and video, audio and subtitle track counts, with the current one marked. Read-only. Use set_current_timeline to switch and get_timeline_items to read clips.

Output parameters:

- `timeline_count` (number)
- `timelines` (array)

### `list_media_pool_clips` (~152 tokens)

List Media Pool clips

Lists the clips in one Media Pool bin (default the root bin) with name, unique id, file path, duration, fps, resolution, type, frame count and clip colour, paginated with offset and limit. Read-only. An unknown bin path answers with the bins available at the last level that resolved. It does not list sub-bins recursively.

Input parameters:

- `bin_path` (string): Bin path from the root, segments separated by "/", e.g. "/" or "/Footage/Day 1". Bin names are matched exactly.
- `limit` (integer): Maximum clips to return, 1..200.
- `offset` (integer): Index of the first entry to return (0-based).

Output parameters:

- `bin_path` (string)
- `clips` (array)
- `limit` (number)
- `offset` (number)
- `total` (number)
- `truncated` (boolean)

### `get_timeline_items` (~164 tokens)

List timeline items

Lists the items on one track of the current timeline: name, unique id, type (video, audio, generator, transition), start, end and duration in frames (fractional when Resolve reports subframes), source start and end frames, enabled state, and the source file path when the item has a Media Pool clip. Paginated with offset and limit. Read-only. Use list_timelines for track counts.

Input parameters:

- `limit` (integer): Maximum items to return, 1..500.
- `offset` (integer): Index of the first entry to return (0-based).
- `track_index` (integer, required): 1-based track number, e.g. 1 for V1.
- `track_type` (string, required): Track type: video, audio or subtitle.

Output parameters:

- `items` (array)
- `limit` (number)
- `offset` (number)
- `timeline` (string)
- `total` (number)
- `track_index` (number)
- `track_type` (string)
- `truncated` (boolean)

### `add_marker` (~145 tokens)

Add timeline marker

Adds a marker to the current timeline at a frame counted from the timeline start (frame 0 is the first frame, whatever the start timecode) and returns the marker Resolve stored. Fails when the frame already holds a marker or lies outside the timeline. Writes to the project; it does not save it. Use delete_markers to remove markers.

Input parameters:

- `color` (string, required): One of the 16 Resolve marker colours.
- `duration` (integer): Marker duration in frames, at least 1.
- `frame` (integer, required): Frame relative to the timeline start (0-based).
- `name` (string, required): Marker name.
- `note` (string): Marker note text.

Output parameters:

- `frame` (number)
- `marker`
- `timeline` (string)

### `delete_markers` (~110 tokens)

Delete timeline markers

Deletes every marker of one colour, or all markers when no colour is given, from the current timeline, and returns how many were removed and how many remain. Destructive and not undoable through this server: it refuses unless confirm is true. It does not delete markers on clips or in the Media Pool.

Input parameters:

- `color` (string): Marker colour to delete; omit to delete all markers.
- `confirm` (boolean): Must be true; set it only after the user has agreed to the deletion.

Output parameters:

- `color` (string)
- `deleted` (number)
- `remaining` (number)

### `set_current_timeline` (~66 tokens)

Switch timeline

Makes the timeline with the given name the current timeline of the open project and returns its name, unique id and index. An unknown name answers with the known timeline names. It does not create timelines.

Input parameters:

- `name` (string, required): Exact timeline name as shown in the Media Pool.

Output parameters:

- `index` (number)
- `name` (string)
- `unique_id` (string)

### `open_project` (~125 tokens)

Open project

Loads the named project from the current project-manager folder, saving the open project first by default (LoadProject on an unsaved project can raise a dialog the bridge cannot answer). Returns the loaded project, the previous one and whether it was saved. The switch is not undoable through this server. An unknown name answers with the known project names (see list_projects).

Input parameters:

- `name` (string, required): Exact project name as listed by list_projects.
- `save_current` (boolean): Save the open project before switching (default true). false risks a modal dialog in Resolve that blocks the bridge.

Output parameters:

- `name` (string)
- `saved_previous` (boolean)
- `unique_id` (string)

### `render_current_timeline` (~172 tokens)

Queue and start a render

Queues a render of the current timeline into an existing output directory with the given file name, optionally after loading a named render preset, starts it without the interactive dialog, and returns the job id plus the queued job entry and the current format and codec. It returns as soon as rendering starts; poll get_render_status for progress. It does not wait for completion, does not change the Resolve page, and does not overwrite existing files on its own.

Input parameters:

- `filename` (string, required): File name for the render (no directory separators); Resolve adds the extension.
- `output_dir` (string, required): Absolute path of an existing directory to render into ("~" is expanded).
- `preset` (string): Render preset name from the Deliver page; validated against the preset list. Omit to keep the current render settings.

Output parameters:

- `job`
- `job_id` (string)

### `get_render_status` (~80 tokens)

Render job status

Returns one render job's status (JobStatus such as Ready, Rendering, Complete, Cancelled or Failed; completion percentage; error text; time taken or remaining) and whether Resolve is rendering at all. Read-only. An unknown job id answers with the known job ids.

Input parameters:

- `job_id` (string, required): Job id returned by render_current_timeline.

Output parameters:

- `job_id` (string)
- `rendering_in_progress` (boolean)
- `status` (object)

### `stop_bridge` (~66 tokens)

Stop the bridge

Asks the in-Resolve bridge loop to exit cleanly (it marks its session stopped and ends the script). Afterwards every Resolve tool reports "bridge not running" until the user relaunches the script from Workspace > Scripts. It does not quit Resolve and does not touch the project.

Output parameters:

- `session` (string)
- `stopped` (boolean)

### `scripting_api_docs` (~149 tokens)

Search Resolve API docs

Searches Blackmagic's shipped scripting reference for DaVinci Resolve 21.1 (DaVinciResolveScript.pyi method signatures and docstrings tagged with their class and line, TypedDict shapes, the README's sections including the lists of deprecated and unsupported calls, and the CHANGELOG) and returns the best matches with file and line. Read-only and local; it does not search the web. Hits tagged deprecated or unsupported are forms to avoid.

Input parameters:

- `limit` (integer): Maximum hits to return, 1..10.
- `query` (string, required): Method name, class name or words from a docstring, e.g. "AddMarker", "Timeline markers", "render job status".

Output parameters:

- `query` (string)
- `results` (array)
- `total_matches` (number)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/saadk408-davinci-resolve-lua-mcp/https-github-com-saadk408-davinci-resolve-lua-mcp-releases-download-v0-2-0-davin#diagnostics

## Score history

- 2026-11-05: 63
- 2026-11-04: 62
- 2026-11-03: 62
- 2026-11-02: 62
- 2026-11-01: 61
- 2026-10-31: 63
- 2026-10-30: 63
- 2026-10-29: 63
- 2026-10-28: 63
- 2026-10-27: 63
- 2026-10-26: 63
- 2026-10-25: 63
- 2026-10-24: 63
- 2026-10-23: 63
- 2026-10-22: 63
- 2026-10-21: 62
- 2026-10-20: 62
- 2026-10-19: 61
- 2026-10-18: 61
- 2026-10-17: 60
- 2026-10-16: 60
- 2026-10-15: 60
- 2026-10-14: 59
- 2026-10-13: 59
- 2026-10-12: 58
- 2026-10-10: 57
- 2026-10-09: 57
- 2026-10-06: 55
- 2026-10-04: 54
- 2026-10-03: 54

## Common questions

### What is the DaVinci Resolve Lua MCP server?

DaVinci Resolve Lua MCP is listed in the public MCP registry as io.github.saadk408/davinci-resolve-lua-mcp. Control the free edition of DaVinci Resolve 21.1 from Claude through a Lua script inside Resolve. This page covers its MCPB bundle (https://github.com/saadk408/davinci-resolve-lua-mcp/releases/download/v0.2.0/davinci-resolve-lua-mcp.mcpb).

### Is the DaVinci Resolve Lua MCP server safe to use?

DaVinci Resolve Lua MCP scores 63 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the DaVinci Resolve Lua MCP server expose?

DaVinci Resolve Lua MCP exposes 15 tools: resolve_status, run_lua, get_project_info, list_projects, list_timelines, and 10 more. Their descriptions and schemas cost roughly 1,750 tokens of context every time the server is loaded.

### What licence is the DaVinci Resolve Lua MCP server under?

DaVinci Resolve Lua MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/saadk408/davinci-resolve-lua-mcp
- Changelog RSS feed: https://verifymcp.io/servers/saadk408-davinci-resolve-lua-mcp/https-github-com-saadk408-davinci-resolve-lua-mcp-releases-download-v0-2-0-davin.xml
- Changelog JSON feed: https://verifymcp.io/servers/saadk408-davinci-resolve-lua-mcp/https-github-com-saadk408-davinci-resolve-lua-mcp-releases-download-v0-2-0-davin.json
- HTML version of this page: https://verifymcp.io/servers/saadk408-davinci-resolve-lua-mcp/https-github-com-saadk408-davinci-resolve-lua-mcp-releases-download-v0-2-0-davin
