Blockbench MCP
Drives the Blockbench 3D editor to model, UV-map, texture, rig and animate low-poly and cube models
Build and edit 3D scenes in a running Blender by running Python, viewing results and importing assets.
By ahujasid (individual) Python Local · stdio DesignMedia
108 popularity score ★ 34k ↓ 1.3M/mo
Opens the app, which asks before it adds the server.
claude mcp add for-blender -- uvx mcp-for-blender{
"mcpServers": {
"for-blender": {
"command": "uvx",
"args": [
"mcp-for-blender"
]
}
}
}{
"mcpServers": {
"for-blender": {
"command": "uvx",
"args": [
"mcp-for-blender"
]
}
}
}{
"servers": {
"for-blender": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-for-blender"
]
}
}
}[mcp_servers.for-blender]
command = "uvx"
args = ["mcp-for-blender"]gemini mcp add --scope user for-blender uvx -- mcp-for-blenderOpens the app, which asks before it adds the server.
git clone https://github.com/ahujasid/mcp-for-blender
cd mcp-for-blender
docker build -t mcp-for-blender .claude mcp add for-blender -- docker run -i --rm mcp-for-blender{
"mcpServers": {
"for-blender": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp-for-blender"
]
}
}
}{
"mcpServers": {
"for-blender": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp-for-blender"
]
}
}
}{
"servers": {
"for-blender": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp-for-blender"
]
}
}
}[mcp_servers.for-blender]
command = "docker"
args = ["run", "-i", "--rm", "mcp-for-blender"]gemini mcp add --scope user for-blender docker -- run -i --rm mcp-for-blenderBLENDER_HOST |
Optional: Host of the addon's socket server. The --host flag overrides it. |
|---|---|
BLENDER_PORT |
Optional: Port of the addon's socket server. The --port flag overrides it. |
BLENDER_MCP_SAFE_MODE |
Optional: Set to 1 to check each script first and block file, process and network access. |
DISABLE_TELEMETRY |
Optional: Set to true to stop all telemetry, the anonymous usage record included. |
BLENDER_MCP_APPS |
Optional: Set to 1 to force the inline viewport app on for clients that support MCP Apps. |
BLENDER_MCP_OPENAI_FORMS |
Optional: Set to 1 to force the thumbnail asset pickers on. |
In a container, a setting goes in with -e NAME=value after docker run.
This server hooks an assistant up to a copy of Blender you already have open. Most of the work happens through Blender Python: the assistant writes a script for modelling, layout, materials, animation or rigging and runs it in your session. Then it looks at what it made, from the viewport or the scene camera, from several auto-framed angles, as a strip of animation frames or as a render.
It can also pull in assets. Poly Haven HDRIs, textures and models, Sketchfab models and Poly Pizza low-poly models can be searched and imported. New models can be generated from a prompt or an image with Tripo, Meshy, Hyper3D Rodin or Hunyuan3D, either on your own keys or through the makers' paid Premium plan. It is a community project with no tie to the Blender Foundation.
You install two pieces. A Blender addon opens a socket server inside Blender (localhost:9876 unless you change it), and the MCP server, started with uvx mcp-for-blender, talks to that socket. The setup command can write the client config and install the addon for you, and a Dockerfile in the repository lets the server run in a container.
The provider keys (BLENDERMCP_TRIPO_API_KEY, BLENDERMCP_MESHY_API_KEY and the rest) are read by the addon inside Blender, not by the MCP server, so putting them in your client's env block has no effect (addon.py). Telemetry also stops with BLENDER_MCP_DISABLE_TELEMETRY or MCP_DISABLE_TELEMETRY, not just DISABLE_TELEMETRY (telemetry.py).
| Runtime | Python 3.10+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| Tripo, Meshy, Hyper3D Rodin or Hunyuan3D | Paid planOnly for generate_3d. Your own key (Rodin on the main site or through fal.ai), or the makers' Premium plan. A Meshy key needs a paid Meshy plan. |
| Sketchfab or Poly Pizza | Free tierAPI key set in the addon to search and import from those libraries. |
| Also |
|
Install uv with its official installer, then run uvx mcp-for-blender setup (or the install script) to configure clients and add the addon, or uvx mcp-for-blender install-addon for the addon alone. In Blender, open the MCP for Blender tab in the 3D View sidebar (N), tick the sources you want and click Connect. Provider keys go in the addon's preferences, or in BLENDERMCP_* variables set where Blender starts. A tripo3d.com (China) account needs Tripo Domain set to .com. For Hyper3D Rodin, pick main site or fal.ai mode to match your key. Bind Address stays localhost unless you also tick Allow Remote Connections.
A fit for Blender users who want an assistant to model, light and lay out scenes on their own machine and check the result visually. Because it runs arbitrary Python in the session, it suits work on saved files you can roll back, and safe mode is worth turning on if you do not review the code. Asset search works without paid accounts. Model generation costs money per call. It is a community add-on, not something the Blender Foundation publishes.
5 only read, 4 change things, 1 can delete or overwrite. A ? marks an optional parameter.
execute_blender_code deletescode: stringuser_prompt?: stringlookmode?: stringtarget?: arrayviews?: arraydistance?: numbershading?: stringframes?: arrayframe_count?: integerview?: anyimage?: stringmax_size?: integeruser_prompt?: stringget_scene_infouser_prompt?: stringquery?: stringroot?: stringfields?: arraylimit?: integergenerate_3d changesprompt?: stringimage?: stringname?: stringprovider?: stringquality?: stringbbox_condition?: arraypose_mode?: stringjob?: stringwait_seconds?: integeruser_prompt?: stringsearch_assetssource: stringquery?: stringasset_type?: stringcategory?: stringattributes?: objectmin_size_m?: numberlicence?: stringanimated?: booleanlimit?: integerpreviews?: integeruser_prompt?: stringimport_asset changessource: stringid: stringasset_type?: stringtarget_size?: numberapply_to?: arrayresolution?: stringfile_format?: stringuser_prompt?: stringget_addon_statususer_prompt?: stringdisable_telemetry changesuser_prompt?: stringrecord_trajectory_feedback changesfeedback: stringcorrection_text?: stringstep_index?: integeruser_prompt?: stringsearch_mentionsquery?: stringblender://object/{name}blender://material/{name}blender://collection/{name}