Blender MCP: the official server, mcp-for-blender and two others

Four Blender MCP add-ons share port 9876. The official one needs Blender 5.1.

Which Blender MCP you can run starts with your Blender version: mcp-for-blender (formerly blender-mcp) and blender-open-mcp accept 3.0, Blender Lab’s add-on needs 5.1 and blenderwright refuses anything older than 5.2. The next split is code execution. mcp-for-blender lets the model run any Python by default, while blenderwright keeps raw Python off and hands the model 276 named tools. And since all four add-ons listen on port 9876 by default, installing a second one means moving a port first.

Install

npx agentmods add mcp/ahujasid/mcp-for-blender/mcp-for-blender-mcp-for-blender

Each name opens the mod's page: the scan, the token cost and every other way to install it.

Which Blender MCP server is official

Blender Lab’s add-on lists Blender Lab as maintainer and comes from the extensions repository at lab.blender.org. So the official server is Blender Lab’s. The ahujasid project has a disclaimer in its README saying it is a third-party integration, not made by Blender.

Three projects share one command name. ahujasid renamed its PyPI package from blender-mcp to mcp-for-blender, and uvx blender-mcp still starts its server. Blender Lab’s Python package is also called blender-mcp, installed with pip from its git repository, and blender-open-mcp registers a blender-mcp command too. A tutorial that says “run blender-mcp” could mean any of them.

What the model gets to work with

All four pair a small Python MCP server with an add-on inside Blender, linked by a TCP socket, and what differs is what the model gets.

In mcp-for-blender the model writes Blender Python itself, and the server adds nine tools for what Python can’t do alone. look returns the viewport, the camera view, a multi-angle sheet or an animation strip, so the model can check its work. search_assets and import_asset reach Poly Haven, Sketchfab and Poly Pizza, and generate_3d calls Tripo, Hunyuan3D, Hyper3D Rodin or Meshy.

Blender Lab calls its server “deliberately small”. We counted 26 tools, and most read or navigate. They summarize the file and its objects, list missing files and linked libraries, take screenshots and jump to objects. Two search documentation shipped inside the package: the Python API reference (1,942 RST files) and the user manual. No other server here bundles them, which matters when you are looking for the best Blender MCP to explain an existing file. Tools ending in _for_cli open a .blend with blender --background, so the model can inspect a production file with no Blender window open.

blenderwright registers 276 tools, from modeling and mesh editing to materials, lighting and rendering, plus 13 MCP prompts. One reports mesh quality: non-manifold edges, loose and duplicate vertices. Its README puts the cost of all schemas at roughly 48k tokens per request, and all of them load by default. BLENDERWRIGHT_TOOLSETS=auto loads only the core groups and lets the model switch on others, if your client honors the MCP tools/list_changed notification (we don’t measure MCP tokens yet).

With 19 tools, blender-open-mcp has one unusual entry. That one, blender_ai_prompt, sends your prompt to a second model (Ollama with llama3.2 by default) and returns its text. Your MCP client still needs its own model to drive Blender. If you want that driving model to be local, Blender Lab documents a llama.cpp setup, and blenderwright bundles an Ollama chat client that trims its tool set when the full set would take more than half the context window.

Sandboxes, sockets and telemetry

Each server can run arbitrary Python inside Blender. mcp-for-blender does so by default. With BLENDER_MCP_SAFE_MODE=1 it checks every script first, allowing only bpy, bmesh, mathutils and pure standard library, with no file, process or network access. Its socket has no authentication, as the README says, and binding beyond localhost needs a preference that is off by default.

Raw Python stays off in blenderwright until you tick “Allow raw Python” for the session, and its README admits the restricted namespace “does not contain an adversary”. Its socket uses a token file only your user can read, an HMAC-SHA256 challenge and signed messages. Blender Lab runs code inside what its source calls a weak sandbox (“this isn’t really a sandbox”) that blocks a few operators such as wm.quit_blender.

Of the four, blender-open-mcp worries us most. Its MCP endpoint serves streamable HTTP on 0.0.0.0:8000, we found no authentication code in server.py, and one of its tools executes arbitrary Python. Start it with --host 127.0.0.1 or --transport stdio.

By default mcp-for-blender also sends an anonymous usage record: install ID, session ID, tool name, success, duration, versions, OS and a timestamp, posted to a Supabase endpoint. Prompts, code and screenshots go only after you opt in, and the README says the data may be used to train AI models. DISABLE_TELEMETRY=true stops all of it. blenderwright states zero telemetry, and in Blender Lab’s server and add-on we found no telemetry or HTTP client code.

Premium hints

A paid Premium tier lets mcp-for-blender users generate models without their own API keys. None of the other three READMEs mentions pricing or a paid plan. On your own Meshy key you need a paid Meshy plan. With own keys, the server appends a line to the first generation reply of each chat, telling the model to mention Premium.

Running two add-ons, installs and licenses

All four add-ons default to port 9876, and the mcp-for-blender and Blender Lab add-ons start listening when Blender opens, so two enabled add-ons compete for one port. Move one with --port in mcp-for-blender (matched in its add-on panel), BLENDER_MCP_PORT for Blender Lab, BLENDERWRIGHT_PORT for blenderwright or --blender-port for blender-open-mcp.

In Claude Code, mcp-for-blender installs with claude mcp add blender uvx mcp-for-blender plus uvx mcp-for-blender install-addon. Blender Lab’s add-on (GPL-3.0-or-later, the other three are MIT) needs Blender 5.1 and comes from the lab.blender.org repository, with the server installed by pip from git. blenderwright is claude mcp add blenderwright -- uvx blenderwright plus an add-on zip from GitHub Releases; it refuses Blender 5.1 and earlier and rejects a server and add-on on different protocol versions. blender-open-mcp installs from a source checkout with pip install -e, and its add-on declares Blender 3.0.

Sources

ahujasid/mcp-for-blender at 2e4b0bc
README.md · LICENSE · addon.py · pyproject.toml · src/blender_mcp/server.py · src/blender_mcp/premium_hint.py · src/blender_mcp/telemetry.py

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/readme.md at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/readme.md

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/readme_tools.rst at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/readme_tools.rst

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/readme_local_llm.rst at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/readme_local_llm.rst

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/README.md at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/README.md

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/pyproject.toml at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/pyproject.toml

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/manifest.json at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/manifest.json

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/blmcp/tools/execute_blender_code.py at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/blmcp/tools/execute_blender_code.py

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/blmcp/tools_helpers/blender_cli.py at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/blmcp/tools_helpers/blender_cli.py

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/blmcp/tools_helpers/connection.py at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/mcp/blmcp/tools_helpers/connection.py

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/__init__.py at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/__init__.py

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/blender_manifest.toml at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/blender_manifest.toml

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/mcp_to_blender_server.py at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/mcp_to_blender_server.py

https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/weak_sandbox.py at
https://projects.blender.org/lab/blender_mcp/src/commit/dbbf836ad4b1025f14a2b3b504c43903f39e0b04/addon/blender_mcp_addon/weak_sandbox.py

HoldMyBeer-gg/blenderwright at bc2aaad
README.md · addon/auth.py · addon/blender_manifest.toml · LICENSE.md · pyproject.toml

dhakalnirajan/blender-open-mcp at 30338db
README.md · addon.py · pyproject.toml · src/blender_open_mcp/server.py · src/blender_open_mcp/llm.py · LICENSE