resolve-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_projectB | Create a new DaVinci Resolve project. Args: name: Name for the new project. |
| load_projectB | Load an existing DaVinci Resolve project by name. Args: name: Name of the project to load. |
| save_projectA | Save the current DaVinci Resolve project. |
| close_projectA | Save and close the current DaVinci Resolve project. |
| set_project_settingA | Set a project setting by name. Args: setting_name: The setting key (e.g. 'timelineFrameRate', 'timelineResolutionWidth'). value: The value to set as a string. |
| disable_background_tasksA | Disable all background tasks for the current DaVinci Resolve session. Useful before running performance-sensitive batch operations (renders, deliveries) to stop Resolve from spending resources on background work such as optimized media generation and analysis. The setting applies for the duration of the current Resolve session. |
| open_pageA | Open a specific page in DaVinci Resolve. Args: page_name: Page to open. Valid values: media, cut, edit, fusion, color, fairlight, deliver. |
| create_empty_timelineB | Create an empty timeline with the given name. Args: name: Name for the new timeline. |
| create_timeline_from_clipsA | Create a new timeline from media pool clips. If clip_names is None, all clips in the current media pool folder are used. Args: name: Name for the new timeline. clip_names: Optional list of clip names to include. Uses all clips in current folder if omitted. |
| set_current_timelineA | Set the current timeline by its 1-based index. Args: index: 1-based index of the timeline to activate. |
| set_current_timeline_by_nameB | Set the current timeline by name. Args: name: Name of the timeline to activate. |
| delete_timelineC | Delete a timeline by name. Args: name: Name of the timeline to delete. |
| duplicate_timelineB | Duplicate a timeline. Duplicates the current timeline if no name given. Args: name: Optional name of the timeline to duplicate. Uses current timeline if omitted. |
| add_trackB | Add a track to the current timeline. Args: track_type: Type of track: 'video', 'audio', or 'subtitle'. sub_type: Audio sub-type: 'mono', 'stereo', '5.1', '7.1'. Only used for audio tracks. |
| delete_trackA | Delete a track from the current timeline. Args: track_type: Type of track: 'video', 'audio', or 'subtitle'. index: 1-based index of the track to delete. |
| set_track_nameA | Set the name of a track in the current timeline. Args: track_type: Type of track: 'video', 'audio', or 'subtitle'. index: 1-based index of the track. name: New name for the track. |
| enable_trackA | Enable or disable a track in the current timeline. Args: track_type: Type of track: 'video', 'audio', or 'subtitle'. index: 1-based index of the track. enabled: True to enable, False to disable. |
| lock_trackA | Lock or unlock a track in the current timeline. Args: track_type: Type of track: 'video', 'audio', or 'subtitle'. index: 1-based index of the track. locked: True to lock, False to unlock. |
| append_clips_to_timelineA | Append clips from the current media pool folder to the current timeline. If clip_names is None, all clips in the current folder are appended. Args: clip_names: Optional list of clip names to append. Uses all clips in current folder if omitted. |
| set_timeline_start_timecodeB | Set the start timecode of the current timeline. Args: timecode: Timecode string (e.g. '01:00:00:00'). |
| create_binA | Create a new bin (subfolder) in the media pool. Args: name: Name for the new bin. parent_path: Optional path to the parent folder (e.g. 'OCF/A-Cam'). Creates under root if omitted. |
| set_current_folderA | Navigate to a media pool folder by path. Args: path: Folder path using '/' separators (e.g. 'OCF/A-Cam/A001'). Use '/' or 'Root' for the root folder. |
| move_clips_to_folderB | Move clips from the current folder to a target folder. Args: clip_names: List of clip names to move. target_path: Destination folder path (e.g. 'OCF/A-Cam/A001'). |
| delete_clipsB | Delete clips from the current media pool folder. Args: clip_names: List of clip names to delete. |
| import_mediaA | Import media files into the current media pool folder. Uses batch import first for speed, with individual fallback for reliability. Args: file_paths: List of absolute file paths to import. |
| import_media_to_binA | Import media files into a specific media pool bin. Navigates to the target bin first, then imports. Args: file_paths: List of absolute file paths to import. bin_path: Target folder path (e.g. 'OCF/A-Cam/A001'). |
| scan_directoryA | Scan a directory for media files using Resolve's Media Storage. Args: directory: Absolute path to the directory to scan. file_types: Optional list of file extensions to filter (e.g. ['.mov', '.mxf']). Returns all files if omitted. recursive: Whether to scan subdirectories. Defaults to True. |
| import_camera_rollA | Import a camera roll into an organized OCF bin structure. Creates OCF/{Camera}-Cam/{RollName} folder hierarchy and imports all video files from the directory. Camera letter is auto-detected from the directory name (e.g. 'A001' -> 'A') if not specified. Args: directory: Absolute path to the camera roll directory. camera_letter: Optional camera designation letter (e.g. 'A', 'B'). Auto-detected from directory name if omitted. |
| import_timeline_from_fileA | Import a timeline from an AAF, EDL, XML, or OTIO file. Args: file_path: Absolute path to the timeline file. |
| get_clip_metadataA | Get all metadata for a clip found by name in the current Media Pool folder. Args: clip_name: The name of the clip to get metadata from. |
| set_clip_metadataB | Set metadata fields on a clip in the current Media Pool folder. Args: clip_name: The name of the clip to update. metadata: Dictionary of metadata field names to values. |
| set_clip_metadata_batchB | Batch set metadata on multiple clips. Keys are clip names, values are metadata dicts. Args: metadata_map: Dictionary mapping clip names to their metadata dictionaries. |
| set_clip_propertyC | Set a clip property using SetClipProperty on a clip in the current folder. Args: clip_name: The name of the clip. property_name: The property name to set. value: The value to set. |
| set_clip_colorA | Set the clip color on a clip in the current Media Pool folder. Args: clip_name: The name of the clip. color: Color name. Valid colors: Orange, Apricot, Yellow, Lime, Olive, Green, Teal, Navy, Blue, Purple, Violet, Pink, Tan, Beige, Brown, Chocolate. |
| add_clip_flagB | Add a flag with the specified color to a clip in the current folder. Args: clip_name: The name of the clip. color: The flag color (e.g. "Blue", "Red", "Green", etc.). |
| extract_qc_notes_from_markersA | Extract QC notes from timeline clip markers and write to clip metadata. Iterates all video tracks on the current timeline, finds markers of the specified color on each clip, formats them as '[timecode] marker_name', and writes the combined text to the 'QC Notes' metadata field on the corresponding MediaPoolItem. Args: marker_color: The marker color to extract (default: Yellow). |
| calculate_clip_file_sizesA | Calculate file sizes for clips and write to 'Size' metadata field. Handles regular files, R3D multi-part files (_001.R3D, _002.R3D, etc.), and image sequences (directory-based). Size is written in GB with 4 decimal places. Args: clip_names: List of clip names to process. If None, processes all clips in the current folder. |
| rename_clipsA | Rename all clips in the current Media Pool folder using a token pattern. Supported tokens: {CAM} or {CAMERA} - camera letter (from camera param) {REEL} or {REEL:N} - reel number, optionally zero-padded to N digits {N} or {N:N} - clip counter starting at start_number, optionally zero-padded {DATE} - today's date in YYMMDD format {TIME} - current time in HHMMSS format {UID} - unique ID string (auto-generated if empty) Example: "{CAM}{REEL:3}_{N:4}" with camera="A", reel=1, start_number=1 produces "A001_0001", "A001_0002", etc. Args: pattern: Token pattern string for generating clip names. camera: Camera letter identifier (default: "A"). reel: Reel number (default: 1). start_number: Starting number for the {N} counter (default: 1). uid: Unique ID string. Auto-generated if empty. |
| rename_clipB | Rename a single clip in the current Media Pool folder. Args: clip_name: Current name of the clip to rename. new_name: The new name for the clip. |
| add_timeline_markerA | Add a marker to the current timeline at the specified frame. Args: frame_id: Frame number where the marker should be placed. color: Marker color (e.g. "Blue", "Red", "Green", "Yellow", etc.). name: Name/title for the marker. note: Optional note text for the marker. duration: Duration of the marker in frames (default: 1). |
| delete_timeline_markerC | Delete a marker from the current timeline at the specified frame. Args: frame_id: Frame number of the marker to delete. |
| delete_timeline_markers_by_colorA | Delete all markers of a specific color from the current timeline. Args: color: Color of markers to delete (e.g. "Blue", "Red", "Green"). Use empty string "" to delete all markers regardless of color. |
| add_clip_markerA | Add a marker to a clip on the current timeline. Searches all video tracks to find the clip by name, then adds a marker at the specified frame offset within that clip. Args: clip_name: Name of the clip on the timeline. frame_id: Frame offset within the clip for the marker. color: Marker color (e.g. "Blue", "Red", "Green", "Yellow", etc.). name: Name/title for the marker. note: Optional note text for the marker. duration: Duration of the marker in frames (default: 1). |
| get_clip_markersA | Get all markers on a clip on the current timeline. Args: clip_name: Name of the clip on the timeline. |
| delete_clip_markerA | Delete a marker from a clip on the current timeline at the specified frame. Args: clip_name: Name of the clip on the timeline. frame_id: Frame offset of the marker to delete. |
| apply_drx_gradeA | Apply a DRX grade file to timeline clips. Args: drx_path: Path to the .drx grade file. grade_mode: Keyframe mode - 0=No keyframes, 1=Source timecode, 2=Start frames. clip_indices: Optional 1-based indices of clips on video track 1. Applies to all clips on all video tracks if omitted. |
| set_cdlA | Apply CDL values to a specific clip's node. Args: clip_index: 1-based index of the clip on video track 1. node_index: Index of the node within the clip's node graph. slope: Slope values as space-separated RGB string (e.g. '1.0 1.0 1.0'). offset: Offset values as space-separated RGB string (e.g. '0.0 0.0 0.0'). power: Power values as space-separated RGB string (e.g. '1.0 1.0 1.0'). saturation: Saturation value as string (e.g. '1.0'). |
| apply_cdl_from_fileB | Parse a CCC or EDL file and apply CDL values to matching timeline clips. Matches clips by name using exact, no-extension, and fuzzy matching. Also applies metadata (Episode, Scene, Shot, Take, Camera) if present in the CDL file. Args: cdl_path: Path to a .ccc or .edl file containing CDL data. |
| set_lutB | Apply a LUT file to a specific clip's node. Args: clip_index: 1-based index of the clip on video track 1. node_index: Index of the node to apply the LUT to. lut_path: Full path to the LUT file. |
| search_and_apply_lutA | Search standard LUT directories for a LUT file by name and apply it. Searches recursively under the DaVinci Resolve LUT directory. Args: lut_name: Filename of the LUT to search for (e.g. 'MyLUT.cube'). clip_index: Optional 1-based clip index on video track 1. If omitted, applies to all clips. node_index: Node index to apply the LUT to. Defaults to 2. |
| copy_gradeB | Copy the grade from a source clip to one or more target clips. All indices are 1-based on video track 1. Args: source_clip_index: 1-based index of the source clip on video track 1. target_clip_indices: List of 1-based indices of target clips on video track 1. |
| reset_gradesA | Reset all grades on specified clips or all clips in the timeline. Args: clip_indices: Optional list of 1-based clip indices on video track 1. Resets all clips on all video tracks if omitted. |
| get_node_graph_infoA | Get node graph information for a clip including node count, labels, and LUT paths. Args: clip_index: 1-based index of the clip on video track 1. |
| import_audioA | Import audio files from a directory into a media pool bin. Scans for common audio formats: WAV, MP3, AIF, AIFF, M4A, AAC, FLAC, OGG, WMA, MXF. Args: directory: Path to the directory containing audio files. bin_name: Name of the media pool bin to import into. Created if it does not exist. recursive: Whether to scan subdirectories recursively. |
| auto_sync_audioA | Sync video and audio clips by timecode. Collects all clips from the specified bin (or current folder) and performs timecode-based audio sync, retaining video metadata and discarding embedded audio. Args: bin_path: Optional slash-separated media pool folder path (e.g. 'Master/Audio'). Uses current folder if omitted. |
| add_audio_trackA | Add an audio track to the current timeline. Args: sub_type: Audio track type: 'mono', 'stereo', '5.1', or '7.1'. |
| generate_speechA | Generate speech audio from text using DaVinci Resolve's AI Speech Generator. Creates an audio MediaPoolItem from the given text and, when add_to_timeline is True, places it on the current timeline at the given timecode. Requires Resolve Studio with the 'AI Speech Generator' package installed via the Extras Download Manager. Args: text_input: The text to synthesize into speech. timecode: Timeline timecode (HH:MM:SS:FF) to place the clip when add_to_timeline is True. voice_model: Voice model name (e.g. 'Female 1', 'Male 1', 'Custom Voice'). custom_voice_file: Full path to a custom voice file (used with 'Custom Voice'). speed: Speech speed. variation: Speech variation. pitch: Speech pitch. generation_id: Generation ID. filename: Output filename for the generated audio. add_to_timeline: Whether to add the generated clip to the current timeline. audio_track: Audio track index to place the clip on. |
| set_render_settingsC | Set render settings on the current project. Args: settings: Dictionary of render setting key-value pairs (e.g. {'TargetDir': '/tmp/renders', 'CustomName': 'output'}). |
| set_render_formatB | Set the render format and codec. Args: format_name: Render format (e.g. 'mp4', 'mov', 'mxf'). codec: Codec name (e.g. 'H.264', 'H.265', 'DNxHR HQX', 'ProRes 422 HQ'). |
| add_render_jobB | Add a render job to the render queue using current render settings. Returns the job ID of the newly added render job. |
| start_renderA | Start rendering jobs in the render queue. Args: job_ids: Optional list of specific job IDs to render. Renders all queued jobs if omitted. |
| get_render_progressA | Get the status and progress of all render jobs in the queue. |
| wait_for_renderA | Wait for all rendering to complete, polling at the specified interval. Blocks until no rendering is in progress. Args: poll_interval: Seconds between progress checks. Defaults to 2.0. |
| delete_render_jobsB | Delete render jobs from the queue. Args: job_ids: Optional list of specific job IDs to delete. Deletes all jobs if omitted. |
| load_render_presetB | Load a render preset by name. Args: preset_name: Name of the render preset to load. |
| export_timelineB | Export the current timeline in the specified format. Supported formats: AAF, DRT, EDL, FCP_7_XML, FCPXML_1_8, FCPXML_1_9, FCPXML_1_10, HDR_10_PROFILE_A, HDR_10_PROFILE_B, TEXT_CSV, TEXT_TAB, OTIO, ALE, ALE_CDL. Args: output_path: Full file path for the exported file. format: Export format name (e.g. 'EDL', 'AAF', 'FCPXML_1_10'). sub_type: Optional export sub-type string. Used for formats that require additional specification. |
| export_aleA | Export the current timeline as an ALE (Avid Log Exchange) file. Args: output_path: Full file path for the exported ALE file. include_cdl: If True, export as ALE_CDL to include CDL data. |
| export_edlB | Export the current timeline as an EDL file. Args: output_path: Full file path for the exported EDL file. |
| export_fcpxmlB | Export the current timeline as an FCPXML file. Args: output_path: Full file path for the exported FCPXML file. version: FCPXML version: '1.8', '1.9', or '1.10'. Defaults to '1.10'. |
| export_aafB | Export the current timeline as an AAF file. Args: output_path: Full file path for the exported AAF file. |
| export_csvA | Export the current timeline as a CSV (comma-separated values) file. Args: output_path: Full file path for the exported CSV file. |
| export_otioA | Export the current timeline as an OTIO (OpenTimelineIO) file. Args: output_path: Full file path for the exported OTIO file. |
| export_drtB | Export the current timeline as a DRT (DaVinci Resolve Timeline) file. Args: output_path: Full file path for the exported DRT file. |
| create_dailiesA | Full dailies pipeline: import camera rolls, create timelines, apply grades, sync audio. For each camera roll path:
Optional post-processing:
Args: camera_roll_paths: List of absolute paths to camera roll directories. drx_path: Optional path to a DRX grade file to apply. cdl_path: Optional path to a CCC or EDL file with CDL values. lut_name: Optional LUT filename to search for and apply. audio_path: Optional path to directory containing audio files. sync_audio: Whether to auto-sync imported audio. Requires audio_path. timeline_prefix: Optional prefix for timeline names. |
| extract_stills_from_markersA | Extract still frames from timeline markers and create a new stills timeline. Scans the current timeline's video track 1 for markers of the specified color. For each matching marker, extracts a single-frame clip from the source media. Creates a new timeline containing all extracted stills and copies grades from the source timeline items. The new timeline is placed in a Timelines/{color}-Stills bin and its start timecode is set to 01:00:00:00. Args: marker_color: Color of markers to extract stills from (default: "Blue"). Common values: Blue, Cyan, Green, Yellow, Red, Pink, Purple, Fuchsia, Rose, Lavender, Sky, Mint, Lemon, Sand, Cocoa, Cream. timeline_name: Optional custom name for the stills timeline. Defaults to "{color}-Stills_{source_timeline_name}". |
| add_fusion_compA | Add a Fusion composition to a timeline clip. If clip_index is not provided, adds a Fusion comp to the currently selected clip. Otherwise, targets the clip at the given 0-based index on the specified track. Args: clip_index: Optional 0-based index of the clip on the track. Uses the currently selected clip if omitted. track_type: Type of track containing the clip (default: "video"). track_index: 1-based index of the track (default: 1). |
| create_fusion_nodeA | Create a Fusion node in the current composition. Creates a new tool/node of the specified type in the active Fusion composition and optionally sets its parameters. Args: node_type: The Fusion node type to create (e.g. "Background", "Blur", "Transform", "Merge", "MediaIn", "MediaOut", "ColorCorrector"). parameters: Optional dict of parameter name-value pairs to set on the node. |
| create_fusion_node_chainA | Create a chain of connected Fusion nodes in the current composition. Creates multiple nodes and connects them sequentially (each node's Input is connected to the previous node's output). This is useful for building Fusion node graphs programmatically. Each node dict supports:
Args: nodes: List of node definitions. Each is a dict with "type" (required), optional "name", and optional "params". |
| transcribe_audioA | Transcribe audio for a clip or folder using DaVinci Resolve's AI transcription. Operates on a single clip (clip_name), a folder and its nested folders (folder_path), or the current Media Pool folder if neither is given. Requires Resolve Studio with transcription support. Args: clip_name: Name of a clip in the current folder to transcribe. folder_path: Slash-separated folder path (e.g. 'Master/Interviews') to transcribe. use_speaker_detection: Whether to use speaker detection. If omitted, the project's setting is used. |
| clear_transcriptionA | Clear audio transcription for a clip or folder. Operates on a single clip (clip_name), a folder and its nested folders (folder_path), or the current Media Pool folder if neither is given. Args: clip_name: Name of a clip in the current folder. folder_path: Slash-separated folder path (e.g. 'Master/Interviews'). |
| perform_audio_classificationA | Analyze and classify audio into categories and subcategories. Operates on a single clip (clip_name), a folder and its nested folders (folder_path), or the current Media Pool folder if neither is given. Requires Resolve Studio with AI audio classification support. Args: clip_name: Name of a clip in the current folder to classify. folder_path: Slash-separated folder path (e.g. 'Master/SFX') to classify. |
| clear_audio_classificationA | Clear audio classification for a clip or folder. Operates on a single clip (clip_name), a folder and its nested folders (folder_path), or the current Media Pool folder if neither is given. Args: clip_name: Name of a clip in the current folder. folder_path: Slash-separated folder path (e.g. 'Master/SFX'). |
| remove_motion_blurA | Apply AI motion deblur to a clip or folder, creating new deblurred clips. Operates on a single clip (clip_name), a folder (folder_path), or the current Media Pool folder if neither is given. Returns the names of the newly created MediaPoolItem(s). Requires Resolve Studio with motion deblur support. Args: clip_name: Name of a clip in the current folder to deblur. folder_path: Slash-separated folder path (e.g. 'Master/A-Cam') to deblur. deblur_option: Optional settings dict. Supported keys: 'FileName' (str), 'Format' (str, e.g. 'mov'), 'Codec' (str, e.g. 'ProRes422'), 'EncodingProfile' (str, H.264/H.265 only, e.g. 'Main10'), 'UseExtremeMode' (bool), 'UseMarkInMarkOut' (bool), 'RenderAtSourceRes' (bool), 'UseMoreGpuMemory' (bool). |
| analyze_for_intellisearchA | Run Intellisearch analysis on a clip or folder. Operates on a single clip (clip_name), a folder (folder_path), or the current Media Pool folder if neither is given. Requires the 'AI IntelliSearch - Faster' package (or 'AI IntelliSearch - Better' when better_mode is True) from the Extras Download Manager. Args: clip_name: Name of a clip in the current folder to analyze. folder_path: Slash-separated folder path (e.g. 'Master/A-Cam') to analyze. identify_faces: Whether to identify faces during analysis. better_mode: Whether to use Better mode (otherwise Faster mode). |
| reset_intellisearch_analysisA | Clear all Intellisearch analysis data for the current project. |
| analyze_for_slateA | Run AI Slate analysis on a clip or folder, marking detected slates. Operates on a single clip (clip_name), a folder (folder_path), or the current Media Pool folder if neither is given. Requires the 'AI Slate ID' package from the Extras Download Manager. Args: marker_color: Color of the markers to place at detected slates. One of: Blue, Cyan, Green, Yellow, Red, Pink, Purple, Fuchsia, Rose, Lavender, Sky, Mint, Lemon, Sand, Cocoa, Cream. clip_name: Name of a clip in the current folder to analyze. folder_path: Slash-separated folder path (e.g. 'Master/A-Cam') to analyze. |
| execute_pythonB | Execute Python code with Resolve API access. stdout is captured. Pre-populated variables: resolve, fusion, project_manager, project, media_pool, media_storage, timeline. Set a 'result' variable to return data. Args: code: Python code to execute. |
| execute_luaC | Execute Lua script via Fusion. Output from print() is captured. Args: script: Lua code to execute. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| system_status | Get DaVinci Resolve connection state, product name, version, and current page. |
| project_current | Get current project info: name, timeline count, current timeline, frame rate, resolution. |
| project_list | List all project names in the current database folder. |
| project_settings | Get the full project settings dictionary. |
| project_timelines | List all timelines in the current project with index and name. |
| timeline_current | Get full current timeline info: name, frames, tracks, timecode, FPS. |
| timeline_tracks | Get a list of all tracks (video, audio, subtitle) with metadata. |
| timeline_markers | Get all markers on the current timeline. |
| timeline_items | Get all timeline items across video tracks (name, start, end, duration). |
| mediapool_folders | Get recursive folder tree of the media pool with clip counts. |
| mediapool_current_folder | Get the current media pool folder name, clips, and subfolders. |
| mediapool_clips | Get detailed clip info for all clips in the current media pool folder. |
| mediapool_selected_clips | Get the currently selected clips in the media pool. |
| storage_volumes | Get the list of mounted media storage volume paths. |
| gallery_albums | List all gallery still albums. |
| gallery_stills | List all stills in the current gallery album. |
| render_jobs | Get the current render job list. |
| render_formats | Get available render formats and their codecs. |
| render_presets | Get the list of render presets. |
| render_is_rendering | Check whether a render is currently in progress. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DigitalWorkflowCompany/resolve-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server