Blender MCP
Provides tools to control Blender 5.2 LTS directly from MCP clients, including scene and object management, material and modifier handling, rendering, viewport capture, and executing arbitrary bpy Python code.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Blender MCPCreate a cube, scale it to 2x, and assign a blue metallic material."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blender MCP — Streamable-HTTP bridge for Blender 5.2 LTS
A Model Context Protocol bridge that lets any MCP client (Antigravity, Cursor, Claude Desktop, VS Code 1.101+, MiniMax Code, Windsurf, Continue, Cline, OpenCode, Codex, MCP Inspector, …) drive Blender 5.2 LTS through natural language.
The add-on runs an MCP Streamable-HTTP server inside Blender on a background thread. The client just points at it — no subprocess is spawned, no socket pair to babysit.
Why this shape
Single install path inside Blender. The MCP server runs in-process using
bpy, so there's nouvx/pipxdance and no socket pair to keep in sync.Streamable HTTP on localhost. Works with every modern MCP client.
Hand-rolled MCP server in the add-on. Blender 5.2 LTS bundles Python 3.13 with no external packages by default. A ~300-line MCP server is more portable than dragging in
mcp[cli]and editingsys.path.Client-agnostic. No proprietary plugin format. Any MCP client that can hit an HTTP endpoint (or a stdio proxy that does) works.
Related MCP server: Blender MCP VXAI
Project layout
blender_addon_mcp/
├── README.md ← you are here
├── LICENSE ← MIT
├── pyproject.toml ← dev tooling for the add-on (ruff, mypy, pytest)
├── .gitignore
├── addon/
│ └── blender_mcp_addon/ ← zips into a Blender-installable .zip
│ ├── __init__.py ← bl_info, register/unregister, preferences
│ ├── server/
│ │ ├── __init__.py
│ │ ├── mcp_server.py ← MCP protocol (initialize, tools/list, tools/call, ping)
│ │ ├── transport.py ← stdlib http.server, runs on a daemon thread
│ │ └── protocol.py ← JSON-RPC 2.0 + MCP 2025-03-26 types
│ ├── tools/
│ │ ├── __init__.py ← tool registry
│ │ ├── scene.py ← scene_info, frame control
│ │ ├── objects.py ← list, get, create, delete, transform
│ │ ├── materials.py ← create, assign, modify
│ │ ├── modifiers.py ← add, set params, remove
│ │ ├── render.py ← render_image, screenshot_viewport
│ │ └── code.py ← execute_python (with confirmation)
│ └── utils/
│ ├── __init__.py
│ ├── bpy_helpers.py ← bpy → JSON serialization
│ └── safe_eval.py ← ast-validated code execution
├── scripts/
│ ├── install_addon.ps1 ← zip and install into Blender
│ ├── blender_mcp_proxy.js ← optional stdio/socket ↔ HTTP bridge for
│ │ Antigravity builds that don't accept `url`
│ └── start_blender_mcp_bridge.ps1 ← start/stop/status lifecycle for the bridge
├── examples/
│ ├── mcp-configs.md ← copy-paste configs for every major MCP client
│ ├── basic_scene.md
│ ├── material_setup.md
│ └── render_workflow.md
└── docs/
├── architecture.md
├── blender_5_2_notes.md
└── tools_reference.mdQuickstart
1. Install the add-on
# clone
git clone https://github.com/tattooinmtl/Blender_MCP.git
cd Blender_MCP
# install the add-on into every Blender version on this machine
pwsh ./scripts/install_addon.ps12. Enable the server in Blender
Open Blender.
Edit → Preferences → Add-ons → search "Blender MCP" → check the box.
Set the port (default
8765) and click Start Server (or use the Blender MCP panel in the 3D Viewport sidebar).The console should print:
[Blender MCP] Server listening on http://127.0.0.1:8765/mcp
3. Wire up your MCP client
Pick the client you use and paste the matching snippet from
examples/mcp-configs.md. The Antigravity
url form is the simplest:
{
"mcpServers": {
"blender": { "url": "http://127.0.0.1:8765/mcp" }
}
}Snippets for Cursor, Claude Desktop, VS Code, MiniMax Code, Windsurf, Continue, Cline, and the MCP Inspector are all in that file.
4. Verify
In any MCP client chat:
Use the blender server: ping.
You should see the agent call tools/call on ping and report an empty
successful result. From a terminal:
curl -s -X POST http://127.0.0.1:8765/mcp `
-H "Content-Type: application/json" `
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'BlenderMCP Dominator Bundle
This repository also ships the full DomiNations/OpenCivilizations project nested inside the add-on as blender_mcp_addon/dominator/.
Additional tools:
Tool | Purpose |
| Verify add-on, bundle, MCP endpoint, Node/npm, MongoDB, Redis |
| Configure a Dominator render scene |
| Build a procedural unit (e.g. |
| Build a procedural building ( |
| Render the scene to PNG |
| List unit builders |
| List building builders |
| Apply a nation material palette |
Tools exposed
Tool | Purpose | Read-only |
| Capability handshake — name, version, protocol, tools list. Call this first. | yes |
| Scene summary (objects, lights, cameras, frame) | yes |
| List scene objects, optional type filter | yes |
| Full object details (location, rotation, scale, modifiers, materials) | yes |
| Create primitive (cube, sphere, plane, cylinder, cone, torus, empty, camera, light) | no |
| Delete an object by name | no |
| Set location/rotation/scale | no |
| Create or assign a material with a Principled BSDF | no |
| Apply an image file to a material input (base_color, roughness, normal, etc.) | no |
| Import GLB/GLTF/FBX/OBJ/STL/PLY/DAE/USD/X3D/ABC | no |
| Add a modifier (subdivision, mirror, solidify, array, bevel) | no |
| Remove a modifier by name | no |
| Read / move the timeline | mixed |
| Render the current frame to a file | no |
| Capture the current viewport | no |
| Run arbitrary | no |
| Health check | yes |
See docs/tools_reference.md for the full schema
and examples.
Development
# syntax-check the add-on (Blender's Python is at <blender>/python/bin/python.exe)
python -m py_compile addon/blender_mcp_addon/__init__.py
python -m py_compile addon/blender_mcp_addon/server/mcp_server.py
# ...etc
# lint
ruff check addon/
mypy addon/
# test the MCP server in isolation (no bpy required)
pytest addon/tests/ -vLicense
MIT. See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTransforms Blender into an MCP server with 50+ tools for AI-driven 3D workflows, enabling complete control over objects, materials, animations, physics simulations, and rendering through natural language commands.45MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language control of Blender 3D through MCP clients, allowing creation, modification, and manipulation of 3D models, animations, and scenes.299MIT
- AlicenseCqualityAmaintenanceEnables AI-powered control of Blender through natural language, allowing users to create, manipulate, and automate 3D scenes, objects, materials, animations, and more via Claude or other MCP clients.7133MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to control Blender via MCP tools for scene manipulation, material assignment, rendering, and Python script execution.22MIT
Related MCP Connectors
Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
MCP server for Google Veo AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tattooinmtl/BlenderMCP_Dominator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server