DaVinci Resolve MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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