Skip to main content
Glama
hoyt-harness

DaVinci MCP Professional

DaVinci MCP Professional

DaVinci Resolve 스크립팅 API 전체를 AI 어시스턴트에 노출하는 엔터프라이즈급 Model Context Protocol (MCP) 서버입니다. 이 프로젝트는 @samuelgursky의 davinci-resolve-mcp를 하드 포크하여 독립적으로 재작성 및 유지 관리됩니다.

지원되는 MCP 클라이언트: Claude Desktop (기본), Gemini CLI, ChatGPT.


필수 조건

  • DaVinci Resolve Studio 설치 및 라이선스 보유 (무료 버전은 외부 스크립팅을 지원하지 않음)

  • Python 3.10 이상, 시스템 전체에 설치됨 (python.org에서 "Add to PATH" 및 "Install for all users"를 선택하여 설치). Windows에서 DaVinci Resolve는 Windows 레지스트리를 통해 Python을 찾습니다. uv로 관리되거나 사용자 전용으로 설치된 Python은 찾을 수 없으며 충돌을 일으킵니다.

  • uv — 빠른 Python 패키지 및 가상 환경 관리자


Related MCP server: DaVinci Resolve MCP Server

설치

소스에서 설치 (권장)

git clone https://github.com/Positronikal/davinci-mcp-professional.git
cd davinci-mcp-professional
uv venv
uv sync

독립형 Windows 실행 파일

Releases에서 미리 빌드된 Windows 바이너리를 다운로드하세요. Python 설치가 필요하지 않습니다.

릴리스에는 두 개의 실행 파일이 포함되어 있습니다:

실행 파일

목적

davinci-mcp-server.exe

MCP 서버 — Claude Desktop(또는 다른 MCP 클라이언트)에 의해 자동으로 실행됩니다. 콘솔 출력 없이 stdio를 통해 통신합니다. claude_desktop_config.json에서 이 파일을 사용하세요.

davinci-mcp.exe

대화형 CLI — 터미널에서 서버를 수동으로 실행하기 위한 용도입니다. 시작 배너를 표시하고, DaVinci Resolve가 실행 중인지 확인하며, --debug 및 --skip-checks 플래그를 지원합니다.

대부분의 사용자는 MCP 클라이언트에 davinci-mcp-server.exe만 구성하면 됩니다. davinci-mcp.exe는 문제 해결이나 클라이언트를 구성하기 전에 서버가 Resolve에 연결할 수 있는지 확인하는 데 유용합니다.


Claude Desktop 구성

claude_desktop_config.json 파일을 찾거나 생성하세요:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

서버 항목을 추가하세요:

소스에서 실행 (Windows):

{
  "mcpServers": {
    "davinci-resolve": {
      "name": "DaVinci MCP Professional",
      "command": "C:\\path\\to\\davinci-mcp-professional\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\davinci-mcp-professional\\mcp_server.py"]
    }
  }
}

소스에서 실행 (macOS):

{
  "mcpServers": {
    "davinci-resolve": {
      "name": "DaVinci MCP Professional",
      "command": "/path/to/davinci-mcp-professional/.venv/bin/python",
      "args": ["/path/to/davinci-mcp-professional/mcp_server.py"]
    }
  }
}

독립형 Windows 실행 파일 사용:

{
  "mcpServers": {
    "davinci-resolve": {
      "name": "DaVinci MCP Professional",
      "command": "C:\\path\\to\\davinci-mcp-server\\davinci-mcp-server.exe",
      "args": []
    }
  }
}

구성을 저장한 후 Claude Desktop을 다시 시작하세요.


기타 지원되는 클라이언트

Gemini CLI 및 ChatGPT는 MCP 표준을 지원하며 동일한 mcp_server.py 진입점을 사용하여 이 서버에 연결할 수 있습니다. 이들의 MCP 통합은 아직 발전 중이므로, 현재 구성 방법은 각 클라이언트의 문서를 참조하세요.


기본 사용법

  1. DaVinci Resolve를 시작하고 완전히 로드될 때까지 기다립니다.

  2. MCP 서버를 시작합니다 (Claude Desktop은 구성 시 자동으로 수행합니다).

  3. AI 어시스턴트에게 Resolve와 상호 작용하도록 요청합니다:

What version of DaVinci Resolve is running?
List all projects in the database.
Create a new timeline called "Act 1".
Switch to the Color page.
Import /path/to/clip.mp4 into the media pool.

추가 읽기 자료

문서

목적

USING.md

개발자 설정, 빌드 지침, 기여 방법

BUGS.md

문제 해결 및 버그 보고

CONTRIBUTING.md

기여 가이드라인

COPYING.md

GPL-3.0 라이선스

개발자 설정, 빌드 지침 및 기여 가이드라인은 USING.md를 참조하세요.

Available Tools

6 tools
activate_domainA

Activate a domain to make its tools available. Available domains: ai_studio, clip_properties, color_grading, media_pool, project_management, render_delivery, system_fairlight_storage, timeline_item_editing, timeline_operations. Call list_domains to see current activation status.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to activate

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states the primary effect—'make its tools available'—but does not explain side effects, idempotency, whether activating one domain deactivates another, persistence, or error behavior. This is a thin disclosure for a state-changing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with action and purpose, followed by a list of valid domains and a pointer to list_domains. The domain list repeats the schema enum, but it serves as a convenient inline reference without being overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with a single parameter and no output schema, so the description covers the basics: what to activate, the valid domains, and how to check status. However, it leaves the activation model under-specified—particularly whether domains are mutually exclusive or cumulative—and does not mention deactivate_domain as the reverse operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the domain parameter with an enum and 'Domain name to activate.' The description adds no meaningful semantics beyond listing the same enum values, so it does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Activate a domain to make its tools available.' It lists all valid domain values, making the tool's scope explicit, and its purpose is clearly distinct from siblings like deactivate_domain and list_domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to 'Call list_domains to see current activation status,' directing the agent to the appropriate sibling for checking state. It does not explicitly contrast with deactivate_domain or describe when activation is unnecessary, but the core usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deactivate_domainA

Deactivate a domain to remove its tools from the active tool list.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to deactivate

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It clearly reveals the primary side effect—removing tools from the active tool list—but does not mention reversibility, whether the domain itself is deleted, or any side effects for already-active tools. This is adequate but minimally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that leads with the action and object, then provides the meaningful consequence. Every word earns its place and there is no redundant restating of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple one-parameter tool with no output schema, and the description explains what it does and what effect to expect. It is functionally sufficient for an agent to select and invoke the tool correctly, though it would be more complete if it explicitly confirmed that deactivation does not delete the domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the meaning of 'domain' is already fully captured in the schema. The description adds no additional meaning beyond restating that the domain name is being deactivated, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Deactivate a domain' and clearly describes the intended outcome: 'remove its tools from the active tool list.' This differentiates it from sibling tools like list_domains, get_version, and switch_page, and makes activate_domain the obvious inverse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this when a domain's tools should no longer appear in the active tool list. It does not explicitly name alternatives or give when-not-to-use conditions, so it stops short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_pageA

Get the current page open in DaVinci Resolve (Edit, Color, Fusion, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must bear the burden. It simply states 'Get', implying a read-only operation. No mention of side effects or edge cases (e.g., if no page is open). Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 11 words, front-loaded with verb and resource. No unnecessary information. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with no parameters or output schema, the description provides sufficient context. It could mention the return format (e.g., a string) but is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Description adds no extra parameter info, but this is acceptable for a parameterless tool. Baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Get' and resource 'current page' with specific examples of pages (Edit, Color, Fusion). It distinguishes from sibling tools like 'switch_page'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. The description implies its use for querying the current page, but does not mention alternatives like 'switch_page' or contexts where it might not be applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionA

Get DaVinci Resolve version information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does not disclose any behavioral traits such as side effects, authentication needs, or limitations. It simply restates the name, adding no extra insight beyond what the tool name provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words. It is front-loaded and efficient, earning its place without any waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters, but the description fails to mention the return format or any error conditions. Since there is no output schema, this information would be helpful. However, the description still provides the core purpose adequately, earning a mid-range score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% description coverage (trivially). The description does not need to elaborate on parameters, and the baseline score of 4 is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'DaVinci Resolve version information', making the tool's purpose immediately obvious. It effectively distinguishes itself from sibling tools which deal with projects, timelines, media, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 or any context about prerequisites. While the tool is straightforward, the lack of any usage hints is a missed opportunity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_domainsA

List all registered domains and their activation status. Use this to discover available domains before calling activate_domain.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, but 'List' clearly signals a non-mutating read operation and the description tells what is returned: all registered domains with their activation status. It does not cover pagination or exact output shape, but for a zero-parameter listing tool the core behavioral surface is well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences: the first states the core function, the second gives practical usage guidance. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter list operation with no output schema, the description provides the essential context: what is returned and when to invoke it. It could add detail on how activation status is represented, but nothing critical is missing for the agent to select and call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters and schema coverage is 100%, so there is nothing missing to explain in the description. The rubric baseline for zero parameters applies, and no parameter-specific description is necessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List all registered domains and their activation status.' It clearly distinguishes itself from the sibling activation/deactivation tools by focusing on discovery and status rather than mutation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to discover available domains before calling activate_domain,' giving a specific when-to-use instruction and referencing a dependent sibling. This tells the agent exactly when this tool is the correct choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

switch_pageA

Switch to a specific page in DaVinci Resolve

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesThe page to switch to

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the action without disclosing side effects (e.g., if already on the page), error conditions, or behavior beyond the basic switch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 10 words with no redundant information, perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required enum parameter, no output schema), the description fully covers the necessary context for an agent to understand its purpose and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with enum descriptions. The description adds no extra meaning about the page parameter beyond what schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'switch' and resource 'page', and specifies the context 'in DaVinci Resolve'. It distinguishes from sibling tools like 'get_current_page' which reads the current page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as 'switch_timeline' or 'get_current_page'. No prerequisites or context of use are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev4.0.0
    • Changedactivate_domain1 field changed
      • changedInput schema / properties / domain / enum
        Previous value: -[
        -  "media_pool",
        -  "project_management",
        -  "timeline_operations"
        -]New value: +[
        +  "ai_studio",
        +  "clip_properties",
        +  "color_grading",
        +  "media_pool",
        +  "project_management",
        +  "render_delivery",
        +  "system_fairlight_storage",
        +  "timeline_item_editing",
        +  "timeline_operations"
        +]
  2. 13 tool updatesv3.1.0
    • Addedactivate_domain
    • Removedcreate_project
    • Removedcreate_timeline
    • Addeddeactivate_domain
    • Removedget_current_project
    • Removedget_current_timeline
    • Removedimport_media
    • Addedlist_domains
    • Removedlist_media_clips
    • Removedlist_projects
    • Removedlist_timelines
    • Removedopen_project
    • Removedswitch_timeline
  3. 13 tool updatesv0.1.0
    • First observedcreate_project
    • First observedcreate_timeline
    • First observedget_current_page
    • First observedget_current_project
    • First observedget_current_timeline
    • First observedget_version
    • First observedimport_media
    • First observedlist_media_clips
    • First observedlist_projects
    • First observedlist_timelines
    • First observedopen_project
    • First observedswitch_page
    • First observedswitch_timeline

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: domain activation/deactivation/listing, version retrieval, and page navigation. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow the snake_case verb_noun pattern consistently, making the API predictable and easy to navigate.

Tool Count5/5

Six tools is well-scoped for a domain management and basic Resolve control server. Each tool serves a necessary function without bloat.

Completeness5/5

The domain lifecycle is fully covered with list, activate, and deactivate, and page navigation is complete with get and switch. Version info adds essential context. No obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers