Skip to main content
Glama

Blender 2D MCP

Model Context Protocol を介した Blender 5.x 向けのAI駆動2D描画・アニメーション。MCPクライアント(Claude Desktop、Cursor、VS Code Copilot agent mode など)が、実行中のBlenderインスタンス内で直接Grease Pencilの描画、キーフレーム、マテリアル、レンダーを作成できます。

Blenderの GPv3 API(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 — TCP JSONコマンドサーバーを内蔵したBlenderアドオン。コマンドはキューに積まれ、bpy.app.timers を介してBlenderのメインスレッドで実行されます。

  • src/blender_2d_mcp/server.py — アドオンのコマンドをMCPツールとして公開するFastMCP stdioサーバー。

要件

  • Blender 5.2 LTSのみ(アドオンは旧バージョンでは有効化を拒否します。使用するGPv3 APIサーフェスは5.2固有です)

  • Python ≥ 3.10 と mcp[cli](自動インストールされます)

Related MCP server: Blender MCP Bridge

インストール

1. アドオンをBlenderにインストール

  1. Blenderで: Edit > Preferences > Add-ons > Install…

  2. このリポジトリから addon.py を選択。

  3. Interface: Blender 2D MCP を有効化。

  4. サイドバーを開く(View > Sidebar、または N キー)→ Blender2DMCP タブ。

  5. Connect to MCP Client をクリック(デフォルトポート 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 でサーバーの開始・停止・再起動ができます。mcp.json を編集した後はVS Codeウィンドウをリロードしてください。

2Dキャンバス

setup_2d_scene を使用すると、ビューポートが正面の正投影ビューに設定されるため、描画平面はワールド XZ になります:

送信する2Dポイント

ワールド位置

意味

[x, y]

(x, 0, y)

x = 画面右方向、y = 画面上方向

[x, y, z]

(x, y, z)

そのまま使用

単位はメートル(Blenderのデフォルト)です。デフォルトのカメラズームでの1920×1080 HDフレームは、水平方向に約±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

1回の呼び出しで多数のストロークを一括描画

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

2つのキーフレーム間の中間フレームを生成(イージング制御)

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

AI駆動の編集を元に戻す

get_viewport_screenshot

ビューポートのキャプチャを画像として返す

run_gp_operator

脱出ハッチ: 任意の bpy.ops.grease_pencil.* オペレーター

execute_blender_code

最終手段としての任意の bpy Python

典型的なワークフロー

  1. get_gp_scene_info + get_viewport_screenshot — 既存の状態を確認。

  2. 新規開始の場合は setup_2d_scene → create_gp_object。

  3. gp_draw_shape / gp_draw_stroke で描画。frame_number を渡すとキーポーズにストロークを配置できます(フレームは自動的に作成されます)。詳細な描画の一括作成には gp_draw_strokes を使用。

  4. 塗りつぶしシェイプ: fill_alpha > 0 のマテリアルを作成し、fill=True + fill_material を指定。

  5. 「2コマ打ち」でアニメーション(24fpsで2フレームごとにキーポーズ): 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

テストスイートは、Blenderの外部でアドオンのTCPトランスポートを実行します。サーバークラスを偽の bpy に対してASTリフティングすることで、Blenderのインストールは不要です。実際のGrease Pencilデータに触れるハンドラーロジックは、Blender内で検証する必要があります。

トラブルシューティング

症状

修正方法

MCPクライアントが接続できない

最初にBlenderのサイドバーパネルでサーバーを起動してください。ポートが一致しているか確認してください(デフォルトは9876)

ポートが既に使用されている

サイドバーパネルでポートを変更し、MCPコマンドに--port Nを追加してください

起動時のファイアウォールプロンプト

プライベートネットワークでBlenderを許可してください(サーバーはlocalhostのみにバインドされます)

スクリーンショットが黒い

Blenderウィンドウ内を一度クリックしてください(コンポジターの問題)、または3Dビューポートが表示されていることを確認してください。ツールはオフスクリーンGPUキャプチャからウィンドウグラブに自動的にフォールバックします

gp_interpolateが失敗する

Blenderで表示可能な3Dビューポートと、両方の境界フレームにキーフレームが必要です。ビューポートを開いてください

モーダルオペレーター(ペン、ブラシストローク)が機能しない

MCPではサポートされていません — 代わりにgp_draw_strokeを使用してください

Unauthorized: missing or invalid auth token

使用されなくなりました — MCPサーバーを再起動し、アドオンとblender-2d-mcpの両方が最新であることを確認してください(認証はv0.3で削除されました)

レンダリングがハングするように見える

現在はノンブロッキングです — state=doneになるまでget_render_statusをポーリングしてください

アドオンが有効化できない

このプロジェクトはBlender 5.2 LTSを正確に必要とします(GPv3 APIのみ)。古いビルドは設計上拒否されます

ライセンス

MIT

Related MCP Connectors

Related MCP Servers