DaVinci Resolve MCP Server
Enables direct control of DaVinci Resolve, allowing project management, timeline manipulation, media management, Fusion composition creation, scene inspection, and Python code execution within the application.
Supports execution of Lua scripts in DaVinci Resolve's Fusion component for advanced effects and automation.
Compatible with OpenAI models through the 5ire client, allowing them to interact with and control DaVinci Resolve features.
Enables execution of arbitrary Python code within DaVinci Resolve, leveraging the application's Python API for custom automation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DaVinci Resolve MCP ServerCreate a new timeline with the selected clips"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DaVinci Resolve MCP Server
Model Context Protocol (MCP) server that lets MCP clients control and inspect DaVinci Resolve (including Fusion) through tools and resources.
What it provides
Project management (create, load, save)
Timeline operations (create timeline, switch timeline, build from clips)
Media pool operations (import media, create folders, inspect folders)
Fusion helpers (add comp to clip, create nodes, create node chains)
Resolve page navigation
Advanced scripting (
execute_python,execute_lua)
Related MCP server: DaVinci MCP Professional
Requirements
Python 3.10+
DaVinci Resolve with scripting API available
An MCP-compatible client (for example Claude Desktop)
Install
git clone https://github.com/apvlv/davinci-resolve-mcp.git
cd davinci-resolve-mcp
uv sync --all-extras --devRun the server
uv run davinci-resolve-mcpThe server will try to connect to Resolve on startup. Make sure DaVinci Resolve is running.
MCP client setup
Configure your MCP client to launch the server command:
{
"mcpServers": {
"davinci-resolve": {
"command": "uv",
"args": ["run", "davinci-resolve-mcp"]
}
}
}Resources
system://statusproject://currentproject://timelinestimeline://currentmediapool://foldersmediapool://currentstorage://volumes
Tools
Project
create_project(name)load_project(name)save_project()
Timeline
create_timeline(name)set_current_timeline(index)
Media
import_media(file_paths)create_folder(name)create_timeline_from_clips(name, clip_indices)
Fusion
add_fusion_comp_to_clip(timeline_index, track_type, track_index, item_index)create_fusion_node(node_type, parameters)create_fusion_node_chain(node_chain)
Resolve UI
open_page(page_name)where page name is one of:media,edit,fusion,color,fairlight,deliver
Advanced
execute_python(code)execute_lua(script)
Development
make install # install deps and pre-commit hooks
make lint-check # ruff check
make format-check # ruff format check
make test # pytest with coverage
make check # lint + format + testsExample usage ideas
"Create a project named
My Documentary""List timelines in the current project"
"Import these files into the media pool"
"Open the Color page"
"Create a Fusion node chain Blur -> ColorCorrector"
License
MIT (see LICENSE)
Available Tools
14 toolsadd_fusion_comp_to_clipC
Add a Fusion composition to a clip in the timeline.
Args: timeline_index: The index of the timeline (1-based) track_type: The type of track ("video", "audio", or "subtitle") track_index: The index of the track (1-based) item_index: The index of the item in the track (1-based)
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| timeline_index | Yes | ||
| track_type | Yes | ||
| track_index | Yes | ||
| item_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool 'Adds' a Fusion composition, implying a mutation, but does not specify permissions, side effects (e.g., whether it modifies existing clips), or error conditions beyond a generic success/failure message. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by a structured 'Args' and 'Returns' section. It is appropriately sized with no redundant information, though the parameter explanations could be more detailed without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, mutation operation) and lack of annotations, the description is moderately complete. It covers the basic purpose and parameters but misses behavioral details and usage context. The presence of an output schema (indicating a message) reduces the need to explain return values, but overall completeness is limited for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all four parameters with brief explanations (e.g., 'The index of the timeline (1-based)'), which adds meaning beyond the schema's titles. However, it lacks details on constraints (e.g., valid ranges for indices) or interactions between parameters, leaving gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a Fusion composition to a clip') and the target resource ('in the timeline'), which is specific and actionable. However, it does not differentiate this tool from its siblings (e.g., 'create_fusion_node' or 'create_timeline_from_clips'), leaving some ambiguity about its unique role in the toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as other Fusion-related tools in the sibling list. It lacks context about prerequisites (e.g., needing an existing timeline or clip) or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderB
Create a new folder in the current media pool folder.
Args: name: The name of the folder to create
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that it returns a success/failure message, which is helpful, but lacks critical details like required permissions, whether it's idempotent, error conditions, or how it interacts with existing folders. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured Args and Returns sections. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (a mutation with one parameter), no annotations, and an output schema present, the description is minimally adequate. It covers the basic purpose and parameter but lacks behavioral context and usage guidance, leaving gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly documents the single parameter 'name' and its purpose ('The name of the folder to create'), adding meaningful context beyond the schema's 0% coverage. Since there's only one parameter and it's fully explained, this compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new folder') and the location ('in the current media pool folder'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'create_project' or 'create_timeline', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_project' or 'create_timeline', nor does it mention prerequisites or exclusions. It only states the basic action without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fusion_nodeB
Create a Fusion node in the current composition.
Args: node_type: The type of node to create (e.g., 'Blur', 'ColorCorrector', 'Text') parameters: Optional dictionary of parameters to set on the node
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| node_type | Yes | ||
| parameters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create' implies a write operation, it doesn't specify permissions needed, whether the node becomes active/selected, error conditions, or how it interacts with the composition. The return value description is minimal ('message indicating success or failure') without detailing format or content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence earns its place by providing essential information without redundancy. The formatting makes it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which handles return values) and 2 parameters with 0% schema coverage, the description does reasonably well explaining parameters but lacks behavioral context for a mutation tool. For a node creation operation in a composition environment, more detail about effects, dependencies, or error scenarios would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides meaningful context for both parameters: 'node_type' is explained with examples ('Blur', 'ColorCorrector', 'Text'), and 'parameters' is described as 'Optional dictionary of parameters to set on the node'. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a Fusion node') and resource ('in the current composition'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'create_fusion_node_chain' or explain what distinguishes a single node creation from a chain creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_fusion_node_chain' or other creation tools. It mentions the context ('current composition') but offers no explicit when/when-not instructions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fusion_node_chainB
Create a chain of connected Fusion nodes in the current composition.
Args: node_chain: A list of dictionaries, each containing: - 'type': The type of node to create - 'name': Optional name for the node - 'params': Optional dictionary of parameters to set on the node
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| node_chain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers limited behavioral disclosure. It mentions creation but doesn't cover permissions needed, whether it's destructive to existing nodes, error handling, or what 'connected' means operationally. The return message is vaguely described as 'success or failure' without detailing format or content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value: the first states the action, and the subsequent lines document parameters and return values without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (creating multiple nodes with connections), no annotations, and an output schema present (though unspecified), the description is moderately complete. It covers the basic purpose and parameter structure but lacks behavioral details, error conditions, and sibling differentiation that would be needed for higher completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the schema, which has 0% coverage. It explains that 'node_chain' is a list of dictionaries with 'type', optional 'name', and optional 'params', providing essential semantics missing from the bare schema. However, it doesn't specify allowed node types or param structures, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a chain of connected Fusion nodes') and the resource ('in the current composition'), providing specific verb+resource information. However, it doesn't explicitly differentiate from sibling tools like 'create_fusion_node' (singular vs. chain), which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_fusion_node' or other creation tools. There's no mention of prerequisites, use cases, or exclusions, leaving the agent with minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectC
Create a new DaVinci Resolve project.
Args: name: The name of the project to create
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a project but doesn't mention permissions needed, whether it overwrites existing projects, where the project is stored, or any side effects. The return value description is minimal ('A message indicating success or failure'), lacking detail on format or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with three sentences: purpose statement, parameter explanation, and return value. It's front-loaded with the main purpose. However, the return value sentence could be more informative given the lack of output schema details in this context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter creation tool with no annotations but an output schema exists, the description is minimally adequate. It covers the basic purpose and parameter meaning but lacks behavioral context (permissions, side effects) and detailed usage guidance. The output schema existence means return values are documented elsewhere, but the description's return statement is vague.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds basic semantics for the single parameter ('name: The name of the project to create'), explaining what the parameter represents. However, it doesn't provide constraints, examples, or format details (e.g., character limits, uniqueness requirements).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new DaVinci Resolve project') and specifies the resource (DaVinci Resolve project). It distinguishes from siblings like 'create_folder', 'create_timeline', or 'load_project' by specifying the type of resource. However, it doesn't explicitly contrast with these alternatives in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_folder', 'create_timeline', or 'load_project'. There's no mention of prerequisites, context requirements, or exclusions. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_timelineB
Create a new timeline in the current project.
Args: name: The name of the timeline to create
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'creates' something, implying a write operation, but doesn't mention permissions, side effects, error conditions, or what happens on failure. The return message is vaguely described as 'indicating success or failure', lacking detail on format or content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured Arg/Return sections. Every sentence earns its place with no wasted words, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (a write operation with one parameter) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose and parameter, but lacks behavioral details and usage context that would be helpful for an agent, especially with no annotations to fill gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly documents the single parameter ('name: The name of the timeline to create'), adding clear meaning beyond the schema, which has 0% description coverage. Since there's only one parameter, the description fully compensates for the schema gap, though it doesn't elaborate on constraints like length or allowed characters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new timeline') and resource ('in the current project'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'create_timeline_from_clips' or 'set_current_timeline', which would require explicit comparison to earn a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_timeline_from_clips' or 'set_current_timeline'. It mentions 'in the current project' but doesn't specify prerequisites (e.g., whether a project must be open) or exclusions, leaving the agent with insufficient context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_timeline_from_clipsB
Create a new timeline from clips in the current media pool folder.
Args: name: The name of the timeline to create clip_indices: A list of clip indices (1-based) to include in the timeline
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| clip_indices | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it states the tool creates something new, it doesn't address important behavioral aspects like what happens if clips are missing, whether the timeline becomes active immediately, what permissions are required, or how errors are handled. The description is functional but lacks depth for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately concise. The main purpose is stated upfront in a single clear sentence, followed by organized parameter explanations. There's no wasted text, though the 'Returns' section could be considered slightly redundant given the output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 2 parameters, 0% schema coverage, and no annotations, the description provides adequate basic information but has notable gaps. The presence of an output schema helps with return values, but the description doesn't address important context like prerequisites (must have clips in current folder), error conditions, or behavioral nuances.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides meaningful context for both parameters beyond the schema's 0% coverage. It explains that 'name' is for the timeline being created and 'clip_indices' are '1-based' indices of clips to include. This adds crucial semantic information about parameter purpose and format that the schema alone doesn't provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new timeline') and resource ('from clips in the current media pool folder'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'create_timeline' by specifying the source material (clips), though it doesn't explicitly contrast with all alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance on when to use this tool. It mentions 'clips in the current media pool folder' which gives some context, but offers no explicit when/when-not advice or alternatives. For example, it doesn't clarify when to choose this over 'create_timeline' or other media creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_luaB
Execute a Lua script in DaVinci Resolve's Fusion.
Args: script: The Lua script to execute
Returns: The result of the script execution
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool executes a Lua script and returns the result, but it lacks details on permissions required, potential side effects (e.g., whether it modifies project state), error handling, or execution limits. For a tool that likely interacts with a complex system like DaVinci Resolve, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured, consisting of two brief sentences that state the purpose and outline parameters and returns. Every sentence earns its place without redundancy, making it efficient and front-loaded for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (executing scripts in a professional software environment) and the presence of an output schema (which handles return values), the description is partially complete. It covers the basic action but lacks context on integration with DaVinci Resolve, error scenarios, or behavioral nuances. With no annotations and minimal parameter guidance, it meets a minimum viable level but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema. It defines the 'script' parameter as 'The Lua script to execute,' which clarifies the content but doesn't provide examples, syntax requirements, or constraints. With 0% schema description coverage, the description partially compensates but doesn't fully address the lack of schema details, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute a Lua script in DaVinci Resolve's Fusion.' This specifies the verb ('execute'), resource ('Lua script'), and context ('DaVinci Resolve's Fusion'), which is clear and specific. However, it doesn't explicitly differentiate from sibling tools like 'execute_python', which performs a similar function but with a different scripting language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose Lua over Python (via 'execute_python') or other scripting options, nor does it specify prerequisites, contexts, or exclusions for its use. This leaves the agent without explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_pythonB
Execute arbitrary Python code in DaVinci Resolve.
Args: code: The Python code to execute
Returns: The result of the code execution
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool executes code and returns results, but lacks critical details: it doesn't specify security implications (e.g., sandboxing, permissions), side effects (e.g., modifying Resolve state), error handling, or execution environment constraints. For a tool that runs arbitrary code with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: a clear purpose statement followed by brief 'Args' and 'Returns' sections. Every sentence earns its place without redundancy, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (executing arbitrary code) and the presence of an output schema (which handles return values), the description is minimally complete. It covers the basic action and parameter but lacks safety warnings, execution context, or integration details with DaVinci Resolve. With no annotations and high-stakes behavior, it should provide more guidance to be fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema. It explains that the 'code' parameter is 'The Python code to execute,' which clarifies its purpose, but the schema already documents it as a required string with 0% description coverage. Since there's only one parameter and the description provides basic context, it meets the baseline for adequate but not comprehensive coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute arbitrary Python code in DaVinci Resolve.' It specifies the verb ('Execute'), resource ('Python code'), and context ('in DaVinci Resolve'), which distinguishes it from generic Python execution tools. However, it doesn't explicitly differentiate from its sibling 'execute_lua', which has a similar pattern but for Lua code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'execute_lua' for Lua code or other execution methods, nor does it specify prerequisites, use cases, or exclusions. The agent must infer usage from the tool name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_mediaB
Import media files into the current media pool folder.
Args: file_paths: A list of file paths to import
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| file_paths | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the action ('Import') and a success/failure message, but lacks critical details like permission requirements, file format restrictions, whether it overwrites existing files, error handling specifics, or rate limits. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by separate Args and Returns sections. Every sentence earns its place by providing essential information without redundancy, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with 1 parameter), no annotations, and an output schema (which handles return values), the description is minimally complete. It covers the basic purpose and parameters but lacks behavioral context and usage guidelines, leaving gaps that could hinder effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description includes an 'Args' section that explains 'file_paths' as 'A list of file paths to import', adding basic meaning beyond the schema's title ('File Paths'). However, it doesn't specify path format (absolute/relative), supported file types, or size limits, so it only partially compensates for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Import media files') and target ('into the current media pool folder'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'add_fusion_comp_to_clip' or 'create_timeline_from_clips' that might also involve media handling, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an open project or specific folder), exclusions, or comparisons to sibling tools, leaving the agent with no usage context beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_projectB
Load an existing DaVinci Resolve project.
Args: name: The name of the project to load
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Load') but doesn't describe what loading entails (e.g., makes it active, requires project to exist, may close current project), potential side effects, error conditions, or authentication needs. The return message mention is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences: purpose, parameter, and return. It's front-loaded with the core action. The Args/Returns structure is clear but could be more integrated into natural language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter with 0% schema coverage and an output schema exists, the description is moderately complete. It covers the basic purpose and parameter but lacks details on behavior, error handling, and operational context. The output schema means return values are documented elsewhere, reducing burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides the parameter name ('name') and clarifies it's 'The name of the project to load', adding meaning beyond the schema's generic 'Name' title. However, with only 1 parameter, the baseline is 4, but it doesn't explain format requirements (e.g., case sensitivity, exact match needed) or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Load') and resource ('an existing DaVinci Resolve project'), making the purpose immediately understandable. It distinguishes from siblings like 'create_project' and 'save_project' by specifying it loads existing projects rather than creating or saving them. However, it doesn't specify what 'load' means operationally (e.g., makes it the active project).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning 'existing' project, suggesting this tool should be used when a project already exists rather than creating a new one. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'create_project' or 'open_page', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_pageB
Open a specific page in DaVinci Resolve.
Args: page_name: The name of the page to open (media, edit, fusion, color, fairlight, deliver)
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| page_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Open a specific page') and mentions a return message, but fails to describe key behavioral traits: whether this requires specific application state (e.g., an open project), what happens if the page doesn't exist, if there are side effects (e.g., UI changes), or error conditions. For a mutation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured 'Args' and 'Returns' sections. There's no wasted text, and each part earns its place. However, the formatting with separate sections slightly reduces pure conciseness, but it remains efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (1 parameter, no annotations, but with an output schema), the description is partially complete. It explains the parameter well and notes a return message, and the output schema likely covers return values. However, it lacks context about prerequisites, behavioral details, and sibling differentiation, making it adequate but with clear gaps for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema. The schema has 0% description coverage and only indicates 'page_name' is a required string. The description provides a list of valid page names (media, edit, fusion, color, fairlight, deliver), which is crucial semantic information not present in the schema. This compensates well for the low schema coverage, though it doesn't explain format or constraints beyond the enum-like list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Open') and resource ('a specific page in DaVinci Resolve'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings (like 'set_current_timeline' or 'load_project'), which are related but distinct operations. The description is specific about what the tool does but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether DaVinci Resolve must be running or a project loaded), nor does it compare to sibling tools like 'set_current_timeline' or 'load_project'. The only implied context is that you need a page name, but this is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectB
Save the current DaVinci Resolve project.
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool saves a project and returns a success/failure message, but lacks details on behavioral traits like whether it overwrites existing files, requires specific permissions, or has side effects. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with two brief sentences that directly state the action and return value. There is zero wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema (implied by 'Returns'), the description covers the basics. However, as a mutation tool with no annotations, it should provide more behavioral context (e.g., what 'Save' entails operationally) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the action and return value, which aligns with the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Save') and resource ('current DaVinci Resolve project'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'create_project' or 'load_project', but the verb 'Save' implies persistence of an existing project rather than creation or loading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_project' or 'load_project'. It doesn't mention prerequisites (e.g., whether a project must be open) or exclusions, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_timelineB
Set the current timeline by index.
Args: index: The index of the timeline (1-based)
Returns: A message indicating success or failure
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool sets a timeline and returns a success/failure message, but fails to explain critical behaviors such as what 'current timeline' means in context, whether this is a destructive operation, or any permission/rate limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: a clear purpose statement followed by separate 'Args' and 'Returns' sections. Every sentence earns its place, with no wasted words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (mutating operation with no annotations) and the presence of an output schema (which handles return values), the description is minimally adequate. It covers the basic purpose and parameter semantics but lacks behavioral details and usage guidelines, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It specifies that 'index' is '1-based', clarifying the parameter's semantics in a way the schema alone does not. With only one parameter, this is sufficient for a high score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and resource ('current timeline'), specifying it's done 'by index'. However, it doesn't differentiate from sibling tools like 'create_timeline' or 'create_timeline_from_clips', which are likely related but distinct operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_timeline' or 'create_timeline_from_clips'. It lacks context about prerequisites (e.g., whether a timeline must exist) or exclusions, offering only basic parameter information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose targeting specific DaVinci Resolve operations like timeline management, Fusion composition, media import, and scripting. No tools overlap in functionality, making selection straightforward for an agent.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'create_project', 'import_media', and 'execute_lua'. This uniformity enhances readability and predictability across the toolset.
With 14 tools, the server is well-scoped for DaVinci Resolve operations, covering project management, timeline creation, media handling, Fusion nodes, and scripting. Each tool serves a clear purpose without redundancy or bloat.
The toolset provides comprehensive coverage for core workflows including project lifecycle, timeline operations, media import, and Fusion composition. Minor gaps exist, such as the lack of tools for deleting or modifying existing projects or timelines, but agents can work around these with available tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.0 and more.
Plan, compare, price, generate, and recover AI video from compatible MCP clients.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceA Model Context Protocol server that enables AI assistants like Claude to interact with DaVinci Resolve Studio, providing advanced control over editing, color grading, audio, and other video production tasks.18
- AlicenseAqualityAmaintenanceA professional implementation of a Model Context Protocol server that enables integration between DaVinci Resolve video editing software and AI assistants like Claude Desktop or Cursor.624GPL 3.0
- AlicenseNot gradedqualityDmaintenanceConnects AI coding assistants (Cursor, Claude Desktop) to DaVinci Resolve, enabling control of video editing workflows through natural language commands for project management, timeline operations, and media pool tasks.MIT
- AlicenseBqualityDmaintenanceConnects DaVinci Resolve Studio to Claude AI via the Model Context Protocol, enabling natural language control over video editing, color grading, Fusion compositing, AI features, and more.53347MIT
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/apvlv/davinci-resolve-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server