Skip to main content
Glama

Blender 2D MCP

Dibujo y animación 2D impulsados por IA para Blender 5.x mediante el Model Context Protocol. Permite que los clientes MCP (Claude Desktop, Cursor, modo agente de VS Code Copilot, …) creen dibujos de Grease Pencil, fotogramas clave, materiales y renderizados directamente dentro de una instancia de Blender en ejecución.

Construido sobre la API GPv3 de Blender (bpy.ops.grease_pencil.*, GreasePencilDrawing), modelado según 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 — Complemento de Blender que incorpora un servidor de comandos TCP JSON. Los comandos se ponen en cola y se ejecutan en el hilo principal de Blender mediante bpy.app.timers.

  • src/blender_2d_mcp/server.py — Servidor stdio FastMCP que expone los comandos del complemento como herramientas MCP.

Requisitos

  • Solo Blender 5.2 LTS (el complemento se niega a activarse en versiones anteriores; la superficie de la API GPv3 que utiliza es específica de 5.2)

  • Python ≥ 3.10 con mcp[cli] (se instala automáticamente)

Related MCP server: Blender MCP Bridge

Instalación

1. Instalar el complemento en Blender

  1. En Blender: Editar > Preferencias > Complementos > Instalar…

  2. Selecciona addon.py de este repositorio.

  3. Activa Interfaz: Blender 2D MCP.

  4. Abre la barra lateral (Ver > Barra lateral, o pulsa N) → pestaña Blender2DMCP.

  5. Haz clic en Conectar al cliente MCP (puerto predeterminado 9876). Mantén Blender en ejecución.

Consejo: blender-2d-mcp --install-addon copia addon.py a tu carpeta de Descargas e imprime estos pasos.

2. Conectar un cliente MCP

El servidor se vincula solo a localhost; no se necesita token de autenticación para uso local.

Opción A — uvx (sin instalación):

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

Opción B — instalación editable:

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) o clientes stdio genéricos:

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

VS Code / GitHub Copilot Chat (.vscode/mcp.json — ya incluido en este repositorio):

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

Alternativamente, si blender_2d_mcp está instalado con pip en algún entorno, usa el Python de ese entorno: "command": "C:\\Path\\To\\Python\\python.exe", "args": ["-m", "blender_2d_mcp.server"].

Para usarlo: abre Copilot Chat, cambia el menú desplegable de modo a Agente, y las herramientas de Blender estarán disponibles (#blender-2d-mcp). Inicia/detén/reinicia el servidor desde la Paleta de comandos con MCP: List Servers. Recarga la ventana de VS Code después de editar mcp.json.

El lienzo 2D

Con setup_2d_scene la vista se establece en una vista ortográfica frontal, por lo que el plano de dibujo es el mundo XZ:

Punto 2D que envías

Posición mundial

Significado

[x, y]

(x, 0, y)

x = derecha de la pantalla, y = arriba de la pantalla

[x, y, z]

(x, y, z)

se usa tal cual

Las unidades son metros (predeterminado de Blender); un fotograma HD de 1920×1080 con el zoom de cámara predeterminado abarca aproximadamente ±5 unidades horizontalmente.

Catálogo de herramientas

Herramienta

Propósito

get_gp_scene_info

Listar objetos GP, capas, fotogramas clave, recuentos de trazos

get_scene_info / get_object_info

Introspección general de escena/objeto

get_addon_info

Versión del complemento/protocolo/Blender + estado de compatibilidad

setup_2d_scene

Fondo blanco, vista ortográfica frontal, resolución HD

create_gp_object

Nuevo objeto GP con una capa + material de trazo negro

gp_add_layer / gp_remove_layer / gp_set_active_layer / gp_list_layers

Gestión de capas

gp_rename_layer / gp_reorder_layer / gp_duplicate_layer

Edición de la pila de capas

gp_set_layer_props

Opacidad, modo de fusión, ocultar, bloquear

gp_set_layer_mask

Enmascarado de capas GPv3 (efectos de recorte)

gp_insert_blank_frame

Creación idempotente de fotogramas clave en blanco

gp_copy_frame / gp_move_frame / gp_delete_frame

Manipulación de fotogramas clave (instance_drawing=True enlaza dibujos)

gp_draw_stroke

Trazo de forma libre; perfiles de radio/opacidad por punto para afinar

gp_draw_strokes

Dibujar muchos trazos en una sola llamada

gp_draw_shape

circle / box / rounded_box / arc / line / polygon / star / spiral, con rellenos opcionales

gp_list_strokes / gp_delete_stroke / gp_transform_stroke / gp_edit_points

Inspección y edición de trazos (mover/escalar/rotar/suavizar)

gp_create_material / gp_list_materials

Colores de trazo y relleno

gp_interpolate

Generar interpolaciones entre dos fotogramas clave (control de easing)

gp_keyframe_transform

Ubicación/rotación/escala del objeto de fotograma clave

gp_set_onion_skinning

Fantasma de fotogramas anteriores/siguientes

gp_add_modifier / gp_remove_modifier / gp_set_modifier / gp_list_modifiers

Modificadores GP: Noise wobble, Smooth, Thickness, Time offset…

set_frame / set_scene_settings

Cabezal de reproducción, fps, rango de fotogramas, motor de renderizado, transparencia de película

setup_camera

Cámara frontal ortográfica ajustada al lienzo

add_reference_image

Imagen de fondo vacía para calcar

render_frame / render_animation / get_render_status / cancel_render

Renderizados no bloqueantes, incl. salida de video mp4

undo / redo

Deshacer ediciones impulsadas por IA

get_viewport_screenshot

Captura de la vista devuelta como imagen

run_gp_operator

Vía de escape: cualquier operador bpy.ops.grease_pencil.*

execute_blender_code

Python bpy arbitrario como último recurso

Flujo de trabajo típico

  1. get_gp_scene_info + get_viewport_screenshot — ver lo que existe.

  2. setup_2d_scenecreate_gp_object si se empieza desde cero.

  3. Dibuja con gp_draw_shape / gp_draw_stroke; pasa frame_number para colocar trazos en poses clave (los fotogramas se crean automáticamente). Usa gp_draw_strokes para dibujos detallados por lotes.

  4. Formas rellenas: crea un material con fill_alpha > 0, luego fill=True + fill_material.

  5. Anima 'en dos' (poses clave cada 2 fotogramas a 24 fps): copia poses con gp_copy_frame, ajusta con gp_transform_stroke, luego gp_interpolate para interpolaciones. Añade un modificador NOISE para el temblor a mano alzada.

  6. Renderiza con render_animation(use_video=True) y consulta get_render_status.

  7. Siempre captura la pantalla después de los cambios para verificar visualmente. Los errores se pueden deshacer con undo.

Desarrollo

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

El conjunto de pruebas ejecuta el transporte TCP del complemento fuera de Blender mediante el levantamiento AST de la clase de servidor contra un bpy falso; no se necesita instalación de Blender. La lógica de los manejadores que toca datos reales de Grease Pencil debe verificarse dentro de Blender.

Solución de problemas

Síntoma

Solución

El cliente MCP no puede conectarse

Inicia el servidor en el panel lateral de Blender primero; verifica que el puerto coincida (predeterminado 9876)

El puerto ya está en uso

Cambia el puerto en el panel lateral y añade --port N al comando MCP

Firewall al iniciar

Permite Blender en redes privadas (el servidor solo se vincula a localhost)

La captura de pantalla es negra

Haz clic en la ventana de Blender una vez (problema del compositor), o asegúrate de que haya una vista 3D visible; la herramienta recurre automáticamente de la captura de GPU fuera de pantalla a la captura de ventana

gp_interpolate falla

Necesita una vista 3D visible en Blender y fotogramas clave en ambos fotogramas límite; abre una

Los operadores modales (lápiz, trazos de pincel) no funcionan

No son compatibles a través de MCP — usa gp_draw_stroke en su lugar

No autorizado: token de autenticación faltante o inválido

Ya no se usa — reinicia el servidor MCP y asegúrate de que tanto el addon como blender-2d-mcp estén actualizados (la autenticación se eliminó en v0.3)

Los renders parecen colgarse

Ahora no son bloqueantes — consulta get_render_status hasta que state=done

El addon no se habilita

Este proyecto requiere exactamente Blender 5.2 LTS (solo API GPv3); las versiones anteriores se rechazan por diseño

Licencia

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