Skip to main content
Glama

Blender MCP — мост Streamable-HTTP для Blender 5.2 LTS

Мост Model Context Protocol, который позволяет любому MCP-клиенту (Antigravity, Cursor, Claude Desktop, VS Code 1.101+, MiniMax Code, Windsurf, Continue, Cline, OpenCode, Codex, MCP Inspector, …) управлять Blender 5.2 LTS с помощью естественного языка.

Аддон запускает MCP Streamable-HTTP сервер внутри Blender в фоновом потоке. Клиенту достаточно указать на него — не порождается подпроцесс, не нужно следить за парой сокетов.


Почему такая форма

  • Единый путь установки внутри Blender. MCP-сервер работает в процессе, используя bpy, поэтому нет танцев с uvx/pipx и нет пары сокетов, которую нужно синхронизировать.

  • Streamable HTTP на localhost. Работает с любым современным MCP-клиентом.

  • Самодельный MCP-сервер в аддоне. Blender 5.2 LTS поставляется с Python 3.13 без внешних пакетов по умолчанию. MCP-сервер на ~300 строк более переносим, чем тащить mcp[cli] и редактировать sys.path.

  • Не зависит от клиента. Нет проприетарного формата плагинов. Работает любой MCP-клиент, который может обращаться к HTTP-эндпоинту (или stdio-прокси, который это делает).


Related MCP server: blender-mcp

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

blender_addon_mcp/
├── README.md                      ← you are here
├── LICENSE                        ← MIT
├── pyproject.toml                 ← dev tooling for the add-on (ruff, mypy, pytest)
├── .gitignore
├── addon/
│   └── blender_mcp_addon/         ← zips into a Blender-installable .zip
│       ├── __init__.py            ← bl_info, register/unregister, preferences
│       ├── server/
│       │   ├── __init__.py
│       │   ├── mcp_server.py      ← MCP protocol (initialize, tools/list, tools/call, ping)
│       │   ├── transport.py       ← stdlib http.server, runs on a daemon thread
│       │   └── protocol.py        ← JSON-RPC 2.0 + MCP 2025-03-26 types
│       ├── tools/
│       │   ├── __init__.py        ← tool registry
│       │   ├── scene.py           ← scene_info, frame control
│       │   ├── objects.py         ← list, get, create, delete, transform
│       │   ├── materials.py       ← create, assign, modify
│       │   ├── modifiers.py       ← add, set params, remove
│       │   ├── render.py          ← render_image, screenshot_viewport
│       │   └── code.py            ← execute_python (with confirmation)
│       └── utils/
│           ├── __init__.py
│           ├── bpy_helpers.py     ← bpy → JSON serialization
│           └── safe_eval.py       ← ast-validated code execution
├── scripts/
│   ├── install_addon.ps1          ← zip and install into Blender
│   ├── blender_mcp_proxy.js       ← optional stdio/socket ↔ HTTP bridge for
│   │                                Antigravity builds that don't accept `url`
│   └── start_blender_mcp_bridge.ps1  ← start/stop/status lifecycle for the bridge
├── examples/
│   ├── mcp-configs.md             ← copy-paste configs for every major MCP client
│   ├── basic_scene.md
│   ├── material_setup.md
│   └── render_workflow.md
└── docs/
    ├── architecture.md
    ├── blender_5_2_notes.md
    └── tools_reference.md

Быстрый старт

1. Установите аддон

# clone
git clone https://github.com/tattooinmtl/Blender_MCP.git
cd Blender_MCP

# install the add-on into every Blender version on this machine
pwsh ./scripts/install_addon.ps1

2. Включите сервер в Blender

  1. Откройте Blender.

  2. Правка → Настройки → Аддоны → найдите "Blender MCP" → установите флажок.

  3. Укажите порт (по умолчанию 8765) и нажмите Запустить сервер (или используйте панель Blender MCP на боковой панели 3D Viewport).

  4. В консоли должно появиться:

    [Blender MCP] Server listening on http://127.0.0.1:8765/mcp

3. Подключите ваш MCP-клиент

Выберите используемый клиент и вставьте соответствующий фрагмент из examples/mcp-configs.md. Форма url для Antigravity — самая простая:

{
  "mcpServers": {
    "blender": { "url": "http://127.0.0.1:8765/mcp" }
  }
}

Фрагменты для Cursor, Claude Desktop, VS Code, MiniMax Code, Windsurf, Continue, Cline и MCP Inspector находятся в этом файле.

4. Проверка

В чате любого MCP-клиента:

Используйте сервер blender: ping.

Вы должны увидеть, как агент вызывает tools/call на ping и сообщает об успешном пустом результате. Из терминала:

curl -s -X POST http://127.0.0.1:8765/mcp `
  -H "Content-Type: application/json" `
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'

BlenderMCP Dominator Bundle

Этот репозиторий также включает полный проект DomiNations/OpenCivilizations, вложенный в аддон как blender_mcp_addon/dominator/.

Дополнительные инструменты:

Tool

Назначение

dominator_health_check

Проверить аддон, бандл, MCP-эндпоинт, Node/npm, MongoDB, Redis

dominator_setup_scene

Настроить сцену рендера Dominator

dominator_build_unit

Создать процедурный юнит (например, ranged_shooter)

dominator_build_building

Создать процедурное здание (wall, town_center)

dominator_render_asset

Рендерить сцену в PNG

dominator_list_units

Список строителей юнитов

dominator_list_buildings

Список строителей зданий

dominator_apply_nation_palette

Применить палитру материалов нации


Доступные инструменты

Tool

Назначение

Только чтение

get_addon_info

Рукопожатие возможностей — имя, версия, протокол, список инструментов. Вызовите это первым.

да

scene_info

Сводка по сцене (объекты, источники света, камеры, кадр)

да

list_objects

Список объектов сцены, необязательный фильтр по типу

да

get_object

Полные сведения об объекте (положение, поворот, масштаб, модификаторы, материалы)

да

create_object

Создать примитив (куб, сфера, плоскость, цилиндр, конус, тор, пустышка, камера, свет)

нет

delete_object

Удалить объект по имени

нет

transform_object

Задать положение/поворот/масштаб

нет

set_material

Создать или назначить материал с Principled BSDF

нет

set_texture

Применить файл изображения к входу материала (base_color, roughness, normal и т.д.)

нет

import_asset

Импортировать GLB/GLTF/FBX/OBJ/STL/PLY/DAE/USD/X3D/ABC

нет

add_modifier

Добавить модификатор (subdivision, mirror, solidify, array, bevel)

нет

remove_modifier

Удалить модификатор по имени

нет

frame_get / frame_set

Чтение / перемещение по таймлайну

смешанный

render_image

Рендерить текущий кадр в файл

нет

screenshot_viewport

Захватить текущий вьюпорт

нет

execute_python

Выполнить произвольный код bpy (защищено проверкой ast)

нет

ping

Проверка работоспособности

да

Полную схему и примеры см. в docs/tools_reference.md.


Разработка

# syntax-check the add-on (Blender's Python is at <blender>/python/bin/python.exe)
python -m py_compile addon/blender_mcp_addon/__init__.py
python -m py_compile addon/blender_mcp_addon/server/mcp_server.py
# ...etc

# lint
ruff check addon/
mypy addon/

# test the MCP server in isolation (no bpy required)
pytest addon/tests/ -v

Лицензия

MIT. См. LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language control of Blender 3D through MCP clients, allowing creation, modification, and manipulation of 3D models, animations, and scenes.
    300
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    Enables AI-powered control of Blender through natural language, allowing users to create, manipulate, and automate 3D scenes, objects, materials, animations, and more via Claude or other MCP clients.
    71
    62
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    This server enables natural language control of Blender 5.2 LTS through any MCP client, allowing scene inspection, object and material manipulation, rendering, and safe Python execution.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables any MCP client to drive Blender 5.2 LTS through natural language, with tools for scene inspection, object creation and transformation, material and modifier handling, rendering, viewport capture, and guarded Python execution.
    2
    MIT