
DaVinci Resolve Lite MCP
io.github.2semPublished by GitHub account 2semv0.18.0Updated Oct 25, 2026
Control DaVinci Resolve, including the free Lite edition. Manual setup only — see README.
The publisher's own server: Resolve
Overview
Lets an AI client control DaVinci Resolve, including free Lite builds that still allow Python menu scripts, through a local HTTP endpoint.
- What you can do
- Switch pages and adjust project and timeline settings, markers and scene cuts, and load, create or duplicate projects and timelines with their lifecycle actions. Add, delete, enable, lock and rename tracks. Place, append and delete clips, add titles and generators, and apply transform, crop and zoom. Import and delete media, read properties and metadata, tag clips and browse disks. Work the color page's node graph, LUTs, grade resets and stills. Manage the render queue, formats and codecs, and export or import frames, timelines and projects.
- When to use it
- Useful when you want to drive an editing, color or render session in DaVinci Resolve from plain-language requests, especially on a free Lite build where the usual external scripting route is blocked.
- Requirements
- macOS with DaVinci Resolve Studio, or a Lite/free build that still exposes Python scripts under Workspace > Scripts. The server must be started by hand from Resolve's Scripts menu and registered with an MCP client over Streamable HTTP at a localhost address. No pip dependencies; optional environment variables and a JSON config file control host, port and logging.
Installation
In SourceWeft
- Open DaVinci Resolve Lite MCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
davinci-resolve-lite-mcp
[test] [PyPI] [MCP Registry] [License: MIT] [Python 3.9+] [Platform: macOS] [DaVinci Resolve: Lite | Studio] [163 tools] [Zero dependencies] [Lite 21.1+ Python blocked]
Unavailable on DaVinci Resolve Lite 21.1+ (App Store) — Python menu scripts are blocked; the MCP server cannot start. Works on pre-21.1 Lite or Studio.
https://github.com/user-attachments/assets/8429932f-643b-4131-bdf6-dad0d3399137
Claude builds an opening title in DaVinci Resolve Lite — a gold "GameHelper"
Text+ node with glow and a zoom-in keyframe reveal — from a plain-language
request, via insert_fusion_title + style_fusion_title.
An MCP server that lets an AI client such as Claude Code control DaVinci Resolve — including free (Lite) builds that still allow Python menu scripts, which the existing davinci-resolve-mcp project cannot drive.
The free edition blocks external scripting, but it still runs Python scripts launched from its own Workspace > Scripts menu. This project rides that path: the MCP server runs inside Resolve as a menu script, and exposes Resolve's Python API over a small local HTTP endpoint that Claude connects to.
Tools
Ask Claude in plain language; it drives Resolve through the tools — see the demo above. See the tools reference for the full 163-tool surface — editing, color, render, media pool, and Fusion title styling.
Why this works on compatible free editions
- Compatible free Resolve builds permit Python scripts run from the Scripts menu (only external network scripting is restricted).
- A menu script gets the
resolveobject for free and may run a long-lived loop — long enough to host a server. - The sandboxed Lite app ships the
com.apple.security.network.serverentitlement, so it can open a localhost listening socket. - Zero dependencies — pure Python standard library. Nothing to
pip installinto Resolve's interpreter.
Requirements
- macOS with DaVinci Resolve Studio, or a DaVinci Resolve Lite/free build that still exposes Python scripts in Workspace > Scripts.
- Claude Code (or any MCP client that speaks the Streamable HTTP transport).
[!WARNING] DaVinci Resolve Lite 21.1+ compatibility issue: Blackmagic's DaVinci Resolve 21.1 release notes and current user reports indicate that the free/App Store Lite build may block Python menu scripts. When this happens, Workspace > Scripts opens but its category folders (Utility, Comp, Edit, Color, Deliver) are all empty, even though the MCP files are installed in the correct
Fusion/Scripts/Utilityfolder.This server must be launched from Resolve as a Python menu script. If your Lite build blocks Python scripts, reinstalling this project will not fix the empty menu. Use a pre-21.1 Lite build that still allows Python menu scripts, or use a Studio/non-blocked build. The Lua Console may still open, but that is not enough: if
bmd.scriptapp("Resolve")returnsnil, the Resolve scripting object is unavailable there too.
Install
Or via pip, if you'd rather not clone the repo:
davinci-mcp-install does exactly what install.sh does (same Lite/Studio
detection, same copy-vs-symlink logic) — it just reads the files from your
pip-installed package instead of a git checkout. davinci-mcp-uninstall
reverses it. Either way, the sandbox note below still applies, and you still
start the server from Resolve's own menu — see Run.
macOS user-install note. If you see
Defaulting to user installation because normal site-packages is not writeable, pip installed the console scripts under$(python3 -m site --user-base)/bin, which usually isn't onPATH. Either run the full path —"$(python3 -m site --user-base)/bin/davinci-mcp-install"— or add thatbindirectory toPATH. And use&&, not&, between the two commands: a bare&backgroundspip installand racesdavinci-mcp-installbefore the package exists.
Also listed on the MCP Registry as
io.github.2sem/davinci-resolve-lite-mcp
(verify) —
for discoverability only. The listing is metadata-only (no auto-install
packages/remotes entry): this server can't be spawned by an MCP client the
way a typical registry server can, since it must run inside Resolve's own
embedded Python interpreter, started by hand from the Scripts menu. Install it
one of the two ways above.
install.sh deploys:
- the two launcher scripts into
Fusion/Scripts/Utility(a folder Resolve scans for the Scripts menu; Utility shows on every page), and - the
resolve_mcppackage intoFusion/Scripts/MCP— a folder Resolve does not scan, so the helper modules stay out of the menu.
The Lite container path is detected automatically.
Sandbox note (important). DaVinci Resolve Lite is sandboxed and can only read its own container,
~/Movies, and files you pick interactively. A symlink that points outside those locations (e.g. into a clone under~/Projects) cannot be followed by the sandboxed app, so the menu script would silently never run. For that reasoninstall.shcopies the files into the container on Lite (and symlinks only on the non-sandboxed Studio build). Re-run./install.shafter pulling updates.Resolve enumerates only the category folders (
Utility / Comp / Tool / Edit / Color / Deliver) for its Scripts menu — that is why the launchers go inUtilityand the package hides inMCP.The same sandboxing applies to file paths you ask the tools to use: exports/imports should target
~/Movies(or other granted locations), otherwise Resolve cannot write/read them.
Run
-
In DaVinci Resolve: Workspace > Scripts > Utility > davinci_mcp_server.
[Workspace > Scripts menu showing davinci_mcp_server and stop_davinci_mcp_server]
-
Open Workspace > Console — it prints the endpoint and port:
The startup guide prints to the Resolve Console (Workspace > Console). Because the server runs continuously, its Console output can buffer until it stops, so both scripts also mirror every line to a logfile:
Watch it live with
./logs.sh. (Override the directory withDAVINCI_MCP_LOG_DIR.)~/Moviesis used because the sandboxed Lite app is allowed to write there.Once running, every tool call is logged to the Console as a single line (
[davinci-mcp] <name> <args> -> ok|error (Nms)):[Resolve Console showing per-command davinci-mcp log lines]
Update check. Like
brew/CocoaPods, each launch checks PyPI in the background for a newer release and prints a one-line nudge to the Console if one exists — never blocks startup, and any failure (offline, PyPI down) stays silent in the logfile only. Disable withDAVINCI_MCP_SKIP_UPDATE_CHECK=1. -
Register it with Claude Code (one-time):
Then verify / reconnect with the
/mcpcommand inside Claude Code — it lists connected servers and reconnects them. If Claude was already running when you launched the script, type/mcp(or restart the session) so it picks up thedavinciserver. -
Ask Claude to control Resolve.
Troubleshooting: Workspace > Scripts is empty
If Workspace > Scripts shows the expected category folders but every folder is empty, Resolve is not loading menu scripts. Check this before reinstalling:
-
On DaVinci Resolve Studio / builds with the scripting preference, set Preferences > System > General > External scripting using to Local or Network, save, then fully restart Resolve.
-
On DaVinci Resolve Lite 21.1+ / App Store builds where Python is blocked (see Blackmagic's 21.1 release notes), the preference may be unavailable and the Scripts menu stays empty. This MCP server cannot start on those builds because it requires Python menu-script execution inside Resolve.
-
If Workspace > Console still shows a
Lua>prompt, that only proves the Lua console exists. You can check whether the Resolve scripting object is available with:If the second line prints
nil, the current Lite build is not exposing the Resolve scripting object through Lua either. -
The hidden
Fusion/Scripts/MCPfolder is not supposed to appear in the menu; onlydavinci_mcp_serverandstop_davinci_mcp_servershould appear under Utility on compatible builds.
Configure the port (stable, recommended)
By default the server listens on 8765 and auto-increments to 8766, 8767,
… if that port is busy (another local tool may already hold 8765). Because
the winner of that race can change between launches, the URL you registered with
Claude can drift, surfacing as:
To lock the port for good, drop a small JSON config file. When a port is set this way it is pinned — the server binds exactly that port and never auto-increments, so you register Claude once and the URL never moves.
Create ~/Movies/davinci-resolve-lite-mcp.config.json:
Why
~/Moviesand not~/.config? The Lite app is sandboxed and can only read its own container,~/Movies, and files you pick interactively —~/.configis outside the sandbox, so Lite cannot read it (this is the same reason the logfile lives in~/Movies). The server also checks~/.config/davinci-resolve-lite-mcp/config.jsonfor the non-sandboxed Studio build, where that path is conventional.
Then restart the server (Scripts > Utility > stop_davinci_mcp_server, then davinci_mcp_server) and register Claude once at the fixed port:
The Console banner confirms the source — look for
Port : pinned (from …) — will not auto-increment.
Resolution order (highest priority first): the DAVINCI_MCP_PORT /
DAVINCI_MCP_HOST environment variables, then the config file, then the
built-in defaults. The env vars also pin the port, but a Dock-launched Resolve
won't see a shell export; the config file is the simplest persistent option.
DAVINCI_MCP_CONFIG=/path/to.json forces a specific config file exclusively
— if that path is missing or malformed the server falls back to the built-in
defaults rather than reading ~/Movies / XDG.
If the port already drifted and Claude points at the wrong one, re-point it:
Stopping
Any of these stops the server:
- From the menu: Workspace > Scripts > Utility > stop_davinci_mcp_server
- From a terminal:
./stop.sh - Quit DaVinci Resolve
The menu stop script and stop.sh both POST to the server's /shutdown
endpoint, scanning the same port range the server uses on startup.
The port auto-increments from
8765only when it is not pinned. To lock it so the URL never moves between launches, see Configure the port.
Tools
163 tools, spanning the full pipeline:
- Status & navigation — page switching, project/timeline settings
- Projects & timelines — load/create/duplicate, markers, scene cuts, lifecycle
- Tracks — add/delete, enable/lock/rename
- Editing — place/append/delete clips, titles & generators, transform/crop/zoom
- Media pool & storage — import/delete, properties & metadata, tagging, disk browse
- Color — node graph LUT/enable, reset grades, stills
- Render & export — render queue, formats/codec, frame/timeline/project export & import
See docs/TOOLS.md for the complete per-tool reference.
Every tool call is logged to the Resolve Console and the logfile as a single
line: [davinci-mcp] <name> <args> -> ok|error|EXCEPTION (Nms).
Project layout
Testing
- Offline (no Resolve, no server) — import + dispatcher + tool-count smoke:
- Live integration — one test per tool against a running server (Resolve open
with a project + a media clip, and
davinci_mcp_serverlaunched): Each test name equals the tool name, so when you change a tool you can run just its test:python3 tests/live_test.py <tool>. Tests are reversible (scratch timeline + temp files, cleaned up). File-dependent and session-destructive tools are checked via their error path; Studio-only / heavy tools (e.g.detect_scene_cuts,render_current_timeline,quick_export) are skipped with a reason. A few marker / still tests depend on a clean Resolve session state — re-run them after a fresh launch if they flake.
Contributing
See CONTRIBUTING.md for how to add a tool, run the suites, the stdlib-only / Lite-first constraints, and the release flow.
Scope
This server targets the free (Lite) edition and intentionally covers only
API that runs there. Studio-only / paid features are deliberately omitted
(they no-op or error on Lite), namely: audio transcription, subtitles-from-audio,
Magic Mask, Stabilize, Smart Reframe, Dolby Vision analysis, Voice Isolation,
and cloud projects / database management. The remaining unwrapped methods are
trivial accessors (GetUniqueId, cache modes, Fusion-comp internals, takes,
stereo/3D, layout & burn-in presets, mattes) — not functional gaps.
Known limitations
- Clips can be addressed by name (within the current media-pool folder) or
by id (
id/ids, resolvable across any bin) — passid/idswhen names are ambiguous or the clip lives in another folder. - Tool arguments are validated against each tool's JSON Schema (required fields, basic types, and enums); a malformed call returns a clear error naming the offending argument. Deep/nested schema constraints are not exhaustively checked.
Security note
The server binds to 127.0.0.1 only, so it is reachable from your machine
only. It exposes control of DaVinci Resolve to any local process that can reach
the port — only run it on a machine you trust.
The one outbound call the server makes on its own is the startup update check
(a GET to PyPI's public JSON API for the current version number — no other
data sent). Disable it with DAVINCI_MCP_SKIP_UPDATE_CHECK=1 if you'd rather
it made none.
License
MIT — see LICENSE.
Source: README.md at commit b38bd81
Tools
0Version history
1- v0.18.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Resolve integrations
Resolve
ai.resolveOfficial publisher
Resolve is a remote AI DevOps investigation server that lets an assistant investigate alerts, run root-cause analysis and answer production questions across…

ResolveMCP-ext
Published by GitHub account CaptRauti
MCP server that gives an assistant DaVinci Resolve 21.1.2 scripting features the mainstream Resolve MCP servers lack: clip effects, Paste Attributes, frame…

DaVinci Resolve
Published by GitHub account Aedelon
MCP server that lets an AI assistant edit, grade and deliver in DaVinci Resolve through typed, verified scripting-API actions.

DaVinci Resolve MCP (free edition)
Published by GitHub account kingjamesch
Drives DaVinci Resolve 21.1 (free or Studio) on macOS through a Lua bridge, letting an assistant manage projects, timelines, media and renders.

Nigeria Bank Resolve MCP by Wycord
Published by GitHub account wycord
Resolves a Nigerian bank account number and bank code to the registered account name, and lists Nigerian banks with their codes.