Forge 3D worlds with AI — the MCP server for Blender
Reason this release was yanked:
broken, gonna release a version under different name. copilot is not great
Project description
BlenderCopilot
Forge 3D worlds with AI. An MCP server for Blender.
Inspired by blender-mcp. BlenderCopilot gives any MCP-compatible AI full control over Blender's 3D pipeline — object creation, mesh operations, materials, rigging, animation, physics, baking, node graphs, camera, rendering, and asset integrations. Works with Claude, Claude Code, Cursor, VS Code, Windsurf, and any MCP client.
Features
- 55 structured tools across every domain: objects, mesh, materials, UV, baking, rigging, animation, physics, nodes, camera, rendering, LOD, volumes
- Action-based design — fewer tools, more actions per tool. Optimized for AI tool discovery
- Universal Node Graph Engine — geometry nodes, shader nodes, and compositor through one tool
- Visual feedback loop —
analyze_scenereturns viewport screenshot + structured metadata - 5 asset integrations — Poly Haven, Sketchfab, Hyper3D Rodin, Hunyuan3D, Trellis2
- Auto-screenshot — opt-in to get viewport screenshots after every modifying command
- Blender 4.2+ native — extension format with proper permission declarations
Architecture
Any MCP Client (Claude, Cursor, VS Code, etc.)
↓ MCP Protocol (stdio)
BlenderCopilot MCP Server ← pip install / uvx
↓ JSON over TCP Socket
BlenderCopilot Addon ← installed in Blender
↓ bpy API
Blender
Installation
1. MCP Server
Claude Code:
claude mcp add blender-copilot -- uvx blender-copilot
Claude Desktop — edit claude_desktop_config.json:
{
"mcpServers": {
"blender-copilot": {
"command": "uvx",
"args": ["blender-copilot"]
}
}
}
Cursor / VS Code / Windsurf — same JSON in your MCP settings.
2. Blender Addon
Requires Blender 4.2+.
- Download the latest
blender_copilot.zipfrom Releases, or build it yourself:cd addon && zip -r ../blender_copilot.zip . -x '*.pyc' '__pycache__/*'
- In Blender: Edit > Preferences > Extensions
- Click the dropdown arrow next to "Repositories" → Install from Disk
- Select the
blender_copilot.zipfile - Enable "Blender Copilot" if not already enabled
For development (changes apply instantly without reinstalling):
# macOS — Blender 5.0+
ln -s /path/to/blender-copilot/addon "$HOME/Library/Application Support/Blender/5.0/extensions/user_default/blender_copilot"
# Linux — Blender 5.0+
ln -s /path/to/blender-copilot/addon ~/.config/blender/5.0/extensions/user_default/blender_copilot
# Windows — Blender 5.0+ (run as admin)
mklink /D "%APPDATA%\Blender Foundation\Blender\5.0\extensions\user_default\blender_copilot" C:\path\to\blender-copilot\addon
3. Connect
- In Blender's 3D View sidebar (press N), find the BlenderCopilot tab
- Enable the integrations you want (expand Poly Haven, Sketchfab, etc.)
- Click Start MCP Server
- Start talking to your AI
Tool Catalog (55 tools)
Object Management
| Tool | What it does |
|---|---|
create_object |
Create meshes (cube, sphere, cylinder, plane, cone, torus), lights, cameras, empties |
transform_object |
Move, rotate, scale — absolute or delta mode |
duplicate_object |
Copy objects, optionally linked (shared mesh data) |
delete_object |
Remove objects by name list |
Mesh Operations
| Tool | What it does |
|---|---|
mesh_operation |
Join, separate, boolean (union/difference/intersect), shade smooth/flat, apply transforms, set origin, voxel remesh |
generate_lod_chain |
Create LOD levels with automatic decimation |
generate_collision_mesh |
Generate collision meshes (convex hull, box, voxel) |
Materials
| Tool | What it does |
|---|---|
manage_materials |
Create PBR materials, assign to objects, list, set base color/metallic/roughness |
UV Mapping
| Tool | What it does |
|---|---|
uv_operation |
Smart UV project, lightmap pack, unwrap, create/set/list UV layers |
Texture Baking
| Tool | What it does |
|---|---|
bake_textures |
Bake high→low poly textures: diffuse, normal, AO, roughness, combined, emit |
Node Graph Engine
| Tool | What it does |
|---|---|
build_node_graph |
Create/replace geometry nodes, shader nodes, or compositor nodes |
get_node_graph |
Read back any node tree as structured JSON |
list_node_types |
Discover available nodes by category |
Modifiers
| Tool | What it does |
|---|---|
modify_object |
Add, remove, apply, or configure any modifier (subsurf, bevel, array, mirror, boolean, solidify, etc.) |
Rigging
| Tool | What it does |
|---|---|
manage_armature |
Create armatures, add/modify bones, parent meshes with auto weights, IK, bone constraints |
manage_weights |
Vertex group assignment, auto weights, normalize, list, remove |
manage_shape_keys |
Blend shapes / morph targets — add, set value, keyframe, list, remove |
Animation
| Tool | What it does |
|---|---|
set_keyframe |
Keyframe location/rotation/scale/custom properties with interpolation control |
manage_actions |
Create, assign, list, duplicate animation actions |
manage_nla |
NLA tracks and strips for non-linear animation layering |
Physics & Constraints
| Tool | What it does |
|---|---|
manage_physics |
Rigid body, collision, cloth, soft body — add, remove, configure |
manage_constraints |
Object constraints: Track To, Copy Rotation, Limit Location, Child Of, etc. |
Camera & Rendering
| Tool | What it does |
|---|---|
set_camera |
Focal length, sensor, DOF, focus object/distance |
render_scene |
Render to file — engine, samples, resolution, format, denoising |
set_viewport_shading |
Set viewport mode: wireframe, solid, material, rendered |
configure_render_settings |
Engine, samples, resolution, color management, world color, EEVEE features |
Scene & Inspection
| Tool | What it does |
|---|---|
get_scene_info |
Scene overview — objects, materials, render engine |
get_object_info |
Object details — transform, mesh data, world bounding box |
get_viewport_screenshot |
Capture the 3D viewport as PNG |
execute_blender_code |
Run arbitrary Python in Blender (fallback for anything not covered) |
analyze_scene |
Screenshot + structured metadata for visual feedback loops |
manage_collections |
Create, delete, nest collections; move objects; purge orphans |
import_model |
Import GLB, FBX, OBJ, USD, STL, ABC, PLY, DAE |
export_model |
Export scene or selection to any format |
Volume Grids (Blender 5.0+)
| Tool | What it does |
|---|---|
volume_operation |
Mesh↔SDF conversion, SDF boolean/offset/fillet/smooth, procedural terrain |
Asset Integrations
| Tool | What it does |
|---|---|
get_polyhaven_status |
Check Poly Haven integration status |
get_polyhaven_categories |
List Poly Haven asset categories |
search_polyhaven_assets |
Search HDRIs, textures, models |
download_polyhaven_asset |
Download and import Poly Haven assets |
set_texture |
Apply Poly Haven PBR texture to object |
get_sketchfab_status |
Check Sketchfab integration status |
search_sketchfab_models |
Search Sketchfab model library |
get_sketchfab_model_preview |
Preview model thumbnail before downloading |
download_sketchfab_model |
Download with automatic size normalization |
get_hyper3d_status |
Check Hyper3D Rodin status |
generate_hyper3d_model_via_text |
Text-to-3D via Hyper3D Rodin |
generate_hyper3d_model_via_images |
Image-to-3D via Hyper3D Rodin |
poll_rodin_job_status |
Poll Hyper3D generation progress |
import_generated_asset |
Import completed Hyper3D model |
get_hunyuan3d_status |
Check Hunyuan3D status |
generate_hunyuan3d_model |
Text/image-to-3D via Hunyuan3D |
poll_hunyuan_job_status |
Poll Hunyuan3D generation progress |
import_generated_asset_hunyuan |
Import completed Hunyuan3D model |
get_trellis2_status |
Check Trellis2 status |
generate_trellis2_model |
Image-to-3D via local Trellis2 |
Example Workflows
Scene building:
"Create a cube, scale it to [2, 0.1, 3] for a wall, duplicate it 3 times, position them as a room, add a sun light, set viewport to rendered"
Material design:
"Create a red metallic material with roughness 0.2, assign it to the cube, then build a noise-based bump shader node graph"
Game-ready pipeline:
"UV unwrap the model, generate LOD chain at 50%/25%/10%, create convex hull collision mesh, bake normal and AO maps at 2K, export as GLB"
Character rigging:
"Create an armature with spine, chest, neck, head bones. Parent the mesh with auto weights. Add IK to the arms."
Physics simulation:
"Add rigid body to all objects in the scene. Set the floor as collision. Set mass to 5kg on the sphere."
Environment Variables
export BLENDER_HOST='localhost' # default
export BLENDER_PORT=9876 # default
Troubleshooting
- Connection issues — make sure the addon is running before using AI tools
- Timeout errors — break complex operations into smaller steps
- First command fails — normal on cold start, retry and it works
- Restart both — if things break, restart both the AI client and the addon
Contributing
Contributions welcome. See TESTING.md for the test plan.
License
MIT — Pedro Augusto
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blender_copilot-1.0.0.tar.gz.
File metadata
- Download URL: blender_copilot-1.0.0.tar.gz
- Upload date:
- Size: 29.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63c46ec4582d712d8d2c25b304f6398685b6c8a967e1751e54e03740fee87757
|
|
| MD5 |
8e988041e545b05c389bf37ad40bbdd1
|
|
| BLAKE2b-256 |
b84679c665be8757f1e39d650fda82d1cd3c2c07de6b799c1c25aa4c77ad1e0a
|
Provenance
The following attestation bundles were made for blender_copilot-1.0.0.tar.gz:
Publisher:
release.yml on pedronaugusto/blender-copilot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
blender_copilot-1.0.0.tar.gz -
Subject digest:
63c46ec4582d712d8d2c25b304f6398685b6c8a967e1751e54e03740fee87757 - Sigstore transparency entry: 1109236893
- Sigstore integration time:
-
Permalink:
pedronaugusto/blender-copilot@6071d3f613dad97672de05ab2341e2de9a7ed2ff -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/pedronaugusto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6071d3f613dad97672de05ab2341e2de9a7ed2ff -
Trigger Event:
push
-
Statement type:
File details
Details for the file blender_copilot-1.0.0-py3-none-any.whl.
File metadata
- Download URL: blender_copilot-1.0.0-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8e2bfd10e86a5258a5d4153a047c8343e3a90405e83dd38703abd4330c6913a
|
|
| MD5 |
25b0a2f516781e44d74bfad1f9d3836d
|
|
| BLAKE2b-256 |
1424dac57b1a95224ab86e5c9b55ad6f31781d3083a51e714653b3896914bf13
|
Provenance
The following attestation bundles were made for blender_copilot-1.0.0-py3-none-any.whl:
Publisher:
release.yml on pedronaugusto/blender-copilot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
blender_copilot-1.0.0-py3-none-any.whl -
Subject digest:
d8e2bfd10e86a5258a5d4153a047c8343e3a90405e83dd38703abd4330c6913a - Sigstore transparency entry: 1109236894
- Sigstore integration time:
-
Permalink:
pedronaugusto/blender-copilot@6071d3f613dad97672de05ab2341e2de9a7ed2ff -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/pedronaugusto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6071d3f613dad97672de05ab2341e2de9a7ed2ff -
Trigger Event:
push
-
Statement type: