Davinci Resolve (samuelgursky) MCP Server

davinci-resolve-mcp npm v2.210.0 Source verified

Published by samuelgursky — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.

NPM bootstrapper for the DaVinci Resolve MCP Server.

Trust grade
A
94/100
Last scanned get badge →
Trust
A · 94/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
High
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 94/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:

The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.

2. Client adoption risk — 100 − 6 = 94. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−6 capability blast radius (high) — client exposure if the model is manipulated

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 16

high Sensitive-source and external-sink co-existMTC-FLOW-004

Tools that read sensitive data ([get_media_storage_files]) and tools that can send data out ([open_project, open_project_folder]) are exposed together. An agent can move private data to the sink.

Evidence: sources [get_media_storage_files] → sinks [open_project, open_project_folder]

Fix: Keep secret-reading and egress capabilities on separate, separately-approved servers.

Location: flow get_media_storage_files → open_project

high Shell/command execution in server code (bin/davinci-resolve-mcp.mjs)MTC-SRC-002

In the server's implementation (`bin/davinci-resolve-mcp.mjs:3`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from "node:child_process"; import fs from "node:fs"; import os from "node:os"; import path from "node:path"

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server bin/davinci-resolve-mcp.mjs

high Shell/command execution in server code (install.py)MTC-SRC-002

In the server's implementation (`install.py:176`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: }')" ) result = subprocess.run( [str(python_path), "-c", script], capture_output=True, t

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server install.py

high Shell/command execution in server code (resolve-advanced/server/aaf.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/aaf.mjs:12`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: rt { spawn } from 'node:child_process'; import { existsSync } from 'node:fs'; import { fileURLToPath } from 'node:url';

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/aaf.mjs

high Shell/command execution in server code (resolve-advanced/server/capabilities.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/capabilities.mjs:14`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from 'node:child_process'; import { createRequire } from 'node:module'; const require = createRequire(impo

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/capabilities.mjs

high Shell/command execution in server code (resolve-advanced/server/deliverable-qc.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/deliverable-qc.mjs:18`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from 'node:child_process'; import { createRequire } from 'node:module'; import { probeMedia } from './ffpro

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/deliverable-qc.mjs

high Shell/command execution in server code (resolve-advanced/server/extract-frames.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/extract-frames.mjs:19`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from 'node:child_process'; import fs from 'node:fs'; import path from 'node:path'; import { requireFfmpeg }

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/extract-frames.mjs

high Shell/command execution in server code (resolve-advanced/server/ffprobe-media.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/ffprobe-media.mjs:6`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from 'node:child_process'; import { requireFfmpeg } from './capabilities.mjs'; /** Parse an "a/b" rational

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/ffprobe-media.mjs

high Shell/command execution in server code (resolve-advanced/server/group-grade-read.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/group-grade-read.mjs:20`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from 'node:child_process'; import { createRequire } from 'node:module'; import { drxTool } from './tools/dr

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/group-grade-read.mjs

high Shell/command execution in server code (resolve-advanced/server/offline-ref-db.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/offline-ref-db.mjs:340`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: const r = require('node:child_process').spawnSync( dump, ['-h', String(cfg.host), '-p', String(cfg.port), '-U',

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/offline-ref-db.mjs

high Shell/command execution in server code (resolve-advanced/server/qc-sampler.mjs)MTC-SRC-002

In the server's implementation (`resolve-advanced/server/qc-sampler.mjs:17`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: spawnSync } from 'node:child_process'; import { createRequire } from 'node:module'; const require = createRequire(impo

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/qc-sampler.mjs

medium Tool "unlink_proxy_media" can modify the filesystemMTC-CAP-002

Tool "unlink_proxy_media" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool unlink_proxy_media

medium Tool "unlink_clip_proxy_media" can modify the filesystemMTC-CAP-002

Tool "unlink_clip_proxy_media" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.

Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.

Location: tool unlink_clip_proxy_media

medium Dynamic module load from a non-literal (resolve-advanced/server/tools/drt.mjs)MTC-SRC-005

In the server's implementation (`resolve-advanced/server/tools/drt.mjs:54`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: rame crashes Resolve on import (measured)),audioOnly?+track? (explicit AUDIO placement on audio track 1-16; presence sup

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server resolve-advanced/server/tools/drt.mjs

low Mutating tool "unlink_proxy_media" declares no destructiveHintMTC-CAP-005

Tool "unlink_proxy_media" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool unlink_proxy_media

low Mutating tool "unlink_clip_proxy_media" declares no destructiveHintMTC-CAP-005

Tool "unlink_clip_proxy_media" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.

Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.

Location: tool unlink_clip_proxy_media

Tools 200

Each tool and what it can reach — statically extracted from the published source.

  • get_media_storage_filesreads sensitive data
  • open_projectnetwork egress
  • open_project_foldernetwork egress
  • unlink_clip_proxy_mediawrites files
  • unlink_proxy_mediawrites files
  • add_clip_flagno sensitive capability
  • add_clip_markerno sensitive capability
  • add_clip_mattes_to_media_poolno sensitive capability
  • add_color_groupno sensitive capability
  • add_items_to_media_pool_from_storageno sensitive capability
Show 190 more tools ↓
  • add_render_jobno sensitive capability
  • add_subfolderno sensitive capability
  • add_timeline_mattes_to_media_poolno sensitive capability
  • analyze_clip_for_intellisearchno sensitive capability
  • analyze_clip_for_slateno sensitive capability
  • append_to_timelineno sensitive capability
  • apply_fairlight_preset_to_current_timelineno sensitive capability
  • archive_projectno sensitive capability
  • auto_sync_audiono sensitive capability
  • clear_clip_audio_classificationno sensitive capability
  • clear_clip_colorno sensitive capability
  • clear_clip_flagsno sensitive capability
  • clear_clip_mark_in_outno sensitive capability
  • clear_clip_transcriptionno sensitive capability
  • clear_folder_transcriptionno sensitive capability
  • clear_transcriptionno sensitive capability
  • close_projectno sensitive capability
  • create_cloud_project_toolno sensitive capability
  • create_gallery_power_grade_albumno sensitive capability
  • create_gallery_still_albumno sensitive capability
  • create_projectno sensitive capability
  • create_project_folderno sensitive capability
  • create_stereo_clipno sensitive capability
  • delete_clip_marker_at_frameno sensitive capability
  • delete_clip_marker_by_custom_datano sensitive capability
  • delete_clip_markers_by_colorno sensitive capability
  • delete_clip_mattesno sensitive capability
  • delete_color_groupno sensitive capability
  • delete_layout_preset_toolno sensitive capability
  • delete_media_pool_clipsno sensitive capability
  • delete_media_pool_foldersno sensitive capability
  • delete_projectno sensitive capability
  • delete_project_folderno sensitive capability
  • delete_render_jobno sensitive capability
  • delete_render_presetno sensitive capability
  • delete_stills_from_albumno sensitive capability
  • delete_timelines_by_idno sensitive capability
  • disable_background_tasks_for_current_sessionno sensitive capability
  • export_current_frame_as_stillno sensitive capability
  • export_folderno sensitive capability
  • export_layout_preset_toolno sensitive capability
  • export_media_pool_metadatano sensitive capability
  • export_project_to_fileno sensitive capability
  • export_stills_from_albumno sensitive capability
  • folder_analyze_for_intellisearchno sensitive capability
  • folder_analyze_for_slateno sensitive capability
  • folder_clear_audio_classificationno sensitive capability
  • folder_clear_transcriptionno sensitive capability
  • folder_exportno sensitive capability
  • folder_perform_audio_classificationno sensitive capability
  • folder_remove_motion_blurno sensitive capability
  • folder_transcribe_audiono sensitive capability
  • generate_speechno sensitive capability
  • get_album_stillsno sensitive capability
  • get_clip_audio_mappingno sensitive capability
  • get_clip_colorno sensitive capability
  • get_clip_flag_listno sensitive capability
  • get_clip_mark_in_outno sensitive capability
  • get_clip_marker_by_custom_datano sensitive capability
  • get_clip_marker_custom_datano sensitive capability
  • get_clip_markersno sensitive capability
  • get_clip_matte_listno sensitive capability
  • get_clip_media_idno sensitive capability
  • get_clip_metadatano sensitive capability
  • get_clip_propertyno sensitive capability
  • get_clip_third_party_metadatano sensitive capability
  • get_clip_timelineno sensitive capability
  • get_clip_unique_id_by_nameno sensitive capability
  • get_color_group_clipsno sensitive capability
  • get_color_group_post_clip_node_graphno sensitive capability
  • get_color_group_pre_clip_node_graphno sensitive capability
  • get_color_groups_listno sensitive capability
  • get_current_databaseno sensitive capability
  • get_current_project_folderno sensitive capability
  • get_current_render_format_and_codecno sensitive capability
  • get_current_render_modeno sensitive capability
  • get_current_still_albumno sensitive capability
  • get_database_listno sensitive capability
  • get_folder_clip_listno sensitive capability
  • get_folder_is_staleno sensitive capability
  • get_folder_subfolder_listno sensitive capability
  • get_folder_unique_idno sensitive capability
  • get_gallery_album_nameno sensitive capability
  • get_gallery_power_grade_albumsno sensitive capability
  • get_gallery_still_albumsno sensitive capability
  • get_media_pool_unique_idno sensitive capability
  • get_media_storage_subfoldersno sensitive capability
  • get_mounted_volumesno sensitive capability
  • get_project_attributes_in_current_folderno sensitive capability
  • get_project_folder_listno sensitive capability
  • get_project_preset_listno sensitive capability
  • get_project_unique_idno sensitive capability
  • get_quick_export_render_presetsno sensitive capability
  • get_render_codecsno sensitive capability
  • get_render_formatsno sensitive capability
  • get_render_job_listno sensitive capability
  • get_render_job_statusno sensitive capability
  • get_render_resolutionsno sensitive capability
  • get_selected_clipsno sensitive capability
  • get_still_labelno sensitive capability
  • get_timeline_by_indexno sensitive capability
  • get_timeline_matte_listno sensitive capability
  • goto_parent_project_folderno sensitive capability
  • goto_root_project_folderno sensitive capability
  • graph_apply_arri_cdl_lutno sensitive capability
  • graph_apply_grade_from_drxno sensitive capability
  • graph_get_lutno sensitive capability
  • graph_get_node_cache_modeno sensitive capability
  • graph_get_node_labelno sensitive capability
  • graph_get_num_nodesno sensitive capability
  • graph_get_tools_in_nodeno sensitive capability
  • graph_reset_all_gradesno sensitive capability
  • graph_set_lutno sensitive capability
  • graph_set_node_cache_modeno sensitive capability
  • graph_set_node_enabledno sensitive capability
  • import_cloud_project_toolno sensitive capability
  • import_folder_from_fileno sensitive capability
  • import_layout_preset_toolno sensitive capability
  • import_mediano sensitive capability
  • import_project_from_fileno sensitive capability
  • import_stills_to_albumno sensitive capability
  • import_timeline_from_fileno sensitive capability
  • insert_audio_to_current_trackno sensitive capability
  • inspect_custom_objectno sensitive capability
  • is_rendering_in_progressno sensitive capability
  • link_clip_full_resolution_mediano sensitive capability
  • link_clip_proxy_mediano sensitive capability
  • link_proxy_mediano sensitive capability
  • load_burn_in_presetno sensitive capability
  • load_cloud_projectno sensitive capability
  • load_cloud_project_toolno sensitive capability
  • load_layout_preset_toolno sensitive capability
  • load_render_presetno sensitive capability
  • monitor_clip_growing_fileno sensitive capability
  • move_clips_to_folderno sensitive capability
  • move_media_pool_foldersno sensitive capability
  • object_helpno sensitive capability
  • perform_clip_audio_classificationno sensitive capability
  • quit_appno sensitive capability
  • refresh_lut_listno sensitive capability
  • refresh_media_pool_foldersno sensitive capability
  • remove_clip_motion_blurno sensitive capability
  • rename_color_groupno sensitive capability
  • render_with_quick_exportno sensitive capability
  • replace_clipno sensitive capability
  • replace_media_pool_clipno sensitive capability
  • replace_media_pool_clip_preserve_sub_clipno sensitive capability
  • restart_appno sensitive capability
  • restore_cloud_project_toolno sensitive capability
  • restore_projectno sensitive capability
  • reveal_in_media_storageno sensitive capability
  • save_as_new_render_presetno sensitive capability
  • save_layout_preset_toolno sensitive capability
  • save_projectno sensitive capability
  • set_cache_modeno sensitive capability
  • set_cache_pathno sensitive capability
  • set_clip_colorno sensitive capability
  • set_clip_mark_in_outno sensitive capability
  • set_clip_metadatano sensitive capability
  • set_clip_propertyno sensitive capability
  • set_clip_third_party_metadatano sensitive capability
  • set_color_science_mode_toolno sensitive capability
  • set_color_space_toolno sensitive capability
  • set_current_databaseno sensitive capability
  • set_current_media_pool_folderno sensitive capability
  • set_current_render_format_and_codecno sensitive capability
  • set_current_render_modeno sensitive capability
  • set_current_still_albumno sensitive capability
  • set_gallery_album_nameno sensitive capability
  • set_media_pool_clip_nameno sensitive capability
  • set_optimized_media_modeno sensitive capability
  • set_project_nameno sensitive capability
  • set_project_presetno sensitive capability
  • set_project_property_toolno sensitive capability
  • set_project_settingno sensitive capability
  • set_proxy_modeno sensitive capability
  • set_proxy_qualityno sensitive capability
  • set_render_settingsno sensitive capability
  • set_selected_clipno sensitive capability
  • set_still_labelno sensitive capability
  • set_superscale_settings_toolno sensitive capability
  • set_timeline_format_toolno sensitive capability
  • setup_multicam_timelineno sensitive capability
  • start_rendering_jobsno sensitive capability
  • stop_renderingno sensitive capability
  • switch_pageno sensitive capability
  • transcribe_audiono sensitive capability
  • transcribe_clip_audiono sensitive capability
  • transcribe_folder_audiono sensitive capability
  • update_clip_marker_custom_datano sensitive capability

Toxic flows 1

Cross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).

What this scan could not see

Versions 10

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v2.210.0 latest A 94/100 16 1.13.0 2026-09-07
v2.207.0 A 94/100 16 1.13.0 2026-09-06
v2.205.0 A 94/100 16 1.13.0 2026-09-04
v2.145.0 A 94/100 16 1.13.0 2026-09-01
v2.121.0 A 94/100 15 1.13.0 2026-08-31
Show 5 more versions ↓
v2.104.1 A 94/100 15 1.13.0 2026-08-30
v2.103.3 A 94/100 15 1.13.0 2026-08-29
v2.103.2 A 94/100 15 1.13.0 2026-08-28
v2.103.1 A 94/100 15 1.13.0 2026-08-25
v2.99.3 A 94/100 15 1.12.1 2026-08-23

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 94/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/davinci-resolve-mcp/badge.svg)](https://mcptrustchecker.com/registry/davinci-resolve-mcp)
HTML
<a href="https://mcptrustchecker.com/registry/davinci-resolve-mcp"><img src="https://mcptrustchecker.com/registry/davinci-resolve-mcp/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/davinci-resolve-mcp/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan davinci-resolve-mcp --online

Use the free API → How scoring works

Other implementations of Davinci Resolve 1

Independent packages implementing the same tool, scanned with the same engine. Compare all 2 side by side →

More in Data Science & ML