跳到正文
cccskills
免费在 GitHub 公开

bdb-davinci-mcp

Utilizes the DaVinci Resolve MCP servers to control timeline editing, media analysis, color grading, and Fusion/Fairlight scripting.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md8.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

DaVinci Resolve MCP — Integration and AI Agent Guide

This skill file instructs AI agents on how to interface with the DaVinci Resolve MCP Server integrations (including davinci-resolve-mcp and davinci-mcp-professional). It details page requirements, media analysis, edit loops, versioning pipelines, and troubleshooting steps.

1. Overview and Pipeline Value

The DaVinci Resolve MCP Server exposes the complete scripting API of DaVinci Resolve Studio (18.5 to 21+) to AI models. In the BDB OS workflow, this server acts as an intelligent assistant that can automate timeline assembly, perform source-safe audio/video analysis, manage color grade metadata (CDLs/LUTs/stills), write timeline markers, and compile extension scripts.

Architecture

  • Local Scripting API: Communicates with Resolve via the official external Python scripting interface.
  • Two Operational Modes:
    • Compound Mode (Default): Exposes 32 structured tools containing 136 guarded workflow kernels. Keeps the model's context footprint lean.
    • Granular Mode (--full): Exposes 341 tools representing a one-to-one mapping of every Resolve scripting API method.
  • Local Control Panel: Includes a browser dashboard (venv/bin/python -m src.control_panel) for visual inspection, timeline rollback, and manual analysis review.

2. System Instructions

Page Requirements

Resolve is page-centric. Many tool calls will fail if the application is on the wrong page. Always verify or transition the page before invoking page-specific tools:

WorkflowPage RequiredTransition Command
Media Ingest / BinsMediaresolve_control(action="open_page", params={"page": "media"})
Timeline Assembly / EditsEdit or Cutresolve_control(action="open_page", params={"page": "edit"})
Color Grading / LUTS / CDLColorresolve_control(action="open_page", params={"page": "color"})
Audio ConfigurationFairlightresolve_control(action="open_page", params={"page": "fairlight"})
Effects / CompositingFusionresolve_control(action="open_page", params={"page": "fusion"})
Render Setup / QueuesDeliverresolve_control(action="open_page", params={"page": "deliver"})

Media Analysis and Visual Verification (host_chat_paths)

  1. Source Media Safety: Never transcode, modify, or create derivatives of original camera files. Write report files only to the davinci-resolve-mcp-analysis scratch directory.
  2. Visual Analysis Flow:
    • analyze_clip or analyze_bin extracts keyframes to disk and returns a deferred payload with frame_paths and a verification token.
    • The AI agent must read these image frames, generate a structured description, and finalize the analysis by calling media_analysis(action="commit_vision", params={clip_id, visual, vision_token}).
    • Do not skip commit_vision; doing so leaves the clip in a pending_host_vision_analysis error state.

Evidence-Based Editing (edit_engine)

Every timeline edit operates on a Plan → Confirm → Execute loop:

  • plan_tighten or plan_selects calculates trims (e.g., dead air removal from transcription evidence) and returns a plan_id.
  • The user must review this plan (optionally via the browser UI).
  • Run execute_tighten(plan_id) with a verification token to write the edits to a new timeline version.

3. Available Tools and API Parameters

Key tools on the compound server include:

ToolActionParametersDescription
resolve_controllaunch, get_page, open_page, api_truth, quitpage?: stringManages active page contexts and Resolve application states.
project_managerlist, get_current, create, load, save, import_project, export_project, lint, apply_specname?: string, path?: string, spec?: objectHandles project CRUD, backup archives, health linting, and declarative YAML specs.
media_poolget_clips, import_media, move_clips, setup_multicam_timeline, get_selectedpaths?: string[], target_path?: stringOrganizes media pool folders, imports files, and sets up multi-cam stacks.
media_pool_itemget_metadata, set_metadata, get_clip_property, set_clip_color, get_audio_mappingclip_id: string, key: string, value?: anySets search tags, notes, track mapping, and clip colors in Resolve.
media_analysisplan, coverage_report, analyze_clip, detect_sync_events, publish_clip_metadata, commit_vision, build_embeddings, find_similarclip_id?: string, kinds?: string[], vision_token?: stringHandles visual keyframing, audio transcriptions, sync detection, and semantic vector indexing.
edit_engineplan_selects, execute_selects, plan_tighten, execute_tighten, plan_swap, execute_swapplan_id?: string, timeline_name?: string, alternate_index?: intPlans and executes video trimming, select reels, and alternate take swaps.
timeline_versioningbegin_run, end_run, archive_current, list_versions, diff_versions, diff_timelinestimeline_name?: string, reason?: stringRecords edit logs, structures version diffs, and rolls back edits.
script_pluginrun_inline, execute, safe_install_extension, safe_remove_extensionsource: string, language: stringAuthoring utility that runs or installs custom Lua/Python script extensions.

4. Code Recipes and Prompt Cookbook

Recipe 1: CDL Grade Backup and Export

Snapshot a clip's grade, inspect CDL, and export a look:

// Step 1: Switch to Color page
// Tool: resolve_control(action="open_page", params={"page": "color"})

// Step 2: Snapshot active item's grade
// Tool: timeline_item_color(action="grade_version_snapshot", params={"version_name": "BeforeAdjustment"})

// Step 3: Set CDL parameters for mild primary grade adjustment
// Tool: timeline_item_color(action="safe_set_cdl", params={"slope": [1.05, 1.0, 0.95], "offset": [0.01, 0.0, -0.01]})

Recipe 2: Run Inline Scripting for Batch Meta Change

Use run_inline to quickly rename clips matching a specific prefix inside the Media Pool:

// Tool: script_plugin(action="run_inline", params={"language": "python", "source": "..."})
// Source value:
import sys
resolve = BmdResolveAPI()
projectManager = resolve.GetProjectManager()
project = projectManager.GetCurrentProject()
mediaPool = project.GetMediaPool()
rootFolder = mediaPool.GetRootFolder()

def rename_clips(folder):
    for clip in folder.GetClipList():
        name = clip.GetName()
        if name.startswith("CAM_A_"):
            clip.SetClipProperty("Clip Name", name.replace("CAM_A_", "AngleA_"))
    for subfolder in folder.GetSubFolderList():
        rename_clips(subfolder)

rename_clips(rootFolder)
print("Rename complete")

5. Troubleshooting and Connection Details

Configuration and Ports

  • Application Port: Controlled via system environment variables. Resolve communicates natively with the local Python runtime.
  • Control Panel Dashboard: http://localhost:5000 (by default) or path printed upon running:
    venv/bin/python -m src.control_panel
    
  • Requirements:
    1. DaVinci Resolve Studio (Scripting APIs are blocked in the free version).
    2. External Scripting Mode: Go to DaVinci Resolve -> Preferences -> System -> General, set "External scripting using" to Local or Developer.
    3. Python Registry (Windows): Python must be installed system-wide for Resolve to find it in the registry (pyenv or virtual environments will not work if the host installer isn't registered).

Diagnostic Connection Verification

Test if the local Python bridge can reach Resolve:

# Verify the Python scripting modules are discoverable
python -c "import DaVinciResolveScript as dvr; print(dvr.scriptapp('Resolve'))"

Common Errors

  1. Resolve is not running or scripting is disabled
    • Ensure the Studio version is active.
    • Verify that preferences are set to "External scripting using: Local".
  2. Visual Analysis stuck in pending_host_vision_analysis
    • The agent has not called the commit_vision tool with the results of visual frame descriptions. Check the manifest files in your scratch analysis directory to recover the token.
  3. Fusion.Execute() returns False or no-op
    • Resolve 20+ has limitations with remote execution of Lua scripts. Use the run_inline tool which leverages a temporary file fallback mechanism.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when manage multiple local CLI agents via tmux sessions (start/stop/monitor/assign) with cron-friendly scheduling.

中文简介正在准备中。当前显示原文说明。

hybridlabor-api/aos62026年10月16日 更新

Use when a hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).

中文简介正在准备中。当前显示原文说明。

hybridlabor-api/aos62026年10月16日 更新

Reference for how BDB structures autonomous software engineering work — the seven-node dispatcher graph (Architect, TechLead, UI/UX, Engineering, Media/EventTech, Reviewer, Shipping) that /startcycle-graph actually runs. Use when you need the high-level lifecycle framing without inventing your own process.

中文简介正在准备中。当前显示原文说明。

hybridlabor-api/aos62026年10月16日 更新

Tools are how AI agents interact with the world. A well-designed tool is the difference between an agent that works and one that hallucinates, fails silently, or costs 10x more tokens than necessary. This skill covers tool design from schema to error handling.

中文简介正在准备中。当前显示原文说明。

hybridlabor-api/aos62026年10月16日 更新

Harness patterns for coding agents — memory, permissions, context engineering, delegation, skills, hooks, bootstrap.

中文简介正在准备中。当前显示原文说明。

hybridlabor-api/aos62026年10月16日 更新

agenttrail: live map of a multi-agent build in the browser: which plan component is being worked on, by which agent or harness, what is done and what is stuck. Use when a multi-agent pipeline starts (/startcycle, /startcycle-graph, /teamwork-preview) or after a plan-canvas approve, when the user asks to see what the agents are doing ("live map", "build board", "who is running now"), or by yourself whenever a multi-agent run is under way — no user prompt needed.

中文简介正在准备中。当前显示原文说明。

hybridlabor-api/aos62026年10月16日 更新

查看 hybridlabor-api 的全部技能

报告此技能的问题