io.github.Airta-Admin/davinc-resolve-local-bridge-mcp
Davinc-Resolve-Local-Bridge-MCP
¿Qué es esto?
Davinc-Resolve-Local-Bridge-MCP es un servidor de Model Context Protocol (MCP) que da a los asistentes de IA control total sobre DaVinci Resolve. Expone 215 herramientas que cubren toda la API de scripting de Resolve: proyectos, líneas de tiempo, medios, Fusion, etalonaje, renderizado y más.
Cómo funciona
Your AI Assistant (Claude, Cursor, Devin, etc.)
│
│ talks MCP (stdio)
▼
mcp_server/server.py ← runs on your machine
│
│ talks HTTP (localhost:8787)
▼
Bridge-Connection-Script.py ← runs INSIDE DaVinci Resolve
│ (Workspace > Scripts menu)
▼
DaVinci Resolve API ← full read + write accessEl script puente se ejecuta dentro del proceso de DaVinci Resolve, lo que le da acceso completo a la API de scripting de Resolve, incluso en la edición Free (que bloquea el scripting externo). El servidor MCP se ejecuta como un proceso separado y hace de proxy de las llamadas a herramientas hacia el puente a través de HTTP en localhost.
Related MCP server: davinci-resolve-mcp
Inicio rápido
Requisitos previos
DaVinci Resolve 18.5+ (Free o Studio)
Python 3.10+ en tu máquina
Un asistente de IA compatible con MCP (Claude Desktop, Cursor, Devin, etc.)
Paso 1: instala el script puente
Ejecuta el instalador:
python install.pyO copia manualmente bridge/Bridge-Connection-Script.py a la carpeta de scripts de Resolve:
Plataforma | Ruta |
Windows |
|
macOS |
|
Linux |
|
Paso 2: instala las dependencias del servidor MCP
pip install -r requirements.txtPaso 3: configura tu asistente de IA
Añade el servidor MCP al archivo de configuración de tu asistente. La ruta del servidor es mcp_server/server.py en este repositorio.
Claude Desktop
Edita claude_desktop_config.json:
{
"mcpServers": {
"davinci-resolve-local-bridge": {
"command": "python",
"args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
}
}
}Cursor
Edita .cursor/mcp.json:
{
"mcpServers": {
"davinci-resolve-local-bridge": {
"command": "python",
"args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
}
}
}Devin
Edita mcp_config.json:
{
"mcpServers": {
"resolve-local-bridge": {
"command": "python",
"args": ["C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.py"]
}
}
}Claude Code
claude mcp add davinci-resolve-local-bridge -- python C:/path/to/Davinc-Resolve-Local-Bridge-MCP/mcp_server/server.pyCualquier cliente MCP (genérico)
El servidor usa transporte stdio. Lánzalo con:
python mcp_server/server.pyPaso 4: inicia el puente dentro de DaVinci Resolve
Abre DaVinci Resolve
Ve a Workspace → Scripts → Bridge-Connection-Script
Busca en la Consola (Workspace → Console) lo siguiente:
[Resolve Bridge] Connected to Resolve 21.0.4.5
[Resolve Bridge] HTTP server running on http://127.0.0.1:8787
[Resolve Bridge] 215 actions availablePaso 5: empieza a usarlo
Pregunta a tu asistente de IA:
«Comprueba si DaVinci Resolve está conectado»
El asistente llamará a la herramienta resolve_status y te informará. Luego prueba:
«Crea un nuevo proyecto de 1920x1080 a 30 fps llamado "My Video" y añade una línea de tiempo»
Arquitectura
Script puente (bridge/Bridge-Connection-Script.py)
Un script de Python que se ejecuta dentro de DaVinci Resolve a través del menú Workspace > Scripts. Este:
Obtiene el objeto
resolveen vivo de los globales de FusionInicia un servidor HTTP en
127.0.0.1:8787Expone 3 endpoints:
GET /health: comprueba si el puente está activoGET /actions: lista todos los nombres de acciones disponiblesPOST /action: ejecuta una acción por nombre con parámetros
Permanece activo con una llamada bloqueante a
serve_forever()Mata cualquier instancia anterior en el mismo puerto antes de iniciarse
Servidor MCP (mcp_server/server.py)
Un servidor MCP independiente que:
Se conecta al puente a través de HTTP en localhost
Descubre automáticamente las 215 acciones del endpoint
/actionsdel puenteExpone cada acción como una herramienta MCP con el prefijo
resolve_Hace de proxy de las llamadas a herramientas hacia el puente mediante
POST /actionSe mantiene sincronizado con el puente: no se necesitan definiciones manuales de herramientas
Las 215 herramientas
El servidor MCP descubre automáticamente las herramientas del puente. Cada herramienta lleva el prefijo resolve_ (p. ej., status se convierte en resolve_status). Pasa los parámetros como un objeto params.
Aplicación de Resolve (15 herramientas)
Herramienta | Parámetros | Descripción |
| — | Comprueba la conectividad del puente y obtiene información del proyecto/línea de tiempo actual |
| — | Obtiene información de la versión de Resolve |
| — | Obtiene la página activa (edit, cut, color, etc.) |
|
| Cambia a una página: edit, cut, fusion, color, fairlight, deliver, media |
| — | Lista los ajustes preestablecidos de diseño disponibles |
|
| Carga un ajuste preestablecido de diseño por nombre |
| — | Obtiene el modo de fotograma clave actual |
|
| Establece el modo de fotograma clave |
| — | Lista los ajustes preestablecidos de audio de Fairlight |
| — | Lista los ajustes preestablecidos de quemado |
|
| Importa un ajuste preestablecido de renderizado desde un archivo |
|
| Exporta un ajuste preestablecido de renderizado a un archivo |
| — | Cambia a la página de Fusion |
| — | Cambia a la página de edición |
| — | Cambia a la página de entrega |
Administrador de proyectos (18 herramientas)
Herramienta | Parámetros | Descripción |
|
| Crea un nuevo proyecto |
|
| Carga un proyecto existente |
| — | Guarda el proyecto actual |
| — | Cierra el proyecto actual |
|
| Elimina un proyecto |
|
| Crea una carpeta de proyecto |
|
| Elimina una carpeta de proyecto |
| — | Lista los proyectos de la carpeta actual |
| — | Lista las subcarpetas de la carpeta actual |
| — | Obtiene el nombre de la carpeta actual |
|
| Abre una carpeta |
| — | Navega a la carpeta raíz |
| — | Navega a la carpeta principal |
|
| Importa un proyecto .drp |
|
| Exporta un proyecto como .drp |
|
| Archiva un proyecto |
| — | Obtiene el nombre de la base de datos actual |
| — | Lista las bases de datos disponibles |
Configuración del proyecto (7 herramientas)
Herramienta | Parámetros | Descripción |
| — | Obtiene el nombre del proyecto actual |
|
| Cambia el nombre del proyecto actual |
|
| Obtiene un ajuste del proyecto por clave |
|
| Establece un ajuste del proyecto |
| — | Obtiene todos los ajustes del proyecto |
| — | Lista los ajustes preestablecidos del proyecto |
|
| Aplica un ajuste preestablecido del proyecto |
Almacenamiento de medios (4 herramientas)
Herramienta | Parámetros | Descripción |
| — | Lista los volúmenes de almacenamiento montados |
|
| Lista las subcarpetas de una ruta |
|
| Lista los archivos de una carpeta |
|
| Muestra un archivo en el explorador de archivos del sistema operativo |
Biblioteca de medios (13 herramientas)
Herramienta | Parámetros | Descripción |
|
| Importa archivos de medios a la biblioteca |
| — | Lista todos los clips de la carpeta raíz |
| — | Obtiene información de la carpeta raíz |
|
| Crea una subcarpeta |
|
| Establece la carpeta actual |
|
| Elimina clips de la biblioteca |
|
| Mueve clips a una carpeta |
|
| Vuelve a vincular los clips |
|
| Desvincula los clips |
|
| Exporta metadatos CSV |
| — | Lista los clips seleccionados |
|
| Selecciona un clip |
|
| Añade archivos de mate |
Línea de tiempo (21 herramientas)
Herramienta | Parámetros | Descripción |
|
| Crear una nueva línea de tiempo vacía |
|
| Crear línea de tiempo a partir de clips |
| — | Listar todas las líneas de tiempo |
| — | Obtener el nombre de la línea de tiempo actual |
|
| Renombrar la línea de tiempo actual |
|
| Cambiar a la línea de tiempo por índice (basado en 1) |
| — | Duplicar la línea de tiempo actual |
|
| Eliminar líneas de tiempo |
| — | Obtener el fotograma de inicio |
| — | Obtener el fotograma final |
| — | Obtener el código de tiempo de inicio |
|
| Establecer el código de tiempo de inicio |
| — | Obtener el código de tiempo actual |
|
| Establecer el código de tiempo actual |
| — | Detectar cortes de escena |
|
| Generar subtítulos automáticamente |
|
| Exportar línea de tiempo |
|
| Importar línea de tiempo desde archivo |
|
| Añadir clips a la línea de tiempo |
|
| Obtener un ajuste de la línea de tiempo |
|
| Establecer un ajuste de la línea de tiempo |
Pistas de la línea de tiempo (11 herramientas)
Herramienta | Parámetros | Descripción |
|
| Contar pistas (vídeo/audio/subtítulos) |
|
| Añadir una pista |
|
| Eliminar una pista |
|
| Activar/desactivar una pista |
|
| Comprobar si la pista está activada |
|
| Bloquear/desbloquear una pista |
|
| Comprobar si la pista está bloqueada |
|
| Obtener el nombre de la pista |
|
| Establecer el nombre de la pista |
|
| Listar clips en una pista |
| — | Listar clips seleccionados de la línea de tiempo |
Elementos de la línea de tiempo (66 herramientas)
Todas las acciones de elementos aceptan trackType, trackIndex, itemIndex opcionales para apuntar a un clip específico, u operan sobre el primer clip seleccionado si se omiten.
Tool | Parameters | Description |
|
| Obtener nombre del clip |
|
| Renombrar un clip |
|
| Obtener duración del clip |
|
| Obtener fotograma de inicio del clip |
|
| Obtener fotograma final del clip |
|
| Obtener una propiedad del clip |
|
| Establecer una propiedad del clip |
|
| Comprobar si el clip está habilitado |
|
| Habilitar/deshabilitar un clip |
|
| Establecer color del clip |
|
| Obtener color del clip |
|
| Borrar color del clip |
|
| Añadir una marca |
|
| Obtener marcas |
|
| Borrar marcas |
|
| Añadir un marcador |
|
| Obtener marcadores |
|
| Insertar un generador |
|
| Insertar un generador Fusion |
| — | Insertar una composición Fusion |
|
| Insertar un generador OFX |
|
| Insertar un título |
|
| Insertar un título Fusion |
| — | Capturar una imagen fija del fotograma actual |
| — | Capturar imágenes fijas de todos los clips |
|
| Crear un clip compuesto |
| — | Crear un clip Fusion |
|
| Importar en la línea de tiempo |
|
| Estabilizar un clip |
|
| Aplicar Smart Reframe a un clip |
|
| Crear una Magic Mask |
|
| Regenerar Magic Mask |
|
| Obtener información de pista para un clip |
|
| Obtener elementos vinculados |
|
| Establecer valores CDL |
|
| Añadir una toma |
|
| Contar tomas |
|
| Seleccionar una toma |
|
| Finalizar la toma actual |
|
| Copiar gradaciones a otros clips |
|
| Exportar un LUT |
|
| Establecer caché de salida de color |
|
| Establecer caché de salida Fusion |
|
| Obtener metadatos del clip |
|
| Establecer metadatos del clip |
|
| Obtener propiedad del clip |
|
| Establecer propiedad del clip |
|
| Vincular medios proxy |
| — | Desvincular medios proxy |
|
| Reemplazar clip con archivo |
|
| Añadir un marcador de clip |
| — | Obtener marcadores de clip |
|
| Establecer color del clip (media pool) |
|
| Añadir una marca de clip |
|
| Transcribir audio |
|
| Establecer entrada/salida de marca |
|
| Borrar entrada/salida de marca |
|
| Añadir marcador de línea de tiempo |
| — | Obtener marcadores de línea de tiempo |
|
| Eliminar marcadores por color |
|
| Eliminar marcador en fotograma |
|
| Exportar fotograma actual como imagen fija |
|
| Aplicar preajuste Fairlight |
| — | Listar preajustes de exportación rápida |
Composiciones Fusion (14 herramientas)
Tool | Parameters | Description |
|
| Crear una composición Fusion |
|
| Añadir una composición Fusion a un clip |
|
| Importar un archivo .comp |
|
| Exportar una composición Fusion |
|
| Cargar una composición por nombre |
|
| Eliminar una composición por nombre |
|
| Renombrar una composición |
|
| Contar composiciones Fusion en un clip |
|
| Listar nombres de composiciones Fusion |
| — | Obtener composición Fusion actual |
| — | Listar todas las composiciones abiertas |
| — | Crear una nueva composición Fusion |
|
| Guardar composición actual |
|
| Cargar un archivo de composición |
| — | Cerrar composición actual |
| — | Renderizar composición actual |
Herramientas Fusion (11 herramientas)
Herramienta | Parámetros | Descripción |
| — | Lista todas las herramientas/nodos en el comp actual |
|
| Busca una herramienta por nombre |
|
| Elimina una herramienta |
|
| Obtiene los atributos de la herramienta |
|
| Establece los atributos de la herramienta |
|
| Añade un nodo (Background, Paint, Merge, etc.) |
|
| Conecta dos nodos |
|
| Establece una entrada de nodo (admite keyframes) |
|
| Obtiene el valor de una entrada de nodo |
|
| Establece el fotograma actual |
| — | Obtiene el fotograma actual |
Galería (4 herramientas)
Herramienta | Parámetros | Descripción |
| — | Lista los álbumes de fotogramas fijos de la galería |
| — | Lista los álbumes de PowerGrade |
| — | Crea un álbum de fotogramas fijos |
| — | Crea un álbum de PowerGrade |
Color / Nodos (7 herramientas)
Herramienta | Parámetros | Descripción |
| — | Obtiene el número de nodos del clip actual |
|
| Obtiene la etiqueta de un nodo |
|
| Obtiene el LUT de un nodo |
|
| Establece un LUT en un nodo |
|
| Activa/desactiva un nodo |
| — | Restablece todas las correcciones de color |
| — | Actualiza la lista de LUT |
Renderizado (22 herramientas)
Herramienta | Parámetros | Descripción |
| — | Lista los formatos de renderizado |
|
| Lista los códecs de un formato |
| — | Obtiene el formato/códec actual |
|
| Establece el formato y códec de renderizado |
| — | Obtiene el modo de renderizado |
|
| Establece el modo de renderizado |
|
| Lista las resoluciones de renderizado |
| — | Lista los ajustes preestablecidos de renderizado |
|
| Carga un ajuste preestablecido de renderizado |
|
| Guarda un nuevo ajuste preestablecido de renderizado |
|
| Elimina un ajuste preestablecido de renderizado |
|
| Establece los ajustes de renderizado (TargetDir, CustomName, etc.) |
| — | Añade un trabajo de renderizado |
|
| Elimina un trabajo de renderizado |
| — | Elimina todos los trabajos de renderizado |
| — | Lista los trabajos de renderizado |
|
| Inicia el renderizado |
| — | Detiene el renderizado |
| — | Comprueba si se está renderizando |
|
| Obtiene el estado del trabajo de renderizado |
|
| Exportación rápida |
|
| Añade un trabajo e inicia el renderizado |
Voz y Subtítulos (1 herramienta)
Herramienta | Parámetros | Descripción |
|
| Genera audio de voz con IA |
Especial (1 herramienta)
Herramienta | Parámetros | Descripción |
|
| Crea una animación de dibujo a mano (técnica de Daniel Batal) |
Solución de problemas
El puente no se inicia
Asegúrate de que DaVinci Resolve esté en ejecución y haya un proyecto abierto
Revisa la Consola (Workspace → Console) para ver mensajes de error
Reinicia DaVinci Resolve: solo escanea la carpeta Scripts al iniciarse
«No se pudo conectar al puente de Resolve»
Asegúrate de haber ejecutado Workspace → Scripts → Bridge-Connection-Script dentro de Resolve
Comprueba que la consola muestre
[Resolve Bridge] HTTP server running on http://127.0.0.1:8787Si el puerto ya está en uso, cierra Resolve y vuelve a abrirlo (los procesos obsoletos de
fuscript.exepueden mantener el puerto ocupado)
Las herramientas devuelven errores
Llama a
resolve_statusprimero para verificar la conectividadAlgunas acciones requieren que haya un proyecto abierto, que exista una línea de tiempo o que haya un clip seleccionado
Los mensajes de error del puente indican qué falta
Detalles técnicos
Puerto del puente: 127.0.0.1:8787 (solo localhost, sin acceso externo)
Transporte: HTTP/1.0 con Connection: close
Transporte MCP: stdio
Dependencias:
mcp,requests(solo servidor MCP; el puente usa stdlib puro)Versión de Resolve: 18.5+ (probado en 21.0.4.5)
Python: 3.10+ para el servidor MCP; el puente usa el Python integrado de Resolve
Licencia
Licencia MIT — consulte el archivo LICENSE.
Créditos
Creado por The Geek Gods. Inspirado por la comunidad de scripting de DaVinci Resolve.
Available Tools
1 toolresolve_healthA
Check if DaVinci Resolve bridge is running. The bridge script must be running inside Resolve via Workspace > Scripts > DaVinciResolveBridge. If this returns an error, the bridge is not running.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 explicitly states the error behavior: 'If this returns an error, the bridge is not running.' This is key behavioral information. However, it does not disclose what a successful response contains or whether the tool has any side effects, though 'check' implies a read-only operation. Still, the error semantics are clearly and usefully disclosed.
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 three sentences, each earning its place. The first sentence states the purpose, the second gives the setup prerequisite, and the third explains error interpretation. It is front-loaded with the core function and contains no filler or redundant phrases.
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?
The tool is simple with no parameters, no output schema, and no siblings. The description covers what the tool checks and how to interpret an error. A minor gap is that it does not explicitly describe the success response, but for a health-check tool, the error condition is the most critical information. The description is otherwise complete for an agent to select and invoke the tool.
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?
This tool has zero parameters, so there is nothing to document. According to the guidelines, a baseline of 4 is appropriate when no parameters exist. The description does not need to add parameter-level detail, and it doesn't waste space on it.
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 states exactly what the tool does: 'Check if DaVinci Resolve bridge is running.' The verb 'check' and resource 'DaVinci Resolve bridge' are specific and unambiguous. Since there are no sibling tools, there is no need for differentiation, and the description is fully self-contained.
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 clear usage context by explaining the prerequisite: the bridge script must be running inside Resolve via Workspace > Scripts > DaVinciResolveBridge. It also tells the agent how to interpret the result, which is effectively guidance for using the tool. There are no alternatives to contrast, so no exclusions are necessary, but it doesn't explicitly say 'use this when you need to verify connectivity.'
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 tool update
v1.2.5- First observed
resolve_health
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion or overlapping purposes. The tool's purpose is unambiguous.
The single tool name follows a clear verb_noun pattern (resolve_health), which is consistent and descriptive. With only one tool, naming consistency is inherently strong.
A single health-check tool is far too few for a server presumably meant to bridge to DaVinci Resolve. Even as a minimal health-only server, one tool feels extremely thin and provides little value beyond a ping.
The server only provides a health check, with no ability to interact with DaVinci Resolve projects, timelines, renders, or any other meaningful operations. This is a severely incomplete surface for a bridge to a complex application.
Maintenance
Related MCP Connectors
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
Remote MCP for AI video, image, music and speech generation.
- CueFrameOAuthai.cueframe
Compose, edit and render video with your AI agent. Turn footage into finished edits with content-aware reframing, word-timed captions and motion graphics. Hosted MCP with OAuth sign-in; cloud processing uses credits.
Plan, compare, price, generate, and recover AI video from compatible MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceComprehensive MCP server for DaVinci Resolve with 295+ tools to control projects, timelines, editing, color grading, rendering, and more via natural language.83 PyPI6MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes the complete DaVinci Resolve scripting API, enabling AI assistants to control DaVinci Resolve programmatically with over 440 tools for project management, timeline editing, color grading, rendering, and more.13MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control DaVinci Resolve (Free and Studio) through natural language, providing 162 tools for timeline editing, color grading, rendering, and more. Includes local AI replacements for Studio-only features like voice isolation, background removal, and transcription.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control DaVinci Resolve Studio via MCP, providing full scripting API coverage plus workflow helpers for editing, media organization, rendering, grading, and more.5,556 npmMIT