samuelgursky/davinci-resolve-mcp

MCP-сервер для интеграции с DaVinci Resolve Studio

MCP⭐ 3 029Pythonпоследний релиз: v4.8.15
Открыть на GitHub ↗

Что это за инструмент

MCP-сервер, позволяющий AI-ассистентам управлять DaVinci Resolve Studio через официальный Scripting API.

Зачем нужен

Инструмент автоматизирует рутинные задачи видеомонтажа, организации медиа и настройки рендера, интегрируя профессиональный видеоредактор в рабочий процесс AI-агентов. Это полезно для ускорения черновой сборки, синхронизации и подготовки материалов без ручного вмешательства.

Что можно реализовать

  • Автоматический поиск и синхронизация дублей по 2-pop или хлопушке (slate claps)
  • Создание мультикамерных временных линий и организация медиа в бинах
  • Анализ таймлайна на наличие разрывов, перекрытий и отсутствующих медиа
  • Автоматическая подготовка плана рендера (например, ProRes 422 HQ) и постановка задачи в очередь
  • Копирование маркеров обзора и экспорт отчетов для согласования

Ключевые возможности

  • Полное покрытие API DaVinci Resolve (100% coverage) с поддержкой режимов 'Compound' (34 инструмента) и 'Full' (341 инструмент)
  • Встроенная локальная панель управления для инспекции состояния Resolve и визуального анализа медиа
  • Поддержка сложных задач: работа с Fairlight, Fusion, DCTL-скриптами и source-safe анализом
  • Удобная установка через npm с автоконфигурацией для популярных IDE и AI-клиентов (Claude, Cursor, VS Code и др.)
  • Высокая надежность: 98.5% успешных живых тестов и защита от потери медиа (guards)

👤 Кому подойдёт: видеомонтажеры, видеоинженеры и разработчики, использующие AI-агентов для автоматизации постпродакшна

Релизы

v4.8.15patch
🕐 13 ч назад · релиз на GitHub ↗

Исправлено некорректное преобразование строки "false" в true, из-за чего синхронные запросы выполнялись асинхронно.

  • Fixed: Исправлена логика определения синхронного режима: параметры background и async_job теперь корректно приводятся к булевым значениям, предотвращая ошибочный запуск фоновых задач при передаче строки "fal
  • Fixed: Применено единое приведение типов для флагов, что устранило рассинхрон в обработке параметров между разными компонентами.
  • Все 3893 теста прошли успешно, статические проверки не выявили ошибок.
v4.8.14patch
🕐 14 ч назад · релиз на GitHub ↗

Обновлены зависимости в lock-файлах для устранения уязвимостей; код не менялся.

  • Fixed: Устранены уязвимости в зависимостях (@hono/node-server, hono, adm-zip, fast-uri, ip-address, qs).
  • Fixed: npm audit теперь показывает нулевое количество уязвимостей для обоих манифестов.
  • Изменены только lock-файлы; код и диапазоны версий в package.json не затронуты.
  • Все 3892 теста прошли успешно, статические проверки и аудит подтвердили стабильность.
v4.8.13patch
🕐 вчера · релиз на GitHub ↗

Исправлена ошибка нормализации параметра include_linked, из-за которой строка "false" не отключала пересвязывание.

  • Fixed: Исправлена обработка строковых значений "false" для параметра include_linked, которые ранее ошибочно считались истинными и включали пересвязывание.
  • Fixed: Теперь строковые варианты "false" корректно возвращают пустой набор, что позволяет правильно отключать пересвязывание при перемещении таймлайна.
  • Поведение для значений True, False, "all", а также списков осталось без изменений.
  • Полный набор из 3892 тестов успешно пройден, статические проверки выполнены без ошибок.
v4.8.12patch
🕐 вчера · релиз на GitHub ↗

Исправлено выведение служебных файлов трассировки и отчетов в папку logs/ во время офлайн-запусков.

  • Fixed: Служебные файлы (трейсы, отчеты, состояние обновлений) теперь записываются во временную директорию, а не в папку logs/ репозитория.
  • Fixed: Исправлена проблема, при которой один полный офлайн-запуск создавал более 1800 записей в журнале трассировки.
  • Изменения коснулись только тестовой инфраструктуры; функционал инструментов и поведение Resolve не затронуты.
v4.8.4patch
🕐 2 дн назад · релиз на GitHub ↗

Исправлена ошибка добавления ключевых кадров для вложенных контролов Fusion, теперь они корректно отклоняются с указанием имен.

  • Fixed: Исправлена ошибка, при которой add_keyframe для вложенных контролов (NestControl) возвращал неустранимую ошибку FUSION_ADD_MODIFIER_FAILED.
  • Fixed: Команды add_keyframe и add_modifier теперь блокируют работу с вложенными контролами, возвращая ошибку FUSION_INPUT_IS_NEST_CONTROL с перечнем имен складываемых элементов.
  • Fixed: Ключевые кадры теперь успешно добавляются для реальных параметров, таких как Softness1 и TransformSize, а не для заголовков групп.
  • Added: В результаты действий добавлено поле api_truth, содержащее информацию о вложенных элементах (nest_members).
v4.7.10patch
🕐 3 дн назад · релиз на GitHub ↗

Исправлена ошибка синхронизации времени в клипах с drop-frame, из-за которой события сдвигались на 3.6 секунды в час.

  • Fixed: Исправлена ошибка в детекторе синхронизации: события в клипах с drop-frame теперь корректно отображаются по времени, а не сдвигаются на 3.6 секунды в час.
  • Fixed: Устранено рассинхронизирование прямой и обратной конвертации времени: обратная функция теперь учитывает drop-frame, что предотвращает ошибки в маркерах проекта Resolve.
  • Поведение для клипов без drop-frame и формата 23.976 не изменено.
v4.7.9patch
🕐 3 дн назад · релиз на GitHub ↗

Исправлена критическая ошибка с отрицательными индексами: теперь они отклоняются, а не применяются к последнему элементу.

  • Fixed: Отрицательные индексы теперь корректно отклоняются, а не приводят к обращению к последнему элементу.
  • Fixed: Исправлена логика проверки границ индексов в инструментах работы с таймлайном и галереей.
  • Fixed: Операции удаления (delete_stills) теперь отклоняют весь запрос при наличии невалидного индекса.
  • Пройден полный набор из 3754 юнит-тестов, все статические проверки успешно завершены.
v4.7.8patch
🕐 4 дн назад · релиз на GitHub ↗

Исправлена ошибка, из-за которой строка "false" не блокировала пользовательские имена проектов в Davinci Resolve MCP.

  • Fixed: Исправлено чтение флага allow_non_mcp_name: теперь значение "false" корректно блокирует использование имен проектов, не созданных MCP.
  • Fixed: Устранена уязвимость, позволяющая удалять или изменять пользовательские проекты через расширения, когда защита имени была отключена неверно.
  • Fixed: Обновлены вспомогательные функции для парсинга булевых значений, чтобы избежать ложного срабатывания из-за строковых представлений.
v4.7.6patch
🕐 4 дн назад · релиз на GitHub ↗

Исправлена передача версии проекта в MCP-сервере: теперь клиент видит 4.7.6, а не версию SDK.

  • Fixed: Исправлен баг в handshake MCP: сервер теперь корректно сообщает версию проекта (4.7.6), а не библиотеки SDK.
  • Fixed: Оба экземпляра FastMCP принудительно устанавливают атрибут версии сервера после инициализации.
  • Added: Обновлены тесты: stub-серверы теперь проверяют поле server_version в опциях инициализации.
  • Все 3733 теста пройдены успешно, статические проверки не выявили ошибок.
v4.7.4patch
🕐 5 дн назад · релиз на GitHub ↗

Исправлена ошибка HTTP 421 при сетевом доступе к MCP-серверу через Streamable HTTP/SSE.

  • Fixed: Устранена ошибка 421 при запросах к серверу из локальной сети: исправлено некорректное обновление списка разрешенных хостов (allowlist) при использовании флага --transport streamable-http или sse.
  • Added: Добавлена новая переменная окружения DAVINCI_MCP_ALLOWED_HOSTS для явного указания разрешенных DNS-имен клиентов.
  • Fixed: Логика проверки хоста теперь применяется до сборки приложения, что обеспечивает корректную защиту от DNS-rebinding атак для неблокирующих привязок.
  • Added: Обновлены документация SECURITY.md и docs/install.md с описанием новой переменной окружения и работы списка разрешенных хостов.
v4.7.3patch
🕐 5 дн назад · релиз на GitHub ↗

Исправлена критическая ошибка в обработке флагов разрешений, из-за которой строка "false" некорректно активировала опасные функции.

  • Fixed: Исправлено некорректное чтение шести флагов разрешений: строка "false" теперь корректно отключает доступ, а не активирует его.
  • Fixed: Внедрена функция coerce_bool для парсинга параметров, что предотвращает выполнение опасных операций (архивация, удаление проекта, генерация субтитров) по ошибке.
  • Fixed: Устранена уязвимость, позволяющая клиентам обходить защитные механизмы (trap guards) и выполнять операции с исходными медиа или переключать базу данных.
  • Все 3719 юнит-тестов пройдены успешно, статические проверки выполнены без ошибок.
v4.7.0minor
🕐 5 дн назад · релиз на GitHub ↗

Добавлена поддержка транскрипции и типов элементов таймлайна в Resolve 21.1.

  • Added: Добавлен гранулярный метод get_media_pool_item_transcription для получения таймкодированных слов.
  • Added: Реализованы методы get_type и get_timeline_item_type для определения типа элементов таймлайна.
  • Added: Обновлены CODE_FLOORS, документация и сгенерированные правила агентов для поддержки новых функций.
  • Валидация на Studio 21.1.0.14 подтвердила корректную работу всех методов чтения.
v4.5.2patch
🕐 6 дн назад · релиз на GitHub ↗

Исправлены критические ошибки в системе оценки рисков инструментов и логировании аудита.

  • Fixed: Пересмотрены уровни риска для инструментов: ti_copy_grades повышен до high, timeline_delete_clips до critical.
  • Fixed: Исправлено логирование: исправлены ложные статусы разрешенных действий и добавлены записи об исключениях.
  • Fixed: Унифицирован приоритет оценки рисков: теперь учитывается влияние на данные, оценка сервера и глагол.
  • Fixed: Добавлена проверка, блокирующая инструменты с риском ниже установленного сервером уровня.
v4.5.1patch
🕐 6 дн назад · релиз на GitHub ↗

Исправлено критическое падение safe-mode: блокировки теперь корректно возвращаются как текст, а не вызывают ToolError.

  • Fixed: Исправлена ошибка, при которой блокировки safe-mode на 27 инструментах с возвращаемым типом str приводили к краху ToolError вместо возврата сообщения об отказе.
  • Fixed: Теперь инструменты, помеченные как -> str, корректно возвращают читаемый текст отказа с кодом, что предотвращает потерю информации об ошибке.
  • Fixed: Структурированные инструменты (-> Dict[str, Any]) продолжают работать без изменений, сохраняя полную информацию о блокировке.
  • Added: Добавлена статическая проверка, сканирующая все инструменты с декоратором destructive и типом str, чтобы предотвратить повторение ошибки в будущем.
v4.5.0majorbreaking
🕐 6 дн назад · релиз на GitHub ↗

Введение Safe Mode и аудита для 132 гранулярных инструментов с риском разрушения данных.

  • Added: Добавлен декоратор @granular_destructive_op для 132 инструментов, обеспечивающий блокировку опасных операций в Safe Mode.
  • Added: Введена система оценки рисков на основе глаголов и реестра api_truth с обязательной записью в журнал аудита.
  • Added: Добавлен параметр allow_risky_operation для обхода блокировок, интегрированный через __signature__ в схему MCP.
  • Fixed: Исправлена ошибка регистров в оценке рисков, из-за которой Safe Mode игнорировался на гранулярном сервере.
  • Breaking: Гранулярные операции теперь не создают архивные копии: изменения либо отклоняются, либо фиксируются без возможности отката.
v4.2.0minorbreaking
🕐 7 дн назад · релиз на GitHub ↗

Добавлена защита от случайной перезаписи градов через токен подтверждения и исправлено отображение статуса «отградировано» в Color Page.

  • Breaking: Параметр timeline_item_color copy_grades теперь требует confirm_token для вызова TimelineItem.CopyGrades, предотвращая безвозвратную перезапись градов.
  • Added: Первый вызов возвращает confirmation_required с превью разрешенных целей и одноразовым токеном, привязанным к параметрам.
  • Fixed: Исправлена ошибка, при которой внедренный град корректно применялся, но Color Page отображал клип как неотградированный из-за флага HasCorrection.
  • Added: Не найденные ID целей теперь явно сообщаются, а не игнорируются, что устраняет предупреждение из документации об отсутствии проверки существования.
v4.1.3patch
🕐 7 дн назад · релиз на GitHub ↗

Исправлены критические ошибки импорта MCP-хуков и протокола подтверждения действий; улучшена точность проверки атрибутов Resolve.

  • Fixed: Устранена ошибка ImportError при ручном запуске: унифицирован механизм подмены модулей mcp, теперь реальный SDK не вытесняется заглушками.
  • Fixed: Исправлена логика safe_copy_grade и safe_apply_drx: теперь корректно обрабатываются токены подтверждения (confirmation tokens), а не возвращают ложные результаты.
  • Fixed: Заменена ненадежная проверка hasattr на dir() для определения наличия методов в объектах Resolve, так как hasattr ложно срабатывал для несуществующих атрибутов.
  • Added: Добавлены новые защитные тесты для TimelineItem.ApplyGradeFromStill и подтверждено поведение CopyGrades, ExportLUT и DuplicateTimeline на Studio 21.1.0.14.
v4.1.2patch
🕐 8 дн назад · релиз на GitHub ↗

Исправление нестабильного теста и бага проверки установки DaVinci Resolve; без изменений в коде сервера.

  • Fixed: Устранена нестабильность теста SetupExitStatusTests, вызванного зависимостью от реального запуска Resolve.
  • Fixed: Исправлена логика проверки установки: теперь требуется наличие как библиотеки fusionscript, так и API-пути.
  • Fixed: Тесты стали детерминированными за счет пининга результатов верификации, что позволяет запускать их в CI без Resolve.
  • Added: Добавлены защитные механизмы (guards) для предотвращения повторения ошибок при изменении кода тестов.
v4.1.1patch
🕐 8 дн назад · релиз на GitHub ↗

Исправлено ложное срабатывание предупреждения о дрейфе длительности таймлайна при переключении проектов.

  • Fixed: Устранена ошибка в DriftDetectionHook, вызывавшая ложные предупреждения о дрейфе длительности при загрузке нового проекта или таймлайна.
  • Fixed: Хук теперь корректно проверяет совпадение project_name и timeline_name, сбрасывая базовую линию при смене контекста вместо сравнения несвязанных состояний.
  • Added: Возвращаемый объект теперь явно указывает baseline_reset: true, чтобы отличить отсутствие дрейфа от факта сброса проверки.
  • Логика сохранения дрейфа для неизменных проектов и таймлайнов, а также для старых форматов данных, осталась без изменений.
v3.2.0minor
🕐 9 дн назад · релиз на GitHub ↗

Добавлен инструмент lut для управления LUT-файлами с безопасной изоляцией изменений и защитой от выполнения кода.

  • Added: Появился инструмент lut с командами list, read, install, remove, attenuate и capabilities для полного цикла работы с LUT.
  • Added: Поиск LUT охватывает всю мастер-корневую папку, а запись и удаление происходят только в изолированной папке MCP/.
  • Added: Введена система гейтирования: операции install и attenuate имеют уровень MEDIUM, remove — HIGH, блокируясь в безопасном режиме.
  • Added: Исключено выполнение пользовательского кода: генерация LUT возможна только через запись .cube или смешивание с идентичностью.
  • Fixed: Исправлена маркировка инструмента remove_lut_file на EXTERNAL_DESTRUCTIVE_TOOL для корректной обработки в гранулярном сервере.
v3.1.1patch
🕐 9 дн назад · релиз на GitHub ↗

Обновлён GitHub Actions workflow для корректной маркировки issue, созданных через чат-бота report_issue.

  • Added: Добавлен GitHub Actions workflow, который автоматически добавляет метки via-mcp, bug или enhancement к issue, созданным через report_issue.
  • Added: Workflow анализирует скрытый маркер filed-via и первый заголовок описания issue для определения типа метки.
  • Added: Добавлено 5 новых тестов для проверки логики работы скрипта workflow, общий тестовый набор полностью проходит.
  • Изменения затронули только инфраструктуру репозитория; поведение сервера и npm-пакета не изменилось.
v3.0.0majorbreaking
🕐 10 дн назад · релиз на GitHub ↗

Критическое обновление безопасности: удалено выполнение пользовательского кода, исправлены уязвимости записи плагинов.

  • Breaking: Удалены действия run_inline, execute и опция execute в probe_script_lifecycle, так как сервер больше не выполняет код от пользователя.
  • Fixed: Исправлена критическая уязвимость: операции установки и удаления плагинов теперь корректно классифицируются как запись, а не чтение.
  • Fixed: Исправлена ошибка, при которой режим dry-run для install/remove игнорировался и файлы удалялись или создавались реально.
  • Fixed: Проблемы жизненного цикла плагинов исправлены: проверки теперь проходят через защищенные методы, предотвращая несанкционированную запись на диск.
  • Added: Обновлены рейтинги рисков: install получил статус MEDIUM, remove — HIGH, добавлена поддержка override для опасных операций.
v2.224.2patch
🕐 10 дн назад · релиз на GitHub ↗

Исправлена ошибка импорта модулей на Windows, добавлена статическая проверка для предотвращения повторения бага.

  • Fixed: Исправлена ошибка `ERR_UNSUPPORTED_ESM_URL_SCHEME` в `timeline(action="author_offline")` на Windows из-за некорректной обработки путей в динамическом `import()`.
  • Added: Добавлена статическая проверка, запрещающая передачу нестроковых литералов или объектов `pathToFileURL` в динамические импорты скриптов.
  • Fixed: Исправление устраняет проблему, ранее возникавшую в лаунчере и исправленную в предыдущей версии, но повторившуюся в мосте авторизации.
v2.224.1patch
🕐 11 дн назад · релиз на GitHub ↗

Улучшена диагностика установки: добавлены понятные сообщения для сценария с одним канареечным скриптом, исправлена логика для DaVinci Resolve 21.1 и названа консоль вывода.

  • Fixed: Исправлено отсутствие инструкций при установке только канареечного скрипта: теперь пользователь получает четкое объяснение, что установка успешна и повторный запуск не требуется.
  • Fixed: Устранено ложное срабатывание при обнаружении дубликатов скриптов: инструкция теперь объясняет, что несколько записей в списке — это норма, и их количество соответствует установленным папкам.
  • Fixed: Добавлено упоминание консоли Workspace ▸ Console в инструкции, чтобы пользователи понимали, где видеть вывод скрипта, а не думали, что ничего не происходит.
  • Added: Разделена логика диагностики по редакциям DaVinci Resolve: для бесплатной версии 21.1 и новее указаны актуальные причины, отличные от старых советов для Studio и версий до 21.0.
v2.224.0minor
🕐 11 дн назад · релиз на GitHub ↗

Добавлена нативная поддержка шифрования DCTL для Resolve 21.1 с улучшенной безопасностью записи файлов.

  • Added: Появились команды dctl encrypt_native и encrypt_dctl_native для шифрования DCTL-файлов в родном формате Resolve 21.1.
  • Added: Реализована безопасная запись: файлы создаются в изолированной staging-зоне с проверкой на перетирание и защиту от ссылок.
  • Fixed: Исправлена обработка пустой строки срока действия (expiry) и предотвращено дублирование расширения .dctle.
  • Риск действия снижен до LOW, так как операция не перезаписывает существующие файлы, а только создает новые.
v2.223.0minor
🕐 11 дн назад · релиз на GitHub ↗

Добавлена нативная валидация DCTL через Resolve 21.1 с сохранением исходного кода и строгим контролем ошибок.

  • Added: Появились команды dctl validate_native и validate_dctl_native, использующие встроенную валидацию Resolve 21.1.
  • Added: Исходный код DCTL передается без изменений, а диагностика возвращается в точности как от нативного движка.
  • Fixed: Неожиданный тип результата валидации теперь вызывает ошибку, предотвращая ложное подтверждение корректности шейдера.
  • Added: Обеспечено побайтовое сохранение исходного текста (CRLF и Unicode) при передаче в Resolve.
  • Количество инструментов увеличено до 376; операция классифицирована как безопасная и не требующая правки.
v2.217.0minor
🕐 12 дн назад · релиз на GitHub ↗

Добавлены нативные мутации set_speed и set_fades для Resolve 21.1, классифицированные как деструктивные.

  • Added: Добавлены действия timeline_item set_speed и set_fades, использующие нативные функции Resolve 21.1.
  • Added: Реализована валидация параметров: некорректные опции отклоняются до записи, старые версии возвращают ошибку.
  • Fixed: Исправлена классификация рисков: новые действия теперь корректно распознаются как деструктивные записи.
  • Added: Обновлен реестр мутаций: действия добавлены рядом с set_retime и set_transform для работы в безопасном режиме.
v2.216.0minor
🕐 12 дн назад · релиз на GitHub ↗

Добавлено 12 новых read-only контролов для Resolve 21.1, включая управление скоростью клипов и аудио.

  • Added: Добавлены 12 новых read-only контролов для DaVinci Resolve 21.1, работающих в обоих режимах сервера.
  • Added: Реализованы составные действия и инструменты для работы с пресетами, настройками проекта, аудио-кодеками и режимами нормализации.
  • Added: Добавлена поддержка управления скоростью клипов, затуханиями, а также настройками вывода и флагами наследования.
  • Added: Количество гранулярных инструментов увеличено с 353 до 365, обновлены документация и правила агентов.
  • Fixed: Отложен запуск GetProjectLastModifiedTime из-за возврата None для существующих проектов.
v2.215.1patch
🕐 12 дн назад · релиз на GitHub ↗

Исправлен баг захвата кадров в режиме рендера по клипам и восстановлена стабильность работы с общей папкой статики.

  • Fixed: timeline_frame capture теперь принудительно переключает режим рендера на одиночный клип для корректной записи файлов и возвращает настройки обратно.
  • Fixed: Папка для статики (resolve-stills) теперь пересоздается перед каждым списком файлов, что устраняет ошибки при параллельном доступе.
  • Формат .drx сохраняет граф узлов клипа без потерь, но не включает групповые грады, входное масштабирование и ключевые кадры при grade_mode 0.