Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

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.

−1 this week 62 Trust /100

Last scanned (23 hours ago)

Scores higher than 96% of MCPB servers

Category Design and Media

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security25
  • 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.Unverified
  • Known CVEs were checked across the 3 of 3 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • 0 of 3 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 42 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
  • AI-judged instruction clarity (excellent).Pass
  • 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. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 0
    • Maintenance: unverified → pass ▲ functional
    • Stability: pass → 0.93 functional
  • 2 Nov 26 +1
    • Provenance: unverified → fail ▼ security
    • Security disclosure: unverified → pass ▲ functional
  • 1 Nov 26 −2
    • Provenance: fail → unverified ▼ security
    • Maintenance: pass → unverified ▼ functional
    • Security disclosure: pass → unverified ▼ functional
  • 22 Oct 26 +1
    • Stability: 0.97 → pass security
  • 20 Oct 26 +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.

  • 18 Oct 26 +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.

  • 15 Oct 26 +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.

  • 13 Oct 26 +1

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

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed mcpb/https://github.com/saadk408/davinci-resolve-lua-mcp/releases/download/v0.2.0/davinci-resolve-lua-mcp.mcpb

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Dependencies 3 packages
Packages resolved 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 15 exposed · ~1,750 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_marker ~145

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.

NameTypeReqDescription
colorstringyesOne of the 16 Resolve marker colours.
durationinteger–Marker duration in frames, at least 1.
frameintegeryesFrame relative to the timeline start (0-based).
namestringyesMarker name.
notestring–Marker note text.
NameTypeReqDescription
framenumberyes–
marker–––
timelinestringyes–

No examples provided.

delete_markers ~110

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.

NameTypeReqDescription
colorstring–Marker colour to delete; omit to delete all markers.
confirmboolean–Must be true; set it only after the user has agreed to the deletion.
NameTypeReqDescription
colorstringyes–
deletednumberyes–
remainingnumberyes–

No examples provided.

get_project_info ~94

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
namestringyes–
timeline_countnumberyes–
unique_idstring––

No examples provided.

get_render_status ~80

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.

NameTypeReqDescription
job_idstringyesJob id returned by render_current_timeline.
NameTypeReqDescription
job_idstringyes–
rendering_in_progressboolean––
statusobjectyes–

No examples provided.

get_timeline_items ~164

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.

NameTypeReqDescription
limitinteger–Maximum items to return, 1..500.
offsetinteger–Index of the first entry to return (0-based).
track_indexintegeryes1-based track number, e.g. 1 for V1.
track_typestringyesTrack type: video, audio or subtitle.
NameTypeReqDescription
itemsarrayyes–
limitnumberyes–
offsetnumberyes–
timelinestringyes–
totalnumberyes–
track_indexnumberyes–
track_typestringyes–
truncatedbooleanyes–

No examples provided.

list_media_pool_clips ~152

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.

NameTypeReqDescription
bin_pathstring–Bin path from the root, segments separated by "/", e.g. "/" or "/Footage/Day 1". Bin names are matched exactly.
limitinteger–Maximum clips to return, 1..200.
offsetinteger–Index of the first entry to return (0-based).
NameTypeReqDescription
bin_pathstringyes–
clipsarrayyes–
limitnumberyes–
offsetnumberyes–
totalnumberyes–
truncatedbooleanyes–

No examples provided.

list_projects ~57

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
currentstring|null––
projectsarrayyes–

No examples provided.

list_timelines ~63

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
timeline_countnumberyes–
timelinesarrayyes–

No examples provided.

open_project ~125

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).

NameTypeReqDescription
namestringyesExact project name as listed by list_projects.
save_currentboolean–Save the open project before switching (default true). false risks a modal dialog in Resolve that blocks the bridge.
NameTypeReqDescription
namestringyes–
saved_previousboolean––
unique_idstring––

No examples provided.

render_current_timeline ~172

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.

NameTypeReqDescription
filenamestringyesFile name for the render (no directory separators); Resolve adds the extension.
output_dirstringyesAbsolute path of an existing directory to render into ("~" is expanded).
presetstring–Render preset name from the Deliver page; validated against the preset list. Omit to keep the current render settings.
NameTypeReqDescription
job–––
job_idstringyes–

No examples provided.

resolve_status ~111

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).

Input schema present but exposes no named parameters.

NameTypeReqDescription
alivebooleanyes–
config_problemsarrayyes–
platformstringyes–
reasonstring––
start_instructionstring––
state_dirstringyes–

No examples provided.

run_lua ~196

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.

NameTypeReqDescription
codestringyesLua 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_sinteger–Seconds to wait for the bridge, 1..300. Claude Desktop has its own undocumented tool timeout, so keep chunks short.
NameTypeReqDescription
error–––
msnumber––
okbooleanyes–
printsarrayyes–
result–––
result_bytesnumber––
result_previewstring––
truncatedboolean––

No examples provided.

scripting_api_docs ~149

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.

NameTypeReqDescription
limitinteger–Maximum hits to return, 1..10.
querystringyesMethod name, class name or words from a docstring, e.g. "AddMarker", "Timeline markers", "render job status".
NameTypeReqDescription
querystringyes–
resultsarrayyes–
total_matchesnumberyes–

No examples provided.

set_current_timeline ~66

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.

NameTypeReqDescription
namestringyesExact timeline name as shown in the Media Pool.
NameTypeReqDescription
indexnumber––
namestringyes–
unique_idstring––

No examples provided.

stop_bridge ~66

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
sessionstring––
stoppedbooleanyes–

No examples provided.

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.

mcpb · davinci-resolve-lua-mcp.mcpb

Download bundle

The MCP registry declares no SHA-256 for this bundle, so there is no published digest to check it against. Open it with an MCPB-capable host such as Claude Desktop.

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 62 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.