three.ws Blender — MCP-сервер для Claude Code: рендер и конвертация 3D
Даёт агенту локальный Blender без GUI: посмотреть 3D-файл, сконвертировать формат, отрендерить превью и выполнить bpy-скрипт.
claude mcp add --env BLENDER_PATH=<BLENDER_PATH> --env BLENDER_MCP_TIMEOUT_MS=<BLENDER_MCP_TIMEOUT_MS> --env BLENDER_MCP_WORKDIR=<BLENDER_MCP_WORKDIR> --env BLENDER_MCP_ALLOW_PYTHON=<BLENDER_MCP_ALLOW_PYTHON> --env BLENDER_MCP_INLINE_IMAGE_BYTES=<BLENDER_MCP_INLINE_IMAGE_BYTES> --transport stdio blender-mcp -- npx -y @three-ws/blender-mcpЧто делает three.ws Blender
Сервер поднимает настоящий Blender в фоновом режиме (blender -b) на каждый вызов и общается с ассистентом по stdio. Ни окна, ни аддона внутри Blender ставить не нужно, поэтому схема работает на сервере, в CI и в контейнере без дисплея. Каждый инструмент управляет тем Blender, что уже стоит на машине.
Внутри семь инструментов. blender_scene_info описывает сцену: объекты, треугольники, материалы, текстуры, кости и анимации. blender_convert меняет один формат на другой по расширениям файлов, blender_optimize урезает треугольники и текстуры с отчётом до и после, blender_render отдаёт PNG прямо в ответ и сам добавляет камеру со светом, если их нет. blender_run_python запускает bpy-скрипт, blender_forge_import генерирует модель по тексту или картинке, blender_info показывает, что умеет ваша сборка. Сжатые glTF с meshopt и Draco распаковываются на лету — без внешнего бинарника.
Нужны Node.js 20+ и Blender 3.0 или новее. Если исполняемый файл не в PATH, задайте BLENDER_PATH, иначе сервер не найдёт Blender. Список форматов зависит от сборки: у части дистрибутивов нет USD, Collada или Alembic, и blender_info покажет реальный набор. Рендер держите в запасе под таймаут.
Какие задачи решает
- посмотреть содержимое FBX или GLB перед работой
- перегнать клиентский FBX в веб-GLB с нужным масштабом
- урезать треугольники и текстуры под мобильный бюджет
- получить картинку модели прямо в ответе агента
- прогнать
bpy-скрипт на сцене и сразу выгрузить результат
Примеры запросов агенту
- Покажи, что лежит в
~/assets/character.fbx: объекты, треугольники, кости и анимации. - Сконвертируй
character.fbxвcharacter.glbс масштабом 0.01 и отрендери превью с четырёх сторон. - Сгенерируй по промпту «потёртый латунный водолазный шлем» и сохрани в
helmet.blend.
Как установить three.ws Blender
Командой платформы
claude mcp add --env BLENDER_PATH=<BLENDER_PATH> --env BLENDER_MCP_TIMEOUT_MS=<BLENDER_MCP_TIMEOUT_MS> --env BLENDER_MCP_WORKDIR=<BLENDER_MCP_WORKDIR> --env BLENDER_MCP_ALLOW_PYTHON=<BLENDER_MCP_ALLOW_PYTHON> --env BLENDER_MCP_INLINE_IMAGE_BYTES=<BLENDER_MCP_INLINE_IMAGE_BYTES> --transport stdio blender-mcp -- npx -y @three-ws/blender-mcpВместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Командой платформы
codex mcp add blender-mcp --env BLENDER_PATH=<BLENDER_PATH> --env BLENDER_MCP_TIMEOUT_MS=<BLENDER_MCP_TIMEOUT_MS> --env BLENDER_MCP_WORKDIR=<BLENDER_MCP_WORKDIR> --env BLENDER_MCP_ALLOW_PYTHON=<BLENDER_MCP_ALLOW_PYTHON> --env BLENDER_MCP_INLINE_IMAGE_BYTES=<BLENDER_MCP_INLINE_IMAGE_BYTES> -- npx -y @three-ws/blender-mcpВместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Файл настроек
{
"mcpServers": {
"blender-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/blender-mcp"
],
"env": {
"BLENDER_PATH": "<BLENDER_PATH>",
"BLENDER_MCP_TIMEOUT_MS": "<BLENDER_MCP_TIMEOUT_MS>",
"BLENDER_MCP_WORKDIR": "<BLENDER_MCP_WORKDIR>",
"BLENDER_MCP_ALLOW_PYTHON": "<BLENDER_MCP_ALLOW_PYTHON>",
"BLENDER_MCP_INLINE_IMAGE_BYTES": "<BLENDER_MCP_INLINE_IMAGE_BYTES>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Файл настроек
{
"servers": {
"blender-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/blender-mcp"
],
"env": {
"BLENDER_PATH": "<BLENDER_PATH>",
"BLENDER_MCP_TIMEOUT_MS": "<BLENDER_MCP_TIMEOUT_MS>",
"BLENDER_MCP_WORKDIR": "<BLENDER_MCP_WORKDIR>",
"BLENDER_MCP_ALLOW_PYTHON": "<BLENDER_MCP_ALLOW_PYTHON>",
"BLENDER_MCP_INLINE_IMAGE_BYTES": "<BLENDER_MCP_INLINE_IMAGE_BYTES>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Командой платформы
gemini mcp add -e BLENDER_PATH=<BLENDER_PATH> -e BLENDER_MCP_TIMEOUT_MS=<BLENDER_MCP_TIMEOUT_MS> -e BLENDER_MCP_WORKDIR=<BLENDER_MCP_WORKDIR> -e BLENDER_MCP_ALLOW_PYTHON=<BLENDER_MCP_ALLOW_PYTHON> -e BLENDER_MCP_INLINE_IMAGE_BYTES=<BLENDER_MCP_INLINE_IMAGE_BYTES> blender-mcp npx -y @three-ws/blender-mcpВместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о three.ws Blender
Как установить three.ws Blender в Claude Code?
Одной командой: claude mcp add blender-mcp -e THREE_WS_FORGE_PROVIDER_KEY=<THREE_WS_FORGE_PROVIDER_KEY> -- npx -y @three-ws/blender-mcp. Если Blender не в PATH, второй вариант добавляет через --env переменные BLENDER_PATH, BLENDER_MCP_TIMEOUT_MS, BLENDER_MCP_WORKDIR, BLENDER_MCP_ALLOW_PYTHON и BLENDER_MCP_INLINE_IMAGE_BYTES с транспортом stdio.
Что делает three.ws Blender?
Открывает локальный Blender для ИИ-ассистента: просмотр сцены, конвертация между GLB, glTF, FBX, OBJ, STL, PLY, Collada, Alembic, USD и .blend, оптимизация, рендер PNG в ответ и запуск bpy-скриптов.
Почему сжатые glTF открываются нормально?
Файлы с meshopt или Draco распаковываются внутри процесса до открытия в Blender. Импортёр Blender сам не читает EXT_meshopt_compression, так что без этого шага конвертация упала бы.