Blender MCP
официальныйЛегковесный MCP-сервер для Blender. Предоставляет интерфейс на естественном языке для работы с Python API Blender, улучшает доступ к документации и позволяет пользователям изучать и понимать сложные настройки.
Что можно делать с Blender MCP?
- Анализ производительности сцены — Попросите вашего ИИ проанализировать открытую сцену Blender и определить объекты с высоким количеством полигонов относительно их размера на экране, как в примере с обнаружением выбросов в классе.
- Переименование дата-блоков — Помощник исправит опечатки или предложит описательные имена для всех дата-блоков в текущем файле, применяя изменения только после вашего одобрения.
- Запросы к сцене на естественном языке — Задавайте вопросы о взаимосвязях объектов, например: «Какие объекты используют материал 'pebbles'?» или определите объект с самым высоким количеством полигонов в сцене.
- Документация по Geometry Nodes — Запросите объяснение основной настройки геометрических узлов, с встроенной документацией во фреймах и текстовым дата-блоком, резюмирующим анализ.
- Отладка сцены — Получите помощь в устранении таких проблем, как меши с неравномерным масштабом, неправильные нормали или объекты, которые неправильно деформируются с арматурами.
Документация
Легковесный MCP-сервер (Model Context Protocol) для Blender. Он предоставляет интерфейс на естественном языке для Python API Blender, улучшая доступ к документации и позволяя пользователям исследовать и понимать сложные настройки.
Технические детали и документацию по архитектуре смотрите в исходном коде.
[!warning] Предупреждение Предупреждение о безопасности
MCP-сервер будет выполнять сгенерированный LLM код в Blender без каких-либо защитных механизмов, предохраняющих ваши данные от удаления или отправки в удаленное расположение. Чтобы сохранить ваши данные в безопасности, рекомендуется использовать виртуальную машину или систему без доступа к конфиденциальной информации.
Установка
В Blender нет встроенной функциональности для подключения к LLM.
Чтобы Blender мог подключаться к LLM, необходимо вручную загрузить, установить и запустить три внешних инструмента.
Аддон
Для взаимодействия с вашим сеансом Blender необходимо установить специальный аддон для интеграции MCP-сервера.
…или скачайте и установите с диска
Если вы перетаскиваете файл в Blender, вам нужно сделать это дважды. Сначала для добавления репозитория Blender Lab, затем для установки самого аддона. Этот метод позволяет получать уведомления об обновлениях при появлении новой версии аддона.
LLM-клиент
MCP-серверы следуют четко определенному стандарту и совместимы с множеством клиентов. Следуйте документации LLama.cpp или установите LLM-клиент по вашему выбору.
MCP-сервер
Существуют разные способы установки MCP-сервера в зависимости от возможностей вашего LLM-клиента.
- MCP Bundle: Для новых клиентов, поддерживающих файлы
.mcpb, скачайте последний пакет со страницы релизов. Llama.cpp пока не поддерживает это. - MCP Server: Для установки из исходного кода ознакомьтесь с документацией Llama.cpp или инструкциями по настройке.
Запуск
После того как вы настроили MCP-сервер в вашем LLM-клиенте, вы можете начать исследовать свои сцены Blender.

Веб-интерфейс llama.cpp, запускающий blender-mcp сервер.
Пример 1: Анализ сцены
MCP можно использовать для программного анализа сцены на предмет узких мест производительности. Возьмем, например, демонстрационный файл Classroom:

Демонстрационный файл Classroom.
Эта сцена — один из файлов бенчмарка Blender. Причина, по которой эти файлы включены в бенчмарк, в том, что они хорошо представляют реальные производственные файлы, созданные художниками. И неудивительно, что в них могут содержаться объекты, которые можно оптимизировать.
Хотя проверки количества полигонов часто бывает достаточно, еще интереснее построить график количества полигонов в зависимости от того, насколько крупно они отображаются в финальном рендере. Это можно получить с помощью следующего запроса.
Analyze the scene and list the outliers: objects with highest polygon count but smaller size from the camera point of view.
Построенные данные четко показывают два объекта, которые выделяются на фоне остальных: alphabet и coat 1:

Графический анализ количества полигонов на площадь экрана для демонстрационной сцены Classroom.
Объект alphabet имеет 20 тысяч полигонов. Из-за его плоского расположения его можно заменить текстурой с минимальным ущербом для конечного результата. Объект coat 1 имеет 37 тысяч полигонов из-за модификатора Subsurf. Снижение уровня подразделения могло бы облегчить сцену, если бы память была узким местом вашей системы.

Алфавит находится в задней части сцены и его легко можно заменить текстурой. Пальто также находится достаточно далеко, чтобы его сетку можно было упростить.
[!info] Информация Насколько надежны эти результаты?
Первоначальный анализ, возвращенный LLM, учитывал только модификаторы, влияющие на вьюпорт. У объекта
coat 1есть модификатор Solidify, который удваивает количество его полигонов, делая его еще более заметным выбросом. И хотя в этой сцене Simplify не был включен, эти настройки также повлияли бы на окончательный анализ.
Пример 2: Различные запросы
Вот некоторые другие протестированные варианты использования. Вам нужно вставить весь «Prompt» для их работы. В качестве отправной точки следует использовать соответствующий демонстрационный файл. Успех операции будет зависеть от используемой модели.
| Вариант использования | Prompt | Демонстрационный файл | Результат |
|---|---|---|---|
| Переименование блоков данных: исправление опечаток | With the current open Blender file fix the name of all the data-blocks to remove typos. Report back which data-blocks got fixed. | Scattering Pebbles | GRP-rocks → GRP-pebble, LGT-Lights → LGT-lights, Compositing Nodetree → Compositing Node Tree |
| Переименование блоков данных: лучшие имена | With the current open Blender file suggest descriptive names for all data-blocks, and apply if approved. | Scattering Pebbles | Camera → CAM-main, Area → LGT-sun-key, Area.001 → LGT-sun-fill, Area.002 → LGT-area-rim, GEO-pebble.001 → GEO-pebble-B, … |
| Запрос связей данных на естественном языке | Which objects are using the following material: pebbles | Scattering Pebbles | 7 объектов: GEO-pebble, GEO-pebble.001, GEO-pebble.002, GEO-pebble.003, GEO-pebble.004, GEO-pebble.005, GEO-pebble.006 |
| Отладка сцены | What is the object with the highest poly-count on this file? Ignore objects which are not linked to any scene. | Scattering Pebbles | GEO-ground с 4 096 гранями. |
| Документация Geometry Nodes | With the current open Blender file explain what the main geometry nodes setup is doing. Add inline documentation for it with frame elements. Create a Text data-block with the result of analysis. | Scattering Pebbles | 4 основных цветовых рамки + текстовый файл с пояснениями. |
Другие запросы, которые еще предстоит изучить:
- Перевести все блоки данных с французского на английский.
- Моя сетка не деформируется арматурой, как это исправить?
- Blender не хватает памяти при рендере этой сцены, как ее оптимизировать?
- У этой сетки странные артефакты затенения, как это исправить?
- Найти объекты с сетками, имеющими неправильные нормали.
- Проверить сцену на объекты с неравномерным масштабированием.
- Экспортированное видео не воспроизводится в моих браузерах, какие настройки следует изменить?
- Какие кисти для скульптинга использовать для создания и детализации ветвей деревьев?
- Настроить композитинг-ноды для сохранения изображения в форматах SDR и HDR.
- Проверить этот чек-лист: сетки должны быть замкнутыми, все объекты должны иметь материалы, имена должны соответствовать соглашению, никаких абсолютных путей, … Переименование блоков данных: исправление опечаток
GRP-rocks → GRP-pebbles (сцена содержит только объекты-гальку, а не камни).
LGT-Lights → LGT-lights (непоследовательный регистр).
Compositing Nodetree → Compositing Node Tree (Nodetree — ошибка сложного слова).
Переименование блоков данных: лучшие имена
Объекты:
Camera→CAM-mainArea→LGT-sun-keyArea.001→LGT-sun-fillArea.002→LGT-area-rimGEO-pebble.001→GEO-pebble-BGEO-pebble.002→GEO-pebble-CGEO-pebble.003→GEO-pebble-DGEO-pebble.004→GEO-pebble-EGEO-pebble.005→GEO-pebble-FGEO-pebble.006→GEO-pebble-G
Блоки данных света:
Area→LGT-sun-keyArea.001→LGT-sun-fillArea.002→LGT-area-rim
Блок данных камеры:
Camera→CAM-main
Текстуры:
Texture→TEX-ground-cloudsTexture.001→TEX-ground-image
Сцена и мир:
World→WLD-environmentScene→SCN-mainДокументация Geometry Nodes
Созданные новые рамки:

Рамки документации, добавленные в настройку geometry nodes.
Текстовый блок данных:
GEOMETRY NODES ANALYSIS -- "Pebble Scattering Nodes"
Applied to object: GEO-ground | Modifier: Pebbles
========================================================
OVERVIEW
--------
This node group scatters three size categories of pebble meshes across
the faces of a ground mesh. Each category uses its own density mask
and a global Factor multiplier so that coverage can be art-directed
per-layer without touching the raw mask textures. The three resulting
instance layers are merged with the original ground geometry and sent
to the Group Output.
INPUTS (Group Interface)
------------------------
Geometry -- The ground mesh to scatter pebbles on.
Large Pebbles Mask -- Float mask (e.g. vertex colour / texture) that
defines WHERE large pebbles may appear.
Medium Pebbles Mask-- Float mask for medium pebble placement regions.
Small Pebbles Mask -- Float mask for small pebble placement regions.
Factor -- Global density multiplier shared by all three
lanes (appears three times in the interface,
one per lane).
NODE GRAPH -- LANE BY LANE
--------------------------
+- LARGE PEBBLES LANE -----------------------------------------------------+
| Source object : GEO-pebble |
| Group Input.001 |
| +- Geometry ------------------------> Distribute Points on Faces |
| +- Large Pebbles Mask ------------> Distribute Points on Faces |
| | (Density Factor socket) |
| +- Factor --> Math.003 (x) -------> Distribute Points on Faces |
| (Density Max socket) |
| Distribute Points on Faces ----------> Instance on Points |
| Object Info (GEO-pebble) -----------> Instance on Points (Instance) |
| Random Rotation.001 [-pi, +pi] -----> Instance on Points (Rotation) |
| Random Value [0.25 - 0.60] -------> Instance on Points (Scale) |
| Instance on Points ------------------> Join Geometry.003 |
+--------------------------------------------------------------------------+
+- MEDIUM PEBBLES LANE ----------------------------------------------------+
| Source object : GEO-pebble.004 |
| Group Input.002 |
| +- Geometry ------------------------> Distribute Points on Faces.001 |
| +- Medium Pebbles Mask -----------> Math.004 (x) --> Math.005 (x) |
| +- Factor ------------------------> Math.005 (x) |
| Math.005 output --------------> Distribute Points on Faces.001 |
| (Density socket) |
| Distribute Points on Faces.001 -----> Instance on Points.001 |
| Object Info.001 (GEO-pebble.004) --> Instance on Points.001 |
| Random Rotation.002 [-pi, +pi] ----> Instance on Points.001 |
| Random Value.002 [0.25 - 0.45] -----> Instance on Points.001 |
| Instance on Points.001 -------------> Join Geometry.003 |
+--------------------------------------------------------------------------+
+- SMALL PEBBLES LANE -----------------------------------------------------+
| Source object : GEO-pebble.002 |
| Group Input.003 |
| +- Geometry ------------------------> Distribute Points on Faces.002 |
| +- Small Pebbles Mask -----------> Math.006 (x) --> Math.007 (x) |
| +- Factor ------------------------> Math.006 (x) |
| Math.007 output --------------> Distribute Points on Faces.002 |
| (Density socket) |
| Distribute Points on Faces.002 -----> Instance on Points.002 |
| Object Info.002 (GEO-pebble.002) --> Instance on Points.002 |
| Random Rotation [-pi, +pi] ----> Instance on Points.002 |
| Random Value.003 [0.10 - 0.35] -----> Instance on Points.002 |
| Instance on Points.002 -------------> Join Geometry.003 |
+--------------------------------------------------------------------------+
+- MERGE & OUTPUT ---------------------------------------------------------+
| Group Input.004 |
| +- Geometry (pass-through) --------> Join Geometry.003 |
| Join Geometry.003 |
| (inputs: large instances + medium instances + |
| small instances + original ground geo) |
| +- Geometry -----------------------> Group Output |
+--------------------------------------------------------------------------+
SCALE RANGES (uniform, per lane)
---------------------------------
Large pebbles : 0.25 - 0.60
Medium pebbles : 0.25 - 0.45
Small pebbles : 0.10 - 0.35
ROTATION (all lanes)
---------------------
All three axes randomised independently over [-pi, +pi],
giving each pebble instance a fully random orientation.
DENSITY CONTROL PATTERN (Medium & Small lanes)
-----------------------------------------------
The mask value and the Factor are first multiplied together
(Math.004 / Math.006), then that product is multiplied again
by a second value (Math.005 / Math.007) before being fed into
the Density socket. This two-stage multiply gives a non-linear
response curve, making the density fall off more aggressively
near the mask edges.
The Large lane uses a different (single-stage) approach:
the Density Factor socket receives the mask directly, and the
Factor is only used to scale Density Max via Math.003.
NOTES & SUGGESTIONS
--------------------
* The node group has no Seed input exposed; adding one would allow
re-randomising all three layers simultaneously without touching
individual nodes.
* The Factor input currently appears three times (once per lane).
Merging them into a single shared socket would simplify the
modifier panel.
* Consider labelling the unlabelled Math nodes (Math.003-.007)
and Random Value nodes to aid future maintenance.