WindowsでBlender LabのMCPを試したとき、Codexにサーバーを登録できても、それだけでは開いているBlenderの中身を読めませんでした。Codexが起動する blender-mcp と、Blender内で接続を待つアドオンは別々に動くからです。
導入のゴールは、Blenderの初期シーンから Cube、Light、Camera の3件を取得すること。 サーバーの登録、アドオンの待ち受け、シーンの読み取りを順に確認します。
実機検証はWindows、Blender 5.1.2、Blender Lab公式MCP v1.0.0で行いました。掲載コマンドは2026年11月14日に公式リリースと照合し、後述のSDK修正を含む v1.0.3 を指定しています。新版での実機結果を示すものではありません。

用意するものと、最初に確認する安全条件
Blender 5.1以降、Codex CLI、Git、Python実行環境を管理する uv を使います。MCPはCodexから外部ツールを呼ぶための接続規格です。今回の接続では、Codexと blender-mcp は標準入出力で、blender-mcp とBlenderアドオンは同じPC内のTCP接続でやり取りします。
PowerShellで git --version、uvx --version、codex --version を実行し、それぞれバージョンが返ることを確かめます。uvx が見つからない場合は uvのWindowsインストール手順を確認してください。
1. Blender側のアドオンを起動する
- Blender Lab公式リリース一覧の v1.0.3 からアドオン
mcp-1.0.3.zipをダウンロードする。 - Blenderの 編集 → プリファレンス → アドオン から ディスクからインストール を選び、zipのまま指定して MCP を有効にする。
- アドオンのHostを
localhost、Portを9876にして Start MCP Bridge Server を押す。
Online access must be enabled in the system preferences と表示された場合は、検証環境で プリファレンス → システム → Network → Allow Online Access を有効にしてから、もう一度ブリッジを開始します。ブリッジをLAN側へ公開する必要はありません。
アドオンに Server is running が出たら、同じPCのPowerShellでTCPの待ち受けを確認できます。
Test-NetConnection -ComputerName localhost -Port 9876
TcpTestSucceeded : True ならそのポートは応答しています。この時点で分かるのはBlender側の待ち受けまでです。
2. Blenderの外で動くサーバーを準備する
PowerShellで公式リポジトリを取得します。<blender-mcp-clone> は、保存先にする新しいフォルダのパスへ置き換えてください。
git clone --branch v1.0.3 --depth 1 https://projects.blender.org/lab/blender_mcp.git "<blender-mcp-clone>"
Set-Location "<blender-mcp-clone>\mcp"
uvx --from . blender-mcp --help
--from . は現在の mcp フォルダを実行元に指定します。--help で usage: blender-mcp が表示されれば、Codexから起動する前の確認は完了です。初回は依存パッケージの取得に時間がかかることがあります。
旧版で No module named 'mcp.server.fastmcp' が出る場合
v1.0.0 の検証では、依存関係の解決時にMCP Python SDK 2系が入り、サーバーが起動しませんでした。SDK 2系では FastMCP の場所と名前が変わっています。Blender MCP v1.0.2でSDKを2未満に制限する修正が入りました。 新規導入なら修正済みのリリースを選びます。
事情があって v1.0.0 を再現する場合に限り、当時は uvx --from . --with "mcp[cli]<2" blender-mcp --help で起動を確認できました。その構成をCodexで使う場合は、次の args にも "--with", "mcp[cli]<2" を "blender-mcp" の前に追加します。
3. Codexへ読み取りツールだけを登録する
Codexの ~/.codex/config.toml、または信頼済みプロジェクトの .codex/config.toml へ次を設定します。cwd は手順2の mcp フォルダの絶対パスへ置き換えます。WindowsでもTOML内のパスは / 区切りにすると、バックスラッシュのエスケープを避けられます。
[mcp_servers.blender]
command = "uvx"
args = ["--from", ".", "blender-mcp"]
cwd = "<blender-mcp-clone>/mcp"
startup_timeout_sec = 120
tool_timeout_sec = 120
default_tools_approval_mode = "prompt"
enabled_tools = ["get_objects_summary"]
[mcp_servers.blender.env]
BLENDER_MCP_HOST = "localhost"
BLENDER_MCP_PORT = "9876"
PowerShellで codex mcp list を実行します。blender が表示されたら登録は読み込まれています。Codex CLIを起動し、対話画面の /mcp で get_objects_summary が見えるか確認します。
codex mcp list は登録の確認です。 Blenderへ届くかは、次の読み取りで判定します。
4. Cube、Light、Camera が返れば接続完了
Blenderで初期シーンを開き、ブリッジが動いている状態で、Codexへ次のように頼みます。
get_objects_summary を使い、開いているBlenderシーンのオブジェクト名だけを列挙してください。
作成・変更・削除・保存は行わないでください。
初期シーンの Cube、Light、Camera が返れば、Codexからブリッジを経由して、画面で見ているBlenderまで届いています。別の名前が返ったら、開いているシーンと接続先のBlenderを見比べてください。
途中で止まったら、--help が通るか、アドオンが待ち受けているか、シーンを読めるかの3点に戻ります。症状ごとの見方は Blender MCPがつながらないときの確認順にまとめました。SkillとMCPの役割で迷っている場合は CodexのSkills・MCP・プラグインの違いも参考になります。

コメント