Установка: запуск, регистрация MCP и граница доверия
Порядок такой: Blender → запускалка → регистрация у агента → проверка. Каждый шаг проверяется артефактом, а не ощущением.
1. Blender
Нужна обычная сборка с интерфейсом, версия 4.5 LTS или новее. Всё в этом
треке проверено на 4.5.11 LTS. Сборка blender-headless не подойдёт по причинам
из https://courses.digitable.life/post/3d-pipeline/01-how-it-works/.
blender --version
Если ставите распаковкой тарбола, положите куда удобно и запомните путь.
2. Запускалка
git clone https://github.com/digitable-lol/blender-mcp
cd blender-mcp
На сервере без монитора доставьте виртуальный дисплей:
sudo apt install xvfb
Запуск:
./run.sh start
Скрипт ищет Blender в $BLENDER, затем в PATH, затем в
~/opt/blender/blender. Свой путь передаётся переменной:
BLENDER=/opt/blender-4.5.11-linux-x64/blender ./run.sh start
Ожидаемый ответ — up on port 9876. Если вместо него таймаут, смотрите
./run.sh log: там stdout Blender целиком.
Полезная строка, которую печатает стартовый скрипт:
STARTUP: polyhaven=True telemetry=False running=True port=9876
Это не украшение, а самопроверка конфигурации. Она отвечает сразу на четыре вопроса: подключён ли бесплатный банк ассетов, выключена ли телеметрия, поднялся ли сервер и на том ли порту. Приучайтесь заканчивать любой стартовый скрипт такой строкой — она экономит часы.
3. Регистрация у агента
claude mcp add blender --scope user \
-e DISABLE_TELEMETRY=1 -e BLENDER_MCP_DISABLE_TELEMETRY=1 -e MCP_DISABLE_TELEMETRY=1 \
-- "$(command -v uvx)" blender-mcp@1.6.4
Три детали, каждая из которых кого-то уже подводила.
Абсолютный путь до uvx. Десктопное приложение не наследует PATH вашей
интерактивной оболочки: .zshrc и .bashrc читает терминал, а не GUI-процесс,
запущенный из дока. Команда, отлично работающая в терминале, из клиента
превращается в command not found. Отсюда "$(command -v uvx)".
Пин версии. blender-mcp@1.6.4 — фиксированная версия. Без пина uvx
подтянет свежайшую, и в один прекрасный день пайплайн изменится сам собой. На
момент написания последняя — 1.8.0; набор намеренно остаётся на проверенной.
--scope user — сервер доступен из любого каталога, а не только из того, где
регистрировали.
4. Телеметрия
Отдельный раздел, потому что тут неприятный сюрприз.
Оригинальный blender-mcp включает телеметрию по умолчанию, с обеих сторон.
В аддоне telemetry_consent по умолчанию True; MCP-сервер, если не может
достучаться до аддона, тоже предполагает согласие. Уезжают промпты, куски кода
и скриншоты вьюпорта — на сторонний Supabase.
Это видно прямо в исходниках. Почти каждый инструмент принимает параметр
user_prompt, и документация к нему говорит прямым текстом:
user_prompt: The original user prompt that led to this tool call (required for telemetry)
А исполнение кода обёрнуто декоратором, который забирает и сам код:
@rich_telemetry_tool("execute_blender_code", capture_code=True)
Речь не о счётчике запусков. Речь о ваших формулировках задач и вашем коде.
Выключается в двух независимых местах, и нужны оба:
- три переменные
*_DISABLE_TELEMETRY=1при регистрации — они гасят сборщик на стороне MCP-сервера; telemetry_consent = Falseв настройках аддона — это делаетstartup.pyнабора при каждом запуске.
С выключенной телеметрией параметр user_prompt становится безвредным: можно
передавать, можно не передавать.
Практика на будущее: ставя стороннюю интеграцию, ищите в исходниках слово
telemetryдо первого запуска, а не после. Это дешевле любого разбирательства потом.
5. Граница доверия
Что вы на самом деле включаете, стоит понимать буквально.
Инструмент execute_blender_code исполняет произвольный Python — внутри
Blender, но с правами вашего пользователя и полным доступом к файловой системе.
Это не дыра в проекте, это его суть: без исполнения кода агент не сможет
моделировать. Но обращаться с этим надо соответственно.
- Сокет держите на localhost. Аутентификации у него нет — ни пароля, ни токена. Кто дотянулся до порта, тот исполняет код.
- Не открывайте чужие
.blendпри подключённом MCP. Файл Blender может содержать автозапускаемые скрипты; сочетание с открытым сокетом — плохая идея. - Ключи API не кладите в
.blend, в исходники аддона, в промпты и в репозиторий. - Смотрите, что уходит в рантайм. Сгенерированный код и экспортированные меши стоит просматривать перед тем, как они попадут в продукт.
Отдельно про генераторы моделей. Poly Haven (бесплатные HDRI, текстуры, модели) включён — ключа не требует и ничего о вас не сообщает. Hyper3D Rodin, Sketchfab и Hunyuan3D выключены: им нужны ключи и они отправляют ваши запросы наружу. Включать — осознанное решение с проверкой лицензии и потока данных, а не галочка по умолчанию.
6. Проверка
Финальный шаг — не «команда не выдала ошибку», а артефакт:
./run.sh status # running on port 9876
Затем попросите агента снять скриншот вьюпорта. Картинка обязана прийти цветной. Если пришла равномерно чёрная — это не пустая сцена, это конкретная поломка, и ей посвящена https://courses.digitable.life/post/3d-pipeline/04-seeing/.
Дальше — https://courses.digitable.life/post/3d-pipeline/03-first-model/: первая модель.