Skip to main content
Glama
2sem

davinci-resolve-lite-mcp

by 2sem

davinci-resolve-lite-mcp

test PyPI MCP Registry License: MIT Python 3.9+ Platform: macOS DaVinci Resolve: Lite | Studio 163 tools Zero dependencies

https://github.com/user-attachments/assets/8429932f-643b-4131-bb4d-dad0d3399137

По запросу на обычном языке Claude создаёт в DaVinci Resolve Lite начальный титр — золотой узел Text+ «GameHelper» со свечением и появлением с наездом камеры через ключевые кадры — через insert_fusion_title + style_fusion_title.

MCP-сервер, который позволяет ИИ-клиенту, такому как Claude Code, управлять DaVinci Resolve — включая бесплатную (Lite) редакцию, с которой не может работать существующий проект davinci-resolve-mcp.

Бесплатная редакция блокирует внешние скрипты, но по-прежнему выполняет Python-скрипты, запускаемые из её собственного меню Workspace > Scripts. Проект использует именно этот путь: MCP-сервер запускается внутри Resolve как скрипт меню и открывает доступ к Python API Resolve через небольшой локальный HTTP-endpoint, к которому подключается Claude.

Claude Code ──HTTP JSON-RPC (MCP)──▶  127.0.0.1:8765/mcp
                                          │   server runs INSIDE Resolve
                                          │   (Workspace > Scripts > Utility)
                                          ▼
                              command queue → main script thread
                                          ▼
                              global `resolve` object → Resolve API

Инструменты

Просите Claude на обычном языке — он управляет Resolve через инструменты (см. демо выше). Полная поверхность из 163 инструментов — монтаж, цветокоррекция, рендер, медиабиблиотека и стилизация титров Fusion — смотрите в справочнике инструментов.

Related MCP server: resolve-mcp

Почему это работает в бесплатной редакции

  • Бесплатный Resolve разрешает скрипты, запускаемые из его меню Scripts (ограничена только внешняя сетевая работа со скриптами).

  • Скрипт из меню получает объект resolve бесплатно и может исполнять долгоживущий цикл — достаточно долгий, чтобы разместить сервер.

  • Приложение Lite в песочнице поставляется с правом com.apple.security.network.server, поэтому оно может открыть прослушивающий сокет на localhost.

  • Ноль зависимостей — только стандартная библиотека Python. Не нужно ничего pip install в интерпретатор Resolve.

Требования

  • macOS с DaVinci Resolve (Lite/бесплатная версия или Studio).

  • Claude Code (или любой MCP-клиент, поддерживающий транспорт Streamable HTTP).

Установка

git clone https://github.com/2sem/davinci-resolve-lite-mcp.git
cd davinci-resolve-lite-mcp
./install.sh

Или через pip, если вы предпочитаете не клонировать репозиторий:

pip install davinci-resolve-lite-mcp
davinci-mcp-install

davinci-mcp-install делает ровно то же, что и install.sh (та же проверка Lite/Studio, та же логика копирования вместо симлинка) — просто читает файлы из вашего pip-установленного пакета, а не из git-чекаута. davinci-mcp-uninstall отменяет установку. В любом случае примечание о песочнице ниже остаётся в силе, и вы по-прежнему запускаете сервер из меню самого Resolve — см. Запуск.

Примечание о пользовательской установке на macOS. Если вы видите Defaulting to user installation because normal site-packages is not writeable, значит, pip установил консольные скрипты в $(python3 -m site --user-base)/bin, которого обычно нет в PATH. Запустите полную команду — "$(python3 -m site --user-base)/bin/davinci-mcp-install" — или добавьте этот каталог bin в PATH. И используйте &&, а не & между двумя командами: одиночный & отправляет pip install в фон, и davinci-mcp-install сработает раньше, чем появится пакет.

Сервер также указан в MCP Registry как io.github.2sem/davinci-resolve-lite-mcp (проверить) — только для обнаружимости. Запись содержит только метаданные (без записи packages/remotes для автоустановки): MCP-клиент не может поднять этот сервер так, как обычный сервер из реестра, поскольку он должен работать внутри собственного встроенного интерпретатора Python в Resolve и запускаться вручную из меню Scripts. Установите его одним из двух способов выше.

install.sh разворачивает:

  • два скрипта-лаунчера в Fusion/Scripts/Utility (папка, которую Resolve сканирует для меню Scripts; Utility доступна на каждой странице), и

  • пакет resolve_mcp в Fusion/Scripts/MCP — папку, которую Resolve не сканирует, поэтому вспомогательные модули остаются вне меню.

Путь к контейнеру Lite определяется автоматически.

Примечание о песочнице (важно). DaVinci Resolve Lite работает в песочнице и может читать только собственный контейнер, ~/Movies и файлы, которые вы выбираете интерактивно. Симлинк на точку за их пределами (например, на клон в ~/Projects) не может быть пройден приложением в песочнице, поэтому скрипт меню молча бы никогда не запустился. По этой причине install.sh копирует файлы в контейнер на Lite (и создаёт симлинки только для несандбоксной сборки Studio). Запустите ./install.sh повторно после обновлений.

Resolve перечисляет только категорийные папки (Utility / Comp / Tool / Edit / Color / Deliver) для своего меню Scripts — поэтому лаунчеры лежат в Utility, а пакет спрятан в MCP.

То же ограничение песочницы относится к файловым путям, которые вы просите инструменты использовать: экспорт/импорт должны направляться в ~/Movies (или другие предоставленные места), иначе Resolve не сможет их записать или прочитать.

Запуск

  1. В DaVinci Resolve: Workspace > Scripts > Utility > davinci_mcp_server.

    Меню Workspace > Scripts, показывающее davinci_mcp_server и stop_davinci_mcp_server

  2. Откройте Workspace > Console — оно печатает endpoint и порт:

    MCP endpoint:  http://127.0.0.1:8765/mcp
    Add to Claude Code:
      claude mcp add --transport http davinci http://127.0.0.1:8765/mcp

    Инструкция по старту печатается в консоль Resolve (Workspace > Console). Поскольку сервер работает постоянно, его вывод может буферизоваться до остановки, поэтому оба скрипта также дублируют каждую строку в файл журнала:

    ~/Movies/davinci-resolve-lite-mcp.log

    Наблюдайте за ними вживую с помощью ./logs.sh. (Переопределить каталог можно через DAVINCI_MCP_LOG_DIR.) Используется ~/Movies, потому что Lite-приложению в песочнице разрешено туда писать.

После запуска каждый вызов инструмента логируется в консоль одной строкой ([davinci-mcp] <name> <args> -> read|ok|error (Nms)):

Консоль Resolve со строками журнала davinci-mcp по каждой команде

Проверка обновлений. Подобно brew/CocoaPods, каждый запуск в фоне проверяет наличие новой версии на PyPI и при её существовании выводит однострочную подсказку в консоль. Старт никогда не блокируется, а любой сбой (офлайн, недоступный PyPI) остаётся бесшумным только в файле журнала. Отключить через DAVINCI_MCP_SKIP_UPDATE_CHECK=1.

  1. Зарегистрируйте его в Claude Code (однократно):

    claude mcp add --transport http davinci http://127.0.0.1:8765/mcp

    Затем проверяйте/переподключайте командой /mcp внутри Claude Code — она перечисляет подключённые серверы и переподключает их. Если Claude уже работал, когда вы запускали скрипт, введите /mcp (или перезапустите сессию), чтобы он увидел сервер davinci.

  2. Попросите Claude управлять Resolve.

Настройка порта (стабильная, рекомендуется)

По умолчанию сервер слушает порт 8765 и автоматически инкрементируется до 8766, 8767, … если порт занят (другой локальный инструмент может уже занимать 8765). Так как победитель этой гонки может меняться между запусками, зарегистрированный у Claude URL может уплывать, выглядеть как:

Failed to reconnect to davinci: HTTP 404 at http://127.0.0.1:8765/mcp

Чтобы зафиксировать порт надолго, положите небольшой JSON-файл настроек. Когда порт задаётся таким образом, он pinned — сервер связывается с именно этим портом и никогда не инкрементируется автоматически, поэтому вы регистрируете Claude один раз и URL больше никогда не меняется.

Создайте ~/Movies/davinci-resolve-lite-mcp.config.json:

{ "host": "127.0.0.1", "port": 8770 }

Почему ~/Movies, а не ~/.config? Приложение Lite живёт в песочнице и может читать только собственный диспетчер, ~/Movies и выбранные интерактивно файлы — ~/.config снаружи песочницы, поэтому Lite его не читает (по той же причине лог лежит в ~/Movies). Сервер также проверяет ~/.config/davinci-resolve-lite-mcp/config.json для несансбокной Studio-сборки, где этот путь привычен.

Затем перезапустите сервер (Scripts > Utility > stop_davinci_mcp_server, затем davinci_mcp_server) и один раз зарегистрируйте Claude на зафиксированном порту:

claude mcp add --transport http davinci http://127.0.0.1:8770/mcp

Баннер в консоли подтвердит источник — ищите Port : pinned (from …) — will not increment.

Порядок приоритета (высший приорат к нижнему): переменные окружения DAVINCI_MCP_PORT / DAVINCI_MCP_HOST, затем файл с конфигурацией, затем встроенные умолчания. Переменные окружения также пинют порт, но Resolve, запущенный из Dock, не увидит export в оболочке; файл конфигурации — самый простой постоянный вариант. C помощью DAVINCI_MCP_CONFIG=/path/to.json можно исключительно навязать конкретный файл конфигурации — если пути нет или файл повреждён, сервер переходит к встроенным умолчаниям, а не к ~/Movies / XDG.

Если порт уже уплыл и Claude указывает не на тот, перенаправьте его:

claude mcp remove davinci
claude mcp add --transport http davinci http://127.0.0.1:<actual-port>/mcp

Остановка

Любое из этого остановливает сервер:

  • Из меню: Workspace > Scripts > Utility > oстановка_davinci_mcp_server

  • Из терминала: ./stop.sh

  • Выйти из DaVinci Resolve

Скрипт остановки в меню и stop.sh оба делают POST на endpoint /shutdown сервера, сканируя тот же диапазон портов, который сервер использует при запуске.

Порт инкрементится от 8765 только when не зафиксирован. Чтобы его прижать и URL никогда не менялся между запусками, см. Настройка порта.

Инструменты

163 инструментов, покрывающих весь конвейер:

  • Статус и навигация — переключение страниц, настройки проекта/таймлайна

  • Проекты и таймлайны — загрузка/создание/дублирование, маркеры, склейки сцен, управление жизненным циклом

  • Треки — добавить/удалить, включить/заблокировать/переименовать

  • Монтаж — разместить/добавить в конец/удалить клипы, титры и генераторы, трансформация/кадрирование/зум

  • Медиапул и хранилище — импорт/удаление, свойства и метаданные, геи, обзор диска

  • Цвет — нод-граф, LUT-включение, сброс коррекций, стиллы

  • Рендер и экспорт — очаг рендера, форматы/кодеки, экспорт/импорт кадра/таймлайна/проекта

Полный справочник по каждому инструменту: docs/TOOLS.md.

Каждый вызов инструмента записывается в консоль и в файл журнала одной строкой: [davinci-mcp] <name> <args> -> ok|error|EXCEPTION (Nms).

Структура проекта

src/davinci_mcp_server.py        thin launcher (deployed to Scripts/Utility)
src/stop_davinci_mcp_server.py   stop launcher
src/resolve_mcp/                 the server package (deployed to Scripts/MCP, hidden)
    config · logio · connection · bridge · tools · server
tests/test_server.py             offline tests (fake Resolve, no app needed)
install.sh · uninstall.sh · stop.sh · logs.sh
docs/TOOLS.md                    full per-tool reference
fallbacks/                       documented gotchas + fixes

Тестирование

  • Офлайн (без Resolve и сервера) — импорт + диспетчер + дымовая проверка количества инструментов:

    python3 tests/test_server.py
  • Живая интеграция — один тест на каждый инструмент против запущенного сервера (Resolve открыт с проектом + медиа-клип, и через ней кода запущен davinci_mcp_server):

    python3 tests/live_test.py                 # all features
    python3 tests/live_test.py set_timecode    # run the test(s) for given feature(s)

    Каждый тест назван по имени инструмента, поэтому при изменении инструмента можете запустить только его тест: python3 tests/live_test.py <tool>. Тесты реверсивны (черновой таймлайн + временные файлы, после — очистка). Инструменты, зависимые от файлов и компактные для сеанса, проверяются через их путь к ошибке; только Studio / тяжёлые инструменты (например, detect_scene_cuts, render_current_timeline, quick_export) пропускаются с причиной. Несколько тестов на маркеры/стиллы зависят от чистого состояния сессии Resolve — при флейка перезапустите свежую сессию и прогоните их снова.

Участие в разработк

Что нам нужно, чтобы добавить инструмент, запустить набор тестов, потребности stdlib-only / Lite-first и как выпускается — в CONTRIBUTING.md.

Scope

Этот сервер нацелен на бесплатную (Lite) редакцию и намеренно охватывает только тот API, который там работает. Возможности Studio-only / платные намеренно исключены (на Lite они работают впустую или дают ошибку), а именно: аудио-транскрипция, субтитры-из-аудио, Magic Mask, Stabilize, Smart Reframe, анализ Dolby Vision, выделение голоса, облачные проекты и управление базами данных. Оставшиеся не-завёрнутые методы — тривиальные аксессоры (GetUniqueId, режимы кэша, внутренности Fusion-компа, takes, стерео/3D, пресеты layout и burn-in, мазков) — не обязательно пробелы, а just тритеральные.

Известные ограничения

  • Клипы можно адресовать по имени (в текущей папке медиа-пула) или по id (id/ids, разрешаются в любом бине) — передавайте id/ids, когда имена неоднозначны или клип находится в другой папке.

  • Аргументы инструментов проверяются по JSON Schema каждого инструмента (обязательные поля, базовые типы и перечисления); некорректный вызов возвращает понятную ошибку с указанием неправильного аргумента. Глубокие/вложенные ограничения схемы детально не проверяются.

Примечание о безопасности

Сервер привязан только к 127.0.0.1, поэтому он доступен только с вашей машины. Он открывает доступ к управлению DaVinci Resolve любому локальному процессу, который может получить доступ к порту, — запускайте его только на машине, которой вы доверяете.

Единственный исходящий запрос, который сервер делает сам, — это проверка обновления при запуске (GET к публичному JSON API PyPI для получения номера текущей версии — никакие другие данные не отправляются). Отключить её можно задав DAVINCI_MCP_SKIP_UPDATE_CHECK=1, если вы предпочитаете, чтобы её не было.

Лицензия

MIT — см. LICENSE.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
1dResponse time
4dRelease cycle
20Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.

  • A real timeline video editor for AI agents: journaled edits, FFmpeg/MLT rendering, exports

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

View all MCP Connectors

Latest Blog Posts

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/2sem/davinci-resolve-lite-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server