blender-mcp
Control Blender from Claude (or any MCP-compatible AI) using the Model Context Protocol. BlenderMCP connects to your running Blender instance over a local TCP socket — your machine, your scenes, your assets.
Unlike existing Blender MCP projects that rely on execute_blender_code as a catch-all, this project provides dedicated, typed tools for every major Blender subsystem: objects, materials, shader nodes, geometry nodes, modifiers, animation, rigging, physics, compositing, and more.
Status
All 175 tools implemented and integration-tested against Blender 4.2.5 LTS. Full handler coverage across all 25 domains.
Requirements
Python 3.10+
uv (recommended) or pip
Blender 4.0+ (for the addon)
Quick Start
# Clone and install
git clone https://github.com/kleer001/blender-mcp
cd blender-mcp
uv sync
# Run with mock Blender (no Blender needed)
uv run blender-mcp --mock
# Run against a real Blender instance
uv run blender-mcpBlender Addon Setup
Copy the
blender_addon/directory to your Blender addons path, or symlink itEnable Blender MCP in Blender → Edit → Preferences → Add-ons
In the 3D Viewport sidebar (N panel), find the MCP tab and click Start Server
Start the MCP server:
uv run blender-mcp
Claude Code
The .mcp.json in the repo root auto-configures Claude Code. Just run claude from the project directory.
Claude Desktop
{
"mcpServers": {
"blender-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/blender-mcp", "blender-mcp"]
}
}
}Architecture
AI Client (Claude, Cursor, ChatGPT)
│ MCP Protocol (stdio)
▼
MCP Server (src/blendermcp/)
│ TCP Socket (localhost:9334)
▼
Blender Addon (blender_addon/)
│ bpy API (main thread via timer queue)
▼
BlenderMCP Server — FastMCP-based, runs as a separate process, communicates via stdio
Blender Addon — TCP server inside Blender, dispatches commands to handlers on the main thread via
bpy.app.timersConnection — JSON over TCP with newline framing, exponential backoff reconnection
Available Tools (175)
Domain | Count | Tools |
Scene | 6 |
|
Objects | 12 |
|
Materials | 8 |
|
Shader Nodes | 12 |
|
Geometry Nodes | 10 |
|
Modifiers | 8 |
|
Animation | 10 |
|
Rigging | 10 |
|
Constraints | 6 |
|
Lighting | 7 |
|
Camera | 6 |
|
Mesh Editing | 8 |
|
Curves | 5 |
|
Physics | 10 |
|
Particles | 6 |
|
Compositing | 8 |
|
Sculpting | 4 |
|
Grease Pencil | 6 |
|
Textures & UV | 6 |
|
Viewport | 6 |
|
Rendering | 6 |
|
Collections | 5 |
|
Import/Export | 4 |
|
Code Execution | 2 |
|
Batch Operations | 4 |
|
Development
# Install with dev dependencies
uv sync
# Run tests (unit, no Blender needed)
uv run pytest tests/ --ignore=tests/integration -v
# Run integration tests (requires Blender at /opt/blender-4.2/blender)
uv run pytest tests/integration/ -v -m integration
# Run with mock (no Blender needed)
uv run blender-mcp --mock --debug
# Lint
uv run ruff check src/ tests/License
MIT