BlenderMCP
Connects Blender to AI assistants like Claude for prompt-assisted 3D modeling, scene creation, rendering, and automation.
README
BlenderMCP — Blender Model Context Protocol Integration
BlenderMCP connects Blender to AI assistants through the Model Context Protocol (MCP), letting Claude directly control Blender for prompt-assisted 3D modelling, scene creation, rendering, and automation.
This is an extended fork of ahujasid/blender-mcp with 92 tools, full Blender 4.x compatibility, and telemetry removed.
What's new in this fork
- 92 tools across 26 categories (up from the original ~20)
- Blender 4.x compatibility — fixes for BMesh layer API changes, EEVEE engine name,
temp_overrideregion requirement, compositor node ordering - No telemetry — all analytics code removed
- Auto-restart on addon reload — server restarts automatically when the addon is cycled in Preferences; no manual click needed
deploy.py— one-command script to copyaddon.pyto Blender's installed addons pathimg_to_3d_server.py— local image-to-3D inference via TripoSR (optional, loads/unloads on demand to free VRAM)TOOLS.md— full reference for all 91 tools with parameters
Tool categories (91 tools)
| Category | Tools |
|---|---|
| Process management | start_blender, close_blender, get_blender_status |
| Scene & object info | get_scene_info, get_object_info, find_objects_by_type, measure_distance |
| Primitives & object mgmt | add_primitive, delete_object, duplicate_object, rename_object, join_objects, separate_mesh, set_origin, snap_to_ground, set_smooth_shading, parent_object, select_objects, align_objects |
| Transforms | move_object, scale_object, rotate_object |
| Mesh editing | get_mesh_stats, subdivide_mesh, apply_modifier, set_vertex_position |
| Vertex operations | get_vertex_positions, set_vertex_positions |
| Edge operations | get_edges, mark_sharp_edges, set_edge_crease, set_edge_bevel_weight |
| Face operations | get_faces, extrude_faces, inset_faces, flip_normals, merge_vertices, triangulate_mesh, set_face_material_index |
| Curve control points | get_control_points, set_control_point |
| Camera | create_camera, set_active_camera |
| Lighting | add_light, set_world_background, add_3point_lighting |
| Materials | create_material, assign_material, set_object_material_color, load_texture, set_texture |
| Modifiers | add_modifier, boolean_operation |
| Rendering | set_render_settings, render_from_camera, render_all_cameras |
| Viewport capture | get_viewport_screenshot, capture_viewport_angle, capture_contact_sheet, render_depth_map |
| Reference images | store_reference_image, compare_reference_image, diff_images |
| Animation | add_keyframe, set_frame |
| Collections | create_collection, move_to_collection |
| Export / import | export_object, import_file, save_blend, load_blend |
| Scripting | execute_blender_code |
| PolyHaven | get_polyhaven_status, get_polyhaven_categories, search_polyhaven_assets, download_polyhaven_asset |
| Sketchfab | get_sketchfab_status, search_sketchfab_models, get_sketchfab_model_preview, download_sketchfab_model |
| Hyper3D / Rodin | get_hyper3d_status, generate_hyper3d_model_via_text, generate_hyper3d_model_via_images, poll_rodin_job_status, import_generated_asset |
| Hunyuan3D | get_hunyuan3d_status, generate_hunyuan3d_model, poll_hunyuan_job_status, import_generated_asset_hunyuan |
| Image-to-3D (TripoSR) | load_img_to_3d_model, generate_3d_from_image, unload_img_to_3d_model |
See TOOLS.md for full parameter documentation.
Requirements
- Blender 4.0 or newer (Blender 4.3 recommended)
- Python 3.10+
- uv package manager
Installation
1. Install the MCP server
git clone https://github.com/naab007/blender_mcp
cd blender_mcp
uv venv .venv
uv pip install -e .
2. Install the Blender addon
- Download
addon.pyfrom this repo - Open Blender → Edit → Preferences → Add-ons → Install...
- Select
addon.pyand enable Interface: Blender MCP - In the 3D View sidebar (N), open the BlenderMCP tab and click Start MCP Server
After the first install, use
deploy.pyto push addon updates in one command:.venv/Scripts/python.exe deploy.pyEdit the destination path in
deploy.pyto match your Blender version.
3. Configure your AI client
Claude Code — create .mcp.json in your working directory:
{
"mcpServers": {
"blender": {
"type": "stdio",
"command": "/path/to/blender_mcp/.venv/Scripts/blender-mcp.exe"
}
}
}
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"]
}
}
}
Cursor — add to .cursor/mcp.json:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"]
}
}
}
Usage
Once the addon is running and the MCP server is configured, ask Claude to:
- "Create a low-poly dungeon scene with a dragon guarding a pot of gold"
- "Set up 3-point studio lighting and render from the active camera"
- "Add a Subdivision Surface modifier to the selected object and apply a PBR material"
- "Capture viewport angles from front, side, and top and give me a contact sheet"
- "Boolean-subtract the sphere from the cube"
- "Download a rock model from PolyHaven and place it at the origin"
- "Generate a 3D model of a garden gnome via Hyper3D"
- "Render depth map of the current scene"
- "Keyframe this object moving from (0,0,0) to (5,0,0) over 60 frames"
- "Compare these two renders and show me exactly what changed" →
diff_images(path_a, path_b)
Environment variables
| Variable | Default | Description |
|---|---|---|
BLENDER_HOST |
localhost |
Host for the Blender TCP socket |
BLENDER_PORT |
9876 |
Port for the Blender TCP socket |
IMG_TO_3D_PORT |
7862 |
Port for the local TripoSR server |
IMG_TO_3D_MODEL_DIR |
stabilityai/TripoSR |
Local weights path or HuggingFace hub ID |
IMG_TO_3D_DEVICE |
auto | cuda or cpu |
Dependencies
| Package | Version | Purpose |
|---|---|---|
mcp[cli] |
≥1.3.0 | MCP server framework |
pillow |
≥10.0.0 | Image processing (viewport capture, contact sheets, diff) |
numpy |
≥1.24.0 | Pixel math for diff_images |
flask |
≥3.0.0 | Local TripoSR inference server |
requests |
≥2.31.0 | PolyHaven / Sketchfab / Hyper3D API calls |
Architecture
Claude / AI client
│ MCP (stdio)
▼
server.py (FastMCP, @mcp.tool functions)
│ JSON over TCP :9876
▼
addon.py (Blender Python addon, bpy.app.timers dispatch)
│
▼
Blender scene
- All addon handlers run on Blender's main thread via
bpy.app.timers.register()— no threading issues - Commands are JSON
{ "type": "...", "params": {...} }, responses are{ "status": "success"|"error", "result": ... }
Troubleshooting
- "context is incorrect" on view3d operators — requires Blender 4.x
temp_override(area=area, region=region). Already fixed in this fork. - BLENDER_EEVEE enum not found — use
BLENDER_EEVEE_NEXTin Blender 4.x. Already normalized in this fork. - Render writes nothing after depth map — compositor state corruption from empty node tree. Fixed in this fork via full snapshot/restore in
render_depth_map. execute_blender_coderuns arbitrary Python in Blender — powerful but irreversible. Save your work first.- Connection issues — ensure the addon server is running (green dot in the BlenderMCP sidebar tab) before sending commands.
License
MIT — see LICENSE.
Based on ahujasid/blender-mcp by Siddharth Ahuja.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。