Skip to main content
Glama

Blender 2D MCP

KI-gesteuertes 2D-Zeichnen und -Animieren für Blender 5.x über das Model Context Protocol. Ermöglicht MCP-Clients (Claude Desktop, Cursor, VS Code Copilot Agent-Modus, …), Grease-Pencil-Zeichnungen, Keyframes, Materialien und Renderings direkt in einer laufenden Blender-Instanz zu erstellen.

Basiert auf Blenders GPv3-API (bpy.ops.grease_pencil.*, GreasePencilDrawing), modelliert nach 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-Add-on, das einen TCP-JSON-Befehlsserver einbettet. Befehle werden in eine Warteschlange gestellt und über bpy.app.timers im Hauptthread von Blender ausgeführt.

  • src/blender_2d_mcp/server.py — FastMCP-stdio-Server, der die Befehle des Add-ons als MCP-Tools bereitstellt.

Voraussetzungen

  • Nur Blender 5.2 LTS (das Add-on weigert sich, auf älteren Builds aktiviert zu werden; die verwendete GPv3-API-Oberfläche ist 5.2-spezifisch)

  • Python ≥ 3.10 mit mcp[cli] (wird automatisch installiert)

Related MCP server: Blender MCP Bridge

Installation

1. Add-on in Blender installieren

  1. In Blender: Bearbeiten > Einstellungen > Add-ons > Installieren…

  2. Wähle addon.py aus diesem Repository aus.

  3. Aktiviere Interface: Blender 2D MCP.

  4. Öffne die Seitenleiste (Ansicht > Seitenleiste, oder drücke N) → Tab Blender2DMCP.

  5. Klicke auf Mit MCP-Client verbinden (Standardport 9876). Lasse Blender laufen.

Tipp: blender-2d-mcp --install-addon kopiert addon.py in deinen Downloads-Ordner und gibt diese Schritte aus.

2. Einen MCP-Client verbinden

Der Server bindet nur an localhost — für die lokale Nutzung ist kein Authentifizierungstoken erforderlich.

Option A — uvx (ohne Installation):

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

Option B — Editierbare Installation:

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) oder generische stdio-Clients:

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

VS Code / GitHub Copilot Chat (.vscode/mcp.json — bereits in diesem Repository enthalten):

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

Alternativ, wenn blender_2d_mcp in einer Umgebung per pip installiert ist, verwende das Python dieser Umgebung: "command": "C:\\Path\\To\\Python\\python.exe", "args": ["-m", "blender_2d_mcp.server"].

Zur Verwendung: Öffne Copilot Chat, stelle das Modus-Dropdown auf Agent, und die Blender-Tools werden verfügbar (#blender-2d-mcp). Starte/stoppe/starte den Server über die Befehlspalette mit MCP: Server auflisten. Lade das VS-Code-Fenster nach dem Bearbeiten von mcp.json neu.

Die 2D-Leinwand

Mit setup_2d_scene wird der Viewport auf eine orthografische Frontansicht gesetzt, sodass die Zeichenebene die Welt-XZ-Ebene ist:

2D-Punkt, den du sendest

Weltposition

Bedeutung

[x, y]

(x, 0, y)

x = Bildschirm rechts, y = Bildschirm oben

[x, y, z]

(x, y, z)

wird unverändert verwendet

Einheiten sind Meter (Blender-Standard); ein 1920×1080-HD-Frame bei Standard-Kamerazoom erstreckt sich horizontal über ungefähr ±5 Einheiten.

Tool-Katalog

Tool

Zweck

get_gp_scene_info

GP-Objekte, Ebenen, Keyframes, Strichanzahl auflisten

get_scene_info / get_object_info

Allgemeine Szenen-/Objekt-Inspektion

get_addon_info

Add-on-/Protokoll-/Blender-Version + Kompatibilitätsstatus

setup_2d_scene

Weißer Hintergrund, orthografische Frontansicht, HD-Auflösung

create_gp_object

Neues GP-Objekt mit einer Ebene + schwarzem Strichmaterial

gp_add_layer / gp_remove_layer / gp_set_active_layer / gp_list_layers

Ebenenverwaltung

gp_rename_layer / gp_reorder_layer / gp_duplicate_layer

Bearbeitung des Ebenenstapels

gp_set_layer_props

Deckkraft, Mischmodus, ausblenden, sperren

gp_set_layer_mask

GPv3-Ebenenmaskierung (Cut-out-Effekte)

gp_insert_blank_frame

Idempotente Erstellung leerer Keyframes

gp_copy_frame / gp_move_frame / gp_delete_frame

Keyframe-Bearbeitung (instance_drawing=True verknüpft Zeichnungen)

gp_draw_stroke

Freihandstrich; Punkt-für-Punkt-Radius-/Deckkraftprofile für Verjüngung

gp_draw_strokes

Mehrere Striche in einem Aufruf stapelweise zeichnen

gp_draw_shape

circle / box / rounded_box / arc / line / polygon / star / spiral, mit optionalen Füllungen

gp_list_strokes / gp_delete_stroke / gp_transform_stroke / gp_edit_points

Strich-Inspektion & -Bearbeitung (verschieben/skalieren/drehen/glätten)

gp_create_material / gp_list_materials

Strich- und Füllfarben

gp_interpolate

Zwischenbilder zwischen zwei Keyframes erzeugen (Easing-Steuerung)

gp_keyframe_transform

Keyframe-Objektposition/-rotation/-skalierung

gp_set_onion_skinning

Geisterbilder vorheriger/nächster Frames

gp_add_modifier / gp_remove_modifier / gp_set_modifier / gp_list_modifiers

GP-Modifikatoren: Noise-Wackeln, Glätten, Dicke, Zeitversatz …

set_frame / set_scene_settings

Abspielkopf, fps, Frame-Bereich, Render-Engine, Filmtransparenz

setup_camera

Orthografische Frontkamera, die an die Leinwand angepasst ist

add_reference_image

Hintergrundbild-Empty zum Nachzeichnen

render_frame / render_animation / get_render_status / cancel_render

Nicht blockierende Renderings inkl. MP4-Videoausgabe

undo / redo

KI-gesteuerte Bearbeitungen rückgängig machen

get_viewport_screenshot

Viewport-Erfassung, die als Bild zurückgegeben wird

run_gp_operator

Notausstieg: jeder bpy.ops.grease_pencil.*-Operator

execute_blender_code

Beliebiges bpy-Python als letzte Möglichkeit

Typischer Arbeitsablauf

  1. get_gp_scene_info + get_viewport_screenshot — sehen, was vorhanden ist.

  2. setup_2d_scenecreate_gp_object, wenn man neu beginnt.

  3. Zeichne mit gp_draw_shape / gp_draw_stroke; übergebe frame_number, um Striche auf Schlüsselposen zu platzieren (Frames werden automatisch erstellt). Verwende gp_draw_strokes, um detaillierte Zeichnungen in einem Stapel zu zeichnen.

  4. Gefüllte Formen: Erstelle ein Material mit fill_alpha > 0, dann fill=True + fill_material.

  5. Animiere 'on twos' (Schlüsselposen alle 2 Frames bei 24 fps): Kopiere Posen mit gp_copy_frame, bearbeite sie mit gp_transform_stroke, dann gp_interpolate für Zwischenbilder. Füge einen NOISE-Modifikator für handgezeichneten Wackel hinzu.

  6. Rendere mit render_animation(use_video=True) und frage get_render_status ab.

  7. Mache nach Änderungen immer einen Screenshot, um visuell zu überprüfen. Fehler können über undo rückgängig gemacht werden.

Entwicklung

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

Die Testsuite führt den TCP-Transport des Add-ons außerhalb von Blender aus, indem sie die Serverklasse per AST-Lifting gegen ein Fake-bpy testet – keine Blender-Installation erforderlich. Handler-Logik, die echte Grease-Pencil-Daten berührt, muss innerhalb von Blender verifiziert werden.

Fehlerbehebung

Symptom

Lösung

MCP-Client kann keine Verbindung herstellen

Starten Sie den Server zuerst im Seitenleisten-Panel von Blender; prüfen Sie, ob der Port übereinstimmt (Standard 9876)

Port bereits belegt

Ändern Sie den Port im Seitenleisten-Panel und fügen Sie --port N zum MCP-Befehl hinzu

Firewall-Abfrage beim Start

Erlauben Sie Blender in privaten Netzwerken (der Server bindet nur an localhost)

Screenshot ist schwarz

Klicken Sie einmal in das Blender-Fenster (Compositor-Problem) oder stellen Sie sicher, dass ein 3D-Viewport sichtbar ist; das Tool fällt automatisch von der Offscreen-GPU-Erfassung auf das Fenster-Grab zurück

gp_interpolate schlägt fehl

Es benötigt einen sichtbaren 3D-Viewport in Blender und Keyframes an beiden Grenz-Frames; öffnen Sie einen

Modale Operatoren (Stift, Pinselstriche) funktionieren nicht

Über MCP nicht unterstützt — verwenden Sie stattdessen gp_draw_stroke

Unauthorized: missing or invalid auth token

Nicht mehr verwendet — starten Sie den MCP-Server neu und stellen Sie sicher, dass sowohl das Addon als auch blender-2d-mcp auf dem neuesten Stand sind (Auth wurde in v0.3 entfernt)

Render-Vorgänge scheinen zu hängen

Sie sind jetzt nicht-blockierend — fragen Sie get_render_status ab, bis state=done ist

Addon lässt sich nicht aktivieren

Dieses Projekt erfordert genau Blender 5.2 LTS (nur GPv3-API); ältere Builds werden bewusst abgelehnt

Lizenz

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