Server Β· #359 trending MCP repo Β· β +1 stars this week
Blender MCP
carlosh7/blender-mcp
The most complete MCP server for Blender π§ β 223 tools so any AI agent (Claude Code, Cursor, opencode, Antigravity) can model, texture, light, animate & render 3D scenes by natural language. Windows/macOS/Linux.
- Stars
- 18
- This week
- +1
- Forks
- 2
- Open issues
- 3
- Latest release
v3.1.0
Get started
Add it to your agent
claude mcp add blender -- blender-mcp-serverRun in your terminal. Add --scope project to share it with your team through .mcp.json.
codex mcp add blender -- uvx blender-mcp-ultraSaved to ~/.codex/config.toml.
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": [
"blender-mcp-ultra"
]
}
}
}Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
{
"servers": {
"blender": {
"type": "stdio",
"command": "uvx",
"args": [
"blender-mcp-ultra"
]
}
}
}Add to .vscode/mcp.json, then start it from the MCP view in Copilot Chat.
gemini mcp add blender uvx blender-mcp-ultraSaved to .gemini/settings.json.
Documentation
README
blender-mcp-ultra
The most complete MCP server for Blender β control Blender with natural language from any AI agent: Claude Code, Claude Desktop, Cursor, opencode, Windsurf, Antigravity, LM Studio, Ollama and any Model Context Protocol (MCP) client.
239 tools Β· Windows / macOS / Linux Β· headless-ready Β· production-grade security

Scene above: 100% created and rendered by an AI agent through this MCP server β no manual modeling.
Gallery β what agents build with it
| PBR materials | Geometry Nodes | Physics |
|---|---|---|
![]() |
![]() |
![]() |
material_pbr + 3-point lighting |
geonodes scatter + noise terrain |
rigid body + baked simulation |
Every image above was generated end-to-end through MCP tools β scene setup, materials, lighting, camera framing, simulation and final Cycles render.
What is it?
blender-mcp-ultra connects Blender (the free open-source 3D suite) to LLM agents through the Model Context Protocol. Ask your AI assistant to model, texture, light, animate, simulate and render 3D scenes β it executes through 248 typed tools instead of fragile screenshot-guessing.
You: "Create a wooden table with a coffee mug on it and render it in Cycles"
Claude: β object.create, mesh ops, material PBR wood, light.three_point,
camera.set_framing, render.render β escena.png
Highlights
- π§° 248 MCP tools (7 base + 241 registry, incl. built-in workflow guidance) β modeling, materials, shader nodes, geometry nodes, lighting, cameras, animation, physics, compositor, UV, rigging, 3D printing, export (FBX/OBJ/glTF/STL), batch, VLM visual feedback, multi-agent collab, scene planner
- π₯οΈ Any MCP client β stdio (Claude Code/Desktop, Cursor, opencode, VS Code, Windsurf), SSE/HTTP (Antigravity, remote), REST
- π§ VLM feedback loop β the agent sees its renders (EEVEE headless capture) and iterates
- π Security-first β AST code blocklist validated in gateway and addon, mandatory auth token (auto-generated), localhost-only binding, rate limiting, 0 secrets in history (gitleaks)
- π€ Multi-provider β OpenAI, Anthropic, Google, DeepSeek, Ollama (local)
- π¦ Asset integrations β PolyHaven, Sketchfab, AmbientCG, Hyper3D
- π Headless CI β real E2E tests against Blender in GitHub Actions (Linux + Windows + macOS)
- π§ͺ 479 tests passed Β· ruff Β· bandit Β· pip-audit clean
Quick Start
1. Install the Blender addon
Download blender_mcp_ultra.zip β Blender β Edit > Preferences > Add-ons > Installβ¦ β enable blender-mcp-ultra β click Connect in the N-panel.
Or install from this repo (Blender 4.2+/5.x):
git clone https://github.com/carlosh7/blender-mcp.git
cd blender-mcp
pip install -e .
2. Connect your AI client
Install the gateway (provides the blender-mcp-server command). Startup order doesn't matter: all tools register even if Blender is closed and work as soon as you open it.
pip install blender-mcp-ultra
Claude Code
claude mcp add blender -- blender-mcp-server
# o, desde un checkout del repo:
claude mcp add blender -- python /ruta/a/blender-mcp/mcp_server.py
Claude Desktop / Cursor / Windsurf / VS Code (mcp.json)
{
"mcpServers": {
"blender": {
"command": "blender-mcp-server"
}
}
}
More: docs/clients/claude-desktop.md Β· cursor.md Β· vscode.md
opencode
python mcp_server.py # el addon auto-escribe ~/.config/opencode/mcp.json
More: docs/clients/opencode.md
Antigravity / clientes HTTP / remoto
python mcp_server.py --sse # SSE en :9879 (MCP_SSE_HOST para exponer)
# REST local: http://localhost:9877 (mismo token que el socket: ~/.config/blender-mcp/socket_token)
# Docker:
docker build -t blender-mcp-gateway . && docker run -p 9879:9879 blender-mcp-gateway
3. Ask your agent
"Modela una silla de madera con biselado y material PBR, ilumina en 3 puntos y renderiza"
Tools (248)
| Category | Examples |
|---|---|
| Scene | scene.get_info, scene.create, scene.render_settings, scene.query |
| Objects & Mesh | object.create/transform/join, mesh.get_topology, mesh.bevel_edges, mesh.extrude_faces |
| Materials & PBR | material_create, material_pbr (wood/metal/fabric/leather/stone/glassβ¦), material_assign |
| Shader / Geo Nodes | shader.add_node/connect_nodes, geonodes.scatter/array/create_group |
| Lights & Camera | light.three_point, light_create, camera.track_to, camera.set_framing |
| Animation | animation.set_keyframe, animation_get_fcurves, NLA, drivers, shape keys |
| Physics | rigid body, cloth, soft body, particles, force fields, constraints, baking |
| Render | Cycles/EEVEE settings, render_render, render_viewport, filmic, jobs con progreso |
| I/O & Export | FBX, OBJ, glTF, STL + export_for_target (game/web/print/film), LODs, colisiones |
| UV & Texture | smart UV project, unwrap, bake, textures |
| Rigging | armatures, bones, constraints, vertex groups, auto weights |
| 3D Printing | manifold/watertight checks, scale to mm, dimensions |
| Batch & Perf | batch rename/materials/modifiers, turntable, LODs, memory report |
| VLM Feedback | vlm_capture, vlm_analyze, composition & lighting checks |
| Collab & Planner | locks por objeto, mensajes entre agentes, tareas, plan_create/execute |
| Versioning & Docs | vc_snapshot/restore, docs_scene, eventos poll_events |
Full reference generated from the live registry: docs_scene tool Β· skills/recetas en docs/skills/.
Security
| Layer | Mechanism |
|---|---|
| Transport | localhost-only sockets + shared auth token (auto-generated; X-API-Token on HTTP) |
| Code execution | AST blocklist (code_guard, ~80 patterns) in gateway and addon + 10s timeout + auto-undo |
| Input | rate limit (30 req/min) and 1 MB body cap on the HTTP API |
| Audit | structured JSON logs with rotation |
| Supply chain | gitleaks (full history) + bandit + pip-audit in CI |
Run trusted agents only β executing Blender Python on the agent's behalf is the product.
Architecture
AI Agent (Claude/Cursor/β¦) ββMCP stdio/SSEβββΆ mcp_server.py (gateway, 248 tools)
β socket :9876 (localhost + token)
βΌ
Blender + addon blender-mcp-ultra
(handlers, validators, PBR, physicsβ¦)
mcp_ultra/ # hexagonal: core / adapters / infrastructure / presentation / tools
addon/ # Blender addon: socket server, handlers, PBR factory, anti-blockout
docs/ # client guides, skills recipes, tutorials
tests/ # 479 tests (unit + integration + e2e headless)
Testing
pytest tests/unit -q # sin Blender
pytest -q # completo (requiere Blender con el addon conectado)
CI ejecuta la suite completa contra Blender headless en cada push (Linux, Windows, macOS).
FAQ
Does it work with ChatGPT / Gemini? Any client that speaks MCP works. For providers without MCP support, the bundled REST API (:9877) accepts plain HTTP.
Does Blender need to be open? Yes for interactive work (it drives the real Blender). CI/headless render jobs run with blender -b β see docs/skills/headless_ci.md.
Is it safe? The agent can execute Blender Python β that's the product. Execution is sandboxed, validated by AST, rate-limited and bound to localhost with token auth. Run trusted agents only.
Blender versions? 4.2+ (LTS) and 5.x. Python 3.10+ for the gateway.
Contributing
PRs welcome β read CONTRIBUTING.md. Docs: GUIDE.md Β· ARCHITECTURE.md Β· CHANGELOG.md
License
MIT β see LICENSE.
Releases


