Blender は Python からかなり深く操作できるアプリです。オブジェクトの作成、位置やスケールの変更、マテリアル設定、レンダリング、.blend ファイルの保存、GLB への書き出しまで、手作業で行う操作の多くをスクリプト化できます。
今回取り組んだのは、その操作口を MCP サーバーとして整理し、AI クライアント側から Blender の状態確認や編集を行えるようにしてみました。単に「AIで3Dを作る」という話ではなく、Blender の実行環境をローカルに置いたまま、必要な操作だけを安全に橋渡ししてくれるmcpサーバーを作成しテストしてみました。
用意した構成
CODEXに依頼分は構成は大きく三つに分けました。
一つ目は、Blender 側で動く小さな add-on です。Blender の中で localhost のブリッジを起動し、外側から届いた操作要求を Blender Python として処理します。通信先は標準で 127.0.0.1:4777 に固定し、外部ネットワークへ直接開かない形にしました。
二つ目は、MCP クライアントから見える MCP サーバーです。こちらは scripts/blender_mcp_server.py として用意し、Blender 側のブリッジへ接続します。MCP 側からは、シーンの確認、選択中オブジェクトの確認、Python スニペットの実行、スクリプトファイルの実行、オブジェクト作成、変形、マテリアル設定、レンダーなどを扱えるようにしました。
三つ目は、運用ルールとしての skill です。最初に接続状態を確認し、次にシーン概要を見て、軽い変更なら専用ツールで行い、複雑な作業は Python ファイルとして残してから実行する、という流れにしました。3D の作業は途中状態が見えにくくなりやすいので、「変更して終わり」ではなく、シーン概要やレンダーで確認することを前提にしています。
実際に扱った作業
検証では、Blender を外部から操作するための基本部分だけでなく、実際の 3D アセット処理にも使いました。特に今回は自分の作成している部屋の間取りを作成するため、間取りモデルの再構築、床や壁の調整、写真参照に合わせたマテリアル変更、GLB の書き出し、Web 表示向けの軽量化、プレビュー画像の生成などを行いました。

元々、ブロックを積み木上で組み合わせてそれっぽく見せていたのですがOpenCLで描画するようにglbでエクスポートしたら表示は崩れるは崩れるわで大変でした。
原因としてスケールがされていなかったことが原因でしたがCODEXに依頼しスケールを依頼したうえで再調整をし綺麗に整えてくれました。
気をつけるべき点
一方で、この構成はかなり強い権限を持ちます。Blender 側で Python を実行できるということは、ローカル環境のファイル操作や Blender プロジェクトの変更もできるということです。そのため、ブリッジは localhost に閉じ、信頼できる環境だけで使う前提にしました。
また、3D の結果はテキストだけでは判断できません。シーン概要で数値的な確認はできますが、最終的にはレンダー画像や実際の GLB 表示を見て確認する必要があります。AI から操作できるようにしても、見た目の違和感やスケール感の判断まで完全に任せるのはまだ危険です。
さらに、作業が大きくなるほど「直接命令する」より「スクリプトを作ってから実行する」ほうが安定します。短い確認なら Python スニペットでもよいですが、モデルの再構築や一括変換のような処理では、レビューできるファイルを残したほうが安全です。
まとめ
Blender MCP サーバーを使うと、AI クライアントから Blender を単なる外部アプリではなく、操作可能な制作環境として扱えるようになります。特に、同じ処理を何度も試す作業、アセットの書き出し、Web 向け軽量化、プレビュー生成のような工程では効果が出やすいです。
今回の検証で、Blender と MCP の組み合わせは、3D 制作の補助としてかなり実用的だと感じました。今後は、よく使う処理をテンプレート化し、モデル作成から Web 表示用アセットの出力までをもう少し短い手順で回せるようにしていきたいです。

10代のChatGPT利用、家庭で決める5つのルール
Razer Viper V3 Proのバッテリーを色付きドットで表示するトレイアプリを公開しました
AI計算コスト、GPU追加前に測る3指標