Skip to main content
Glama

Blender 2D MCP

AI-управляемое 2D-рисование и анимация для Blender 5.x через Model Context Protocol. Позволяет MCP-клиентам (Claude Desktop, Cursor, режим агента VS Code Copilot, …) создавать рисунки Grease Pencil, ключевые кадры, материалы и рендеры прямо в запущенном экземпляре Blender.

Построен на API GPv3 Blender (bpy.ops.grease_pencil.*, GreasePencilDrawing), по образцу ahujasid/blender-mcp.

flowchart LR
    A[MCP Client<br/>Claude / Cursor / VS Code] <-->|stdio / JSON-RPC| B[blender-2d-mcp<br/>FastMCP server]
    B <-->|TCP JSON<br/>localhost:9876| C[addon.py<br/>socket server in Blender]
    C -->|main thread| D[Grease Pencil API<br/>GPv3]
  • addon.py — аддон Blender, встраивающий TCP-сервер JSON-команд. Команды ставятся в очередь и выполняются в главном потоке Blender через bpy.app.timers.

  • src/blender_2d_mcp/server.py — FastMCP stdio-сервер, предоставляющий команды аддона как MCP-инструменты.

Требования

  • Только Blender 5.2 LTS (аддон отказывается включаться на более старых сборках; используемый им API GPv3 специфичен для 5.2)

  • Python ≥ 3.10 с mcp[cli] (устанавливается автоматически)

Related MCP server: Blender MCP Bridge

Установка

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

  1. В Blender: Правка > Настройки > Дополнения > Установить…

  2. Выберите addon.py из этого репозитория.

  3. Включите Интерфейс: Blender 2D MCP.

  4. Откройте боковую панель (Вид > Боковая панель или нажмите N) → вкладка Blender2DMCP.

  5. Нажмите Подключиться к MCP-клиенту (порт по умолчанию 9876). Оставьте Blender запущенным.

Совет: blender-2d-mcp --install-addon копирует addon.py в вашу папку «Загрузки» и выводит эти шаги.

2. Подключите MCP-клиента

Сервер привязывается только к localhost — для локального использования токен авторизации не нужен.

Вариант A — uvx (без установки):

uvx --from "g:\My Projects\blender-2d-mcp" blender-2d-mcp

Вариант B — редактируемая установка:

cd "g:\My Projects\blender-2d-mcp"
pip install -e .
blender-2d-mcp            # runs the stdio MCP server

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "blender-2d-mcp": {
      "command": "uvx",
      "args": ["--from", "g:\\My Projects\\blender-2d-mcp", "blender-2d-mcp"]
    }
  }
}

Cursor (.cursor/mcp.json) или универсальные stdio-клиенты:

{
  "mcpServers": {
    "blender-2d-mcp": {
      "command": "C:\\Path\\To\\Python\\Scripts\\blender-2d-mcp.exe",
      "args": []
    }
  }
}

VS Code / GitHub Copilot Chat (.vscode/mcp.json — уже включён в этот репозиторий):

{
  "servers": {
    "blender-2d-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "g:\\My Projects\\blender-2d-mcp", "blender-2d-mcp"],
      "env": {}
    }
  }
}

Альтернативно, если blender_2d_mcp установлен через pip в каком-либо окружении, используйте Python этого окружения: "command": "C:\\Path\\To\\Python\\python.exe", "args": ["-m", "blender_2d_mcp.server"].

Чтобы использовать: откройте Copilot Chat, переключите раскрывающийся список режимов на Agent, и инструменты Blender станут доступны (#blender-2d-mcp). Запускайте/останавливайте/перезапускайте сервер из палитры команд с помощью MCP: List Servers. Перезагрузите окно VS Code после редактирования mcp.json.

2D-холст

С помощью setup_2d_scene видовой экран переключается на ортографический вид спереди, поэтому плоскость рисования — мировая XZ:

Отправляемая 2D-точка

Мировая позиция

Значение

[x, y]

(x, 0, y)

x = вправо по экрану, y = вверх по экрану

[x, y, z]

(x, y, z)

используется как есть

Единицы измерения — метры (по умолчанию в Blender); кадр HD 1920×1080 при стандартном зуме камеры занимает примерно ±5 единиц по горизонтали.

Каталог инструментов

Инструмент

Назначение

get_gp_scene_info

Перечисляет GP-объекты, слои, ключевые кадры, количество штрихов

get_scene_info / get_object_info

Общая интроспекция сцены/объектов

get_addon_info

Версия аддона/протокола/Blender + статус совместимости

setup_2d_scene

Белый фон, вид спереди (ортогонально), разрешение HD

create_gp_object

Новый GP-объект со слоем и чёрным материалом штриха

gp_add_layer / gp_remove_layer / gp_set_active_layer / gp_list_layers

Управление слоями

gp_rename_layer / gp_reorder_layer / gp_duplicate_layer

Редактирование стека слоёв

gp_set_layer_props

Непрозрачность, режим наложения, скрытие, блокировка

gp_set_layer_mask

Маскирование слоёв GPv3 (эффекты вырезания)

gp_insert_blank_frame

Идемпотентное создание пустого ключевого кадра

gp_copy_frame / gp_move_frame / gp_delete_frame

Манипуляции с ключевыми кадрами (instance_drawing=True связывает рисунки)

gp_draw_stroke

Произвольный штрих; профили радиуса/непрозрачности по точкам для сужения

gp_draw_strokes

Пакетное рисование множества штрихов за один вызов

gp_draw_shape

circle / box / rounded_box / arc / line / polygon / star / spiral с опциональной заливкой

gp_list_strokes / gp_delete_stroke / gp_transform_stroke / gp_edit_points

Просмотр и редактирование штрихов (перемещение/масштабирование/поворот/сглаживание)

gp_create_material / gp_list_materials

Цвета штриха и заливки

gp_interpolate

Генерация промежуточных кадров между двумя ключевыми (управление плавностью)

gp_keyframe_transform

Позиция/поворот/масштаб объекта на ключевом кадре

gp_set_onion_skinning

Просвечивание предыдущих/следующих кадров

gp_add_modifier / gp_remove_modifier / gp_set_modifier / gp_list_modifiers

Модификаторы GP: Noise wobble, Smooth, Thickness, Time offset…

set_frame / set_scene_settings

Плейхед, fps, диапазон кадров, рендер-движок, прозрачность плёнки

setup_camera

Ортографическая фронтальная камера, подогнанная под холст

add_reference_image

Пустышка с фоновым изображением для обводки

render_frame / render_animation / get_render_status / cancel_render

Неблокирующий рендер, включая вывод видео в mp4

undo / redo

Откат изменений, внесённых ИИ

get_viewport_screenshot

Захват видового экрана, возвращаемый в виде изображения

run_gp_operator

Запасной выход: любой оператор bpy.ops.grease_pencil.*

execute_blender_code

Произвольный Python-код bpy как крайнее средство

Типичный рабочий процесс

  1. get_gp_scene_info + get_viewport_screenshot — посмотрите, что уже есть.

  2. setup_2d_scenecreate_gp_object, если начинаете с нуля.

  3. Рисуйте с помощью gp_draw_shape / gp_draw_stroke; передавайте frame_number, чтобы разместить штрихи на ключевых позах (кадры создаются автоматически). Используйте gp_draw_strokes для пакетного рисования детальных изображений.

  4. Заливка фигур: создайте материал с fill_alpha > 0, затем fill=True + fill_material.

  5. Анимируйте «по два кадра» (ключевые позы каждые 2 кадра при 24 fps): копируйте позы с помощью gp_copy_frame, корректируйте через gp_transform_stroke, затем используйте gp_interpolate для промежуточных кадров. Добавьте модификатор NOISE для эффекта рисованной дрожи.

  6. Рендерите с помощью render_animation(use_video=True) и опрашивайте get_render_status.

  7. Всегда делайте скриншот после изменений, чтобы проверить результат визуально. Ошибки можно откатить через undo.

Разработка

pip install -e ".[dev]"
python -m pytest tests/ -v

Тестовый набор запускает TCP-транспорт аддона вне Blender, поднимая класс сервера через AST-трансформацию с фейковым bpy — установка Blender не требуется. Логику обработчиков, работающую с реальными данными Grease Pencil, необходимо проверять внутри Blender.

Устранение неполадок

Симптом

Исправление

MCP-клиент не может подключиться

Сначала запустите сервер на боковой панели Blender; проверьте, что порт совпадает (по умолчанию 9876)

Порт уже используется

Измените порт на боковой панели и добавьте --port N к команде MCP

Запрос брандмауэра при запуске

Разрешите Blender в частных сетях (сервер привязывается только к localhost)

Скриншот чёрный

Один раз кликните по окну Blender (проблема композитора) или убедитесь, что виден 3D-вьюпорт; инструмент автоматически переключается с захвата GPU вне экрана на захват окна

gp_interpolate не работает

Ему нужен видимый 3D-вьюпорт в Blender и ключевые кадры на обеих граничных кадрах; откройте его

Модальные операторы (штрихи пера, кисти) не работают

Не поддерживаются через MCP — используйте gp_draw_stroke вместо этого

Unauthorized: missing or invalid auth token

Больше не используется — перезапустите MCP-сервер и убедитесь, что и аддон, и blender-2d-mcp обновлены (аутентификация удалена в v0.3)

Рендеры, похоже, зависают

Теперь они неблокирующие — опрашивайте get_render_status, пока state=done

Аддон не включается

Этот проект требует именно Blender 5.2 LTS (только GPv3 API); старые сборки отклоняются намеренно

Лицензия

MIT

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

Maintenance

Maintainers
Response time
Release cycle
Releases (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

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/Praveen16-V/blender-2d-mcp'

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