DaVinci Resolve MCP Server
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| playback_get_pageA | Return the name of the currently active Resolve page. Possible values: "media", "cut", "edit", "fusion", "color", "fairlight", "deliver", or "" if Resolve cannot determine the page. |
| playback_open_pageB | Switch Resolve to a different workspace page. |
| playback_get_timecodeA | Return the current playhead timecode (e.g. "01:00:05:12"). Requires an open project with at least one timeline. |
| playback_set_timecodeA | Move the playhead to a specific timecode position. |
| playback_get_current_itemA | Return info about the timeline item under the playhead, or None. Returns a dict with keys: name, start, end, duration. Returns None if no item is under the playhead or no timeline is open. |
| resolve_get_versionA | Return the DaVinci Resolve version as a dotted string (e.g. "19.1.2"). The underlying API may return a list of version components or a string; this tool always returns a single joined string. |
| resolve_get_productA | Return the Resolve product name. Typically "DaVinci Resolve" (free) or "DaVinci Resolve Studio" (paid). |
| project_listA | List all project names in the current database folder. Returns an alphabetically-ordered list of project name strings. |
| project_createA | Create a new project and open it immediately. |
| project_openA | Open an existing project by name. |
| project_saveA | Save the current project. Returns: True if the save succeeded. |
| project_closeA | Close the current project (saves automatically before closing). Returns: True if the project was closed successfully. |
| project_deleteA | Delete a project by name. The project must NOT be currently open. |
| project_get_currentA | Return basic info about the currently open project. Returns: A dict with keys: name (str), timeline_count (int). |
| project_get_settingA | Read a single project setting by its key. |
| project_set_settingC | Write a project setting. |
| project_importA | Import a .drp project file into the current database folder. |
| project_exportB | Export the current project to a .drp file. |
| project_folder_listA | List sub-folders in the current database folder. Returns: A list of folder name strings. |
| project_folder_openC | Navigate into a sub-folder within the project database. |
| project_folder_createA | Create a new folder in the current database folder. |
| project_folder_deleteA | Delete a folder from the current database folder. The folder must be empty (no projects inside). |
| project_folder_goto_rootA | Navigate to the root of the project database. Returns: True if navigation to root succeeded. |
| project_folder_goto_parentA | Navigate up one level in the project database folder hierarchy. Returns: True if navigation succeeded. False if already at root. |
| project_get_databaseA | Return info about the current project database. Returns: A dict with database info (DbType, DbName, IpAddress if remote). |
| project_archiveB | Archive a project to a .dra file. The project must NOT be currently open. |
| project_restore_archiveB | Restore a project from a .dra archive file. |
| project_get_database_listA | List all available project databases. Returns: A list of dicts, each with keys like "DbType", "DbName", and optionally "IpAddress" for remote databases. |
| storage_get_volumesA | List all mounted media storage volumes visible to DaVinci Resolve. Returns the volume paths (e.g. '/' on macOS, 'C:' on Windows, or NAS mount points) that appear in the Media page's storage panel. |
| storage_get_subfoldersB | List subfolders inside a media storage path. |
| storage_get_filesA | List media files in a storage folder. |
| storage_import_to_poolB | Import files from media storage into the current project's media pool. |
| media_pool_get_root_folderA | Get the name of the Media Pool's root folder. Every project has exactly one root folder (usually named 'Master'). |
| media_pool_get_current_folderA | Get the name of the currently selected Media Pool folder. |
| media_pool_set_current_folderB | Navigate into a Media Pool folder by name. |
| media_pool_create_folderA | Create a new subfolder inside the current Media Pool folder. |
| media_pool_delete_foldersA | Delete Media Pool subfolders by name. |
| media_pool_get_clipsA | List clips in the current Media Pool folder with pagination. |
| media_pool_get_subfoldersA | List the names of all subfolders in the current Media Pool folder. |
| media_pool_import_mediaB | Import media files from disk into the current Media Pool folder. |
| media_pool_create_timelineA | Create a new empty timeline in the current Media Pool folder. |
| media_pool_create_timeline_from_clipsA | Create a new timeline populated with specific clips from the current folder. |
| media_pool_delete_clipsA | Delete clips from the current Media Pool folder by name. |
| media_pool_move_clipsA | Move clips from the current folder to a different Media Pool folder. |
| media_pool_relink_clipsA | Relink offline clips to media files in a new folder. |
| media_pool_export_metadataB | Export metadata of all clips in the current folder to a CSV file. |
| clip_get_nameA | Return the display name of a media-pool clip. |
| clip_set_nameB | Rename a media-pool clip. |
| clip_get_metadataA | Return all metadata fields for a clip as key-value pairs. |
| clip_set_metadataA | Set a single metadata field on a clip. |
| clip_get_propertiesA | Return all clip properties (Clip Name, Duration, FPS, etc.). |
| clip_set_propertyC | Set a single property on a clip. |
| clip_get_colorA | Return the label color assigned to a clip (e.g. "Orange", "Blue"). |
| clip_set_colorB | Set the label color on a clip. |
| clip_clear_colorA | Remove the label color from a clip, resetting it to the default. |
| clip_add_markerA | Add a marker to a media-pool clip at a given frame. |
| clip_get_markersA | Return all markers on a clip. Keys are frame IDs (as strings). |
| clip_delete_markerB | Delete the marker at a specific frame on a clip. |
| clip_add_flagB | Add a flag of the given color to a clip. |
| clip_get_flagsA | Return all flag colors currently set on a clip. |
| clip_clear_flagsA | Remove a specific flag color from a clip. |
| clip_transcribe_audioB | Start audio transcription for a clip. Requires DaVinci Resolve 19+ with speech-to-text support enabled. |
| clip_get_transcriptA | Get the transcript text for a clip. |
| clip_clear_transcriptA | Clear the transcript text from a clip. |
| clip_link_proxyB | Link an external proxy media file to a clip. |
| clip_replaceA | Replace a clip's media file with a new file. |
| clip_unlink_proxyA | Remove proxy media link from a clip. |
| timeline_get_currentA | Return info about the current timeline, or None if no timeline is open. Returns a dict with keys: name, start_frame, end_frame, video_tracks, audio_tracks, start_timecode. |
| timeline_set_currentB | Set the current timeline by name. |
| timeline_get_countA | Return the number of timelines in the current project. |
| timeline_get_by_indexA | Return info about a timeline at the given 1-based index. |
| timeline_get_nameA | Return the name of the current timeline. Raises an error if no timeline is open. |
| timeline_set_nameB | Rename the current timeline. |
| timeline_get_start_frameA | Return the start frame number of the current timeline. |
| timeline_get_end_frameA | Return the end frame number of the current timeline. |
| timeline_get_track_countA | Return the number of tracks of the given type in the current timeline. |
| timeline_add_trackB | Add one or more tracks to the current timeline. |
| timeline_delete_trackA | Delete a track from the current timeline. |
| timeline_get_track_nameA | Return the name of a specific track in the current timeline. |
| timeline_set_track_nameA | Rename a track in the current timeline. |
| timeline_set_track_enabledB | Enable or disable a track in the current timeline. |
| timeline_set_track_lockedB | Lock or unlock a track in the current timeline. |
| timeline_get_items_in_trackA | List timeline items on a specific track with pagination. |
| timeline_append_clipsA | Append media pool clips to the end of the current timeline. Searches the media pool's current folder for clips matching the given names, then appends them in order. |
| timeline_delete_clipsA | Delete timeline items by name from a specific track. |
| timeline_duplicateA | Duplicate the current timeline. Returns: The name of the newly created timeline, or None if duplication failed. |
| timeline_add_markerA | Add a marker to the current timeline at a specific frame. |
| timeline_get_markersA | Return all markers on the current timeline. Returns: A dict mapping frame numbers (as string keys) to marker info dicts. Each marker dict contains: color, duration, note, name, customData. Returns an empty dict if no markers exist or no timeline is open. |
| timeline_delete_markerB | Delete a marker at a specific frame on the current timeline. |
| timeline_exportA | Export the current timeline to a file (AAF, EDL, FCPXML, etc.). |
| timeline_create_compound_clipB | Create a compound clip from timeline items on a specific track. A compound clip merges multiple timeline items into one editable unit. |
| timeline_create_fusion_clipA | Create a Fusion clip from timeline items on a specific track. A Fusion clip wraps selected items into a single Fusion composition that can be opened and edited in the Fusion page. |
| timeline_detect_scene_cutsA | Detect scene cuts in the current timeline. Analyzes the video content and returns frame numbers where scene transitions were detected. Requires DaVinci Resolve 18.5 or later. Returns: A list of frame numbers where cuts were detected. |
| timeline_create_subtitles_from_audioA | Auto-generate subtitles from audio in the current timeline. Uses Resolve's built-in speech-to-text to create subtitle track items. Requires DaVinci Resolve 18.5 or later. Returns: True if subtitles were generated successfully. |
| timeline_get_settingB | Read a timeline-specific setting by key. |
| timeline_set_settingC | Write a timeline-specific setting. |
| item_get_nameA | Return the display name of a timeline item. |
| item_get_durationA | Return the duration of a timeline item in frames. |
| item_get_start_endA | Return the start frame, end frame, and duration of a timeline item. |
| item_get_propertiesA | Return all properties of a timeline item as key-value pairs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| system_info | Current DaVinci Resolve system information. Returns JSON with: - version: Resolve version string (e.g. "19.1.2") - product: "DaVinci Resolve" or "DaVinci Resolve Studio" - current_page: Active workspace page name |
| project_info | Current DaVinci Resolve project information. Returns JSON with: - name: Project name - timeline_count: Number of timelines - resolution: Project resolution (width x height) - frame_rate: Timeline frame rate |
| timeline_info | Current DaVinci Resolve timeline information. Returns JSON with: - name: Timeline name - start_frame / end_frame: Frame range - video_tracks / audio_tracks: Track counts - start_timecode: Start timecode string - current_timecode: Playhead timecode |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/luquimbo/davinci-resolve-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server