A comprehensive guide to connecting Blender with AI through the Model Context Protocol, from first install to your first 3D scenes created with natural language.
- What Is Blender MCP?
- Prerequisites
- Part 1 — Install
uv(the Package Manager) - Part 2 — Install the Blender Addon
- Part 3 — Configure Your MCP Client
- Part 4 — Connect Everything
- Part 5 — Troubleshooting Common Issues
- Part 6 — Your First Examples
- Part 7 — Tips for Effective Prompting
- Part 8 — Available MCP Tools Reference
- Part 9 — Advanced Workflows
- Part 10 — Using Blender MCP with Local LLMs (Free Alternative)
- Quick-Start Checklist (Claude Desktop)
- Resources
Blender MCP (by Siddharth Ahuja — github.com/ahujasid/blender-mcp) is an open-source bridge that connects Blender to AI assistants like Claude through the Model Context Protocol (MCP). Instead of manually modeling in Blender, you describe what you want in plain English and the AI generates and executes the Blender Python code for you in real time.
What it can do:
- Create, modify, and delete 3D objects via natural language
- Apply and modify materials, colors, and textures
- Inspect and query the current scene
- Execute arbitrary Python code in Blender
- Download assets from Poly Haven (HDRIs, textures, 3D models)
- Generate 3D models via Hyper3D integration
How it works (architecture):
You (in Claude / Cursor / VS Code)
↓ natural language
MCP Client (Claude Desktop, Cursor, etc.)
↓ MCP protocol
MCP Server (blender-mcp, Python)
↓ TCP socket (port 9876)
Blender Addon (addon.py, running inside Blender)
↓ bpy Python API
Blender (creates/modifies the scene)
The addon runs a socket server inside Blender. The MCP server translates AI tool calls into JSON commands and sends them over TCP. Commands execute via Blender's Python API (bpy).
Before you start, make sure you have:
| Requirement | Details |
|---|---|
| Blender | Version 3.0 or newer (3.6+ recommended for full compatibility) |
| Python | Version 3.10 or newer (usually already on your system) |
| uv | The fast Python package manager (provides the uvx command) |
| MCP Client | Claude Desktop, Cursor IDE, or VS Code |
| AI Backend | Claude subscription (paid) OR Ollama with a local model (free) — see Part 10 |
uv is a fast Python package manager made by Astral. It provides the uvx command which launches the MCP server on demand. You must install this before proceeding.
Using Homebrew:
brew install uvOr using the install script:
curl -LsSf https://astral.sh/uv/install.sh | shOpen PowerShell and run:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Then add it to your PATH:
$localBin = "$env:USERPROFILE\.local\bin"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$userPath;$localBin", "User")Important: Close and reopen your terminal after this step.
curl -LsSf https://astral.sh/uv/install.sh | shuvx --versionIf you see a version number, you're ready to proceed.
The addon is a single Python file (addon.py) that creates a TCP socket server inside Blender.
-
Download
addon.pyfrom the GitHub repository:- Go to github.com/ahujasid/blender-mcp
- Download the
addon.pyfile (click it → Raw → Save As), or clone the whole repo:git clone https://github.com/ahujasid/blender-mcp.git
-
Open Blender
-
Install the addon:
- Go to Edit → Preferences → Add-ons
- Click "Install..." (or "Install from Disk" in Blender 4.x)
- Navigate to and select the
addon.pyfile - Enable the addon by checking the box next to "Interface: Blender MCP"
-
Verify it's working:
- In the 3D Viewport, press
Nto open the sidebar - Look for the "BlenderMCP" tab
- You should see connection options and a "Start MCP Server" or "Connect" button
- In the 3D Viewport, press
By default, the addon collects anonymized usage data. You can disable this:
- In Blender: Edit → Preferences → Add-ons → Blender MCP → uncheck the telemetry consent checkbox
- Or via environment variable (see the Claude Desktop config section below)
Pick the client you want to use. The three main options are Claude Desktop, Cursor, and VS Code.
This is the most common setup.
- Open Claude Desktop
- Go to Settings → Developer → Edit Config
- This opens the file
claude_desktop_config.json. Add the following:
macOS / Linux:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": [
"blender-mcp"
]
}
}
}Windows:
{
"mcpServers": {
"blender": {
"command": "cmd",
"args": [
"/c",
"uvx",
"blender-mcp"
]
}
}
}To disable telemetry, add an env block:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"],
"env": {
"DISABLE_TELEMETRY": "true"
}
}
}
}- Save the file and restart Claude Desktop
- Open Cursor
- Go to Settings → MCP → Add Server
- Paste the same JSON configuration as above (use the Windows variant if on Windows)
- Save and restart Cursor
- Make sure you have the MCP extension installed
- VS Code supports a one-click install badge from the GitHub repo, or you can configure manually
- The configuration follows the same JSON pattern as above
Now that both pieces are installed, here's the connection sequence:
- Open Blender
- Press
Nto open the sidebar in the 3D Viewport - Click the "BlenderMCP" tab
- Click "Connect to Claude" (or "Start MCP Server")
- The addon will start listening on port 9876 by default
- Open Claude Desktop (or Cursor/VS Code)
- If configured correctly, you should see a hammer icon (🔨) indicating MCP tools are available
- The tools exposed include:
get_scene_info,create_object,modify_object,set_material,execute_blender_code, and more
In Claude, try a simple prompt:
"Get information about the current Blender scene"
If Claude responds with details about your scene (the default cube, camera, light), the connection is working.
| Problem | Solution |
|---|---|
| Connection errors | Make sure the Blender addon server is running first, then open Claude. Do NOT run uvx blender-mcp manually in a terminal — Claude handles that. |
| First command fails | This is a known quirk. The first command sometimes times out, but subsequent ones work fine. Just try again. |
| Timeout errors | Break complex requests into smaller, simpler steps. |
| No hammer icon in Claude | Restart Claude Desktop completely. Verify the JSON config file has no syntax errors. |
| Windows PATH issues | Make sure uvx is on your system PATH. Open a new terminal and run uvx --version to verify. |
| Port conflict | If something else is using port 9876, you can change it in the addon settings and the server config. |
| Firewall blocking | On Windows, add Blender and your MCP client to the Windows Defender exception list. |
General tip: If all else fails, restart both Blender (toggle the addon off/on, reconnect) and your MCP client.
Now for the fun part. Below are practical examples, ordered from simple to complex.
Prompt to Claude:
"Create a red sphere at the origin"
What happens behind the scenes: Claude calls create_object with type SPHERE, then calls set_material to apply a red diffuse material.
Try these variations:
- "Create a blue cube at position (2, 0, 0)"
- "Add a green cylinder with radius 0.5 and height 3 at location (0, 3, 0)"
- "Create a torus and make it gold metallic"
Prompt:
"Create a simple table with four legs. The tabletop should be a flattened cube and the legs should be thin cylinders. Make the table brown wood-colored."
Claude will typically break this down into multiple operations: creating the tabletop as a scaled cube, positioning four cylinder legs beneath it, and applying a brown material.
Prompt:
"What objects are currently in the scene? Delete the default cube and move the camera closer to the origin."
Claude uses get_scene_info first, then execute_blender_code to delete objects and reposition the camera.
Prompt:
"Add a plane below all objects as a floor. Make it a dark gray matte material. Then add a second point light with warm yellow color above the scene."
Prompt:
"Create a low-poly landscape scene with:
- A green terrain plane with some simple hills
- Three low-poly pine trees at different positions
- A small blue pond
- Set the background to a light blue sky color"
This is where Blender MCP really shines — it will generate multiple objects, shape them with vertex manipulation, and compose a full scene.
Make sure the Poly Haven checkbox is enabled in the Blender MCP addon settings.
Prompt:
"Create a beach vibe scene using HDRIs, textures, and models like rocks and vegetation from Poly Haven"
Claude will download environment maps, textures, and 3D models from Poly Haven's free library and integrate them into your scene.
The real power of Blender MCP is the conversational loop. Start simple and refine:
- "Create a basic house shape — a cube for the body, a triangular prism for the roof"
- "Make the walls beige and the roof dark red"
- "Add a door on the front face — a dark brown rectangle"
- "Add two windows on the front, one on each side of the door"
- "Add a chimney on the roof"
- "Place the house on a green ground plane"
Each prompt builds on the previous scene state.
Getting great results from Blender MCP is partly about how you phrase your requests.
Be specific about dimensions and positions. "Create a cube at (2, 0, 1) with scale (0.5, 0.5, 2)" works better than "create a tall thin box somewhere to the right."
Break complex tasks into steps. Instead of "create a fully furnished room," start with the room, then add furniture piece by piece. Claude handles step-by-step instructions much more reliably than monolithic requests.
Reference existing objects by name. After creating objects, you can say "move the Table_Top up by 0.5 units" or "change the color of Sphere.001 to blue." Use get_scene_info to see what's in your scene.
Use descriptive material language. "Glossy metallic gold," "matte concrete gray," "translucent glass with slight blue tint" — Claude translates these into appropriate Blender shader node setups.
Ask Claude to execute Python directly when needed. For complex operations, you can say "execute Python code in Blender to select all objects and apply a subdivision surface modifier with 2 levels."
Save your work frequently. The execute_blender_code tool can run arbitrary Python — powerful but potentially destructive. Save your .blend file before experimenting with complex operations.
When connected, Claude has access to these tools:
| Tool | Purpose |
|---|---|
get_scene_info |
Returns detailed information about all objects, materials, lights, and cameras in the current scene |
create_object |
Creates a new mesh primitive (cube, sphere, cylinder, plane, torus, cone, etc.) at a specified location with optional scale |
modify_object |
Changes properties of an existing object (location, rotation, scale, visibility) |
set_material |
Creates or modifies materials on objects (color, metallic, roughness, etc.) |
delete_object |
Removes an object from the scene |
execute_blender_code |
Runs arbitrary Python code inside Blender — the most powerful and flexible tool |
get_polyhaven_status |
Checks if Poly Haven integration is enabled |
search_polyhaven_assets |
Searches the Poly Haven library for HDRIs, textures, or 3D models |
download_polyhaven_asset |
Downloads and applies a Poly Haven asset to the scene |
The execute_blender_code tool is especially powerful because it lets Claude write and run any valid Blender Python script, enabling operations like adding modifiers, keyframing animations, adjusting render settings, UV mapping, and anything else the bpy API supports.
You can run multiple MCP servers simultaneously. For example, combining Blender MCP with a "sequential thinking" server can help Claude plan complex modeling tasks step by step before executing them.
If your MCP client supports image input, you can share a reference image and ask Claude to recreate it in Blender. For example: "Here's a photo of a cozy cabin. Recreate this scene in Blender using basic shapes."
Ask Claude to execute Python code to export your scene:
"Export the current scene as a GLTF file to my desktop"
Claude will write and execute the appropriate bpy.ops.export_scene command.
Claude is powerful but requires a paid subscription. The good news: you can run Blender MCP entirely for free using local models on your own hardware via Ollama. This section covers three approaches, with a full step-by-step walkthrough for the most recommended one.
| Approach | Cost | Hardware Needed | Quality | Setup Difficulty |
|---|---|---|---|---|
| Blender Open MCP + Ollama | Free | GPU with 8GB+ VRAM | Good | Medium |
| Original Blender MCP + Roo Code + Ollama | Free | GPU with 8GB+ VRAM | Good | Medium |
| Original Blender MCP + OpenRouter free models | Free | No GPU needed | Good–Very Good | Easy |
This is a dedicated fork (github.com/dhakalnirajan/blender-open-mcp) purpose-built for running Blender MCP with local models through Ollama. Everything runs on your machine — no cloud, no API keys, no cost.
Ollama is a tool that makes running LLMs locally as simple as pulling Docker images.
Windows:
- Go to ollama.com and download the Windows installer
- Run the installer — it sets up Ollama as a background service
- Verify it's running by opening PowerShell and typing:
ollama --versionmacOS:
brew install ollama
ollama serve # Start the service (runs on port 11434)Linux:
curl -fsSL https://ollama.com/install.sh | sh
ollama serveThis is the most important decision. The model must be good at tool calling (function calling) and Python code generation since it needs to write valid Blender Python scripts.
Recommended models by hardware:
| Your GPU VRAM | Recommended Model | Pull Command | Quality |
|---|---|---|---|
| 16GB+ (RTX 4080/4090, etc.) | Qwen 2.5 Coder 32B | ollama pull qwen2.5-coder:32b |
Excellent — closest to Claude |
| 10–16GB (RTX 3080/4070, etc.) | Qwen 2.5 Coder 14B | ollama pull qwen2.5-coder:14b |
Very good |
| 8–10GB (RTX 3070/4060, etc.) | Qwen 2.5 Coder 7B | ollama pull qwen2.5-coder:7b |
Good — best bang for buck |
| 6–8GB (RTX 3060, etc.) | Llama 3.2 3B | ollama pull llama3.2:3b |
Basic — simple tasks only |
The sweet spot for most people is Qwen 2.5 Coder 7B. Run:
ollama pull qwen2.5-coder:7bThis will download roughly 4.5 GB. Verify it's ready:
ollama listYou should see qwen2.5-coder:7b in the list.
Open PowerShell and run:
git clone https://github.com/dhakalnirajan/blender-open-mcp.git
cd blender-open-mcpIf you don't have Git, download the ZIP from GitHub and extract it.
You already have uv installed from the earlier setup. Use it to create an isolated environment:
uv venv
.venv\Scripts\activate
uv pip install -e .This installs the Blender Open MCP server and all its dependencies.
Important: This is a different addon from the original blender-mcp one. If you have the original addon enabled, disable it first to avoid conflicts.
- Open Blender
- Go to Edit → Preferences → Add-ons
- Click "Install..."
- Navigate to the
blender-open-mcpfolder you just cloned and selectaddon.py - Enable the addon by checking the box next to "Blender MCP"
The order matters. Follow this sequence:
1. Make sure Ollama is running:
ollama serveOn Windows, Ollama usually auto-starts as a service. You can verify by running ollama list — if it responds, it's running.
2. Start the Blender Open MCP server:
Open a new PowerShell window, navigate to your project folder, activate the environment, and start the server:
cd blender-open-mcp
.venv\Scripts\activate
blender-mcp --host 127.0.0.1 --port 8001 --ollama-url http://localhost:11434 --ollama-model qwen2.5-coder:7bReplace qwen2.5-coder:7b with whatever model you pulled.
3. Connect in Blender:
In Blender, press N to open the sidebar → click the "Blender MCP" tab → click "Start MCP Server"
4. Test it:
Use the MCP command-line tool or send a prompt through your connected client:
"Get information about the current scene"
If it returns your scene data, everything is connected.
Try these prompts:
- "Create a sphere at the origin"
- "Make it red with a glossy material"
- "Add a plane below it as a floor"
- "Add a point light above the scene"
If you want to keep using the original blender-mcp addon you already have installed and just swap the AI backend, this approach works well.
-
Install VS Code if you don't have it: code.visualstudio.com
-
Install the Roo Code extension from the VS Code marketplace (search "Roo Code")
-
Configure Roo Code to use Ollama:
- Open Roo Code settings in VS Code
- Select "Ollama" as the API provider
- Set the Base URL to
http://localhost:11434 - Enter your model name (e.g.,
qwen2.5-coder:7b)
-
Configure the MCP server in VS Code — add the blender-mcp server config just like you would for Claude Desktop
-
Start the addon in Blender (N panel → BlenderMCP → Connect)
-
Start prompting in the Roo Code chat interface in VS Code
This way you keep your existing Blender addon setup and just change which brain is driving it.
If your hardware can't handle running models locally, OpenRouter gives you access to free cloud-hosted models. This is a great middle ground — no subscription, no GPU requirement.
- Go to openrouter.ai and create a free account
- Generate an API key in your account settings
- Install VS Code + Roo Code extension (or use Cursor)
- Configure Roo Code with:
- API provider: OpenRouter
- API key: your OpenRouter key
- Model: pick a free model like
google/gemini-2.0-flash-thinking-exp:freeordeepseek/deepseek-r1-distill-llama-70b:free
- Add the blender-mcp server config to your VS Code/Cursor MCP settings
- Connect in Blender and start prompting
The advantage here is that models like Gemini Flash and DeepSeek R1 70B are significantly more capable than what most people can run locally, and they're free on OpenRouter.
For Blender MCP specifically, the model needs two critical skills: tool calling (understanding and responding to MCP tool schemas) and Blender Python code generation (writing valid bpy API calls). Not all models are equal here.
| Model | Size | Tool Calling | Code Quality | Best For |
|---|---|---|---|---|
| Qwen 2.5 Coder 32B | ~18 GB | Excellent | Excellent | Complex scenes, multi-step tasks |
| Qwen 2.5 Coder 14B | ~8 GB | Very Good | Very Good | Most tasks with good hardware |
| Qwen 2.5 Coder 7B | ~4.5 GB | Good | Good | Best quality-to-size ratio |
| Qwen3-Coder 35B | ~20 GB | Excellent | Excellent | Cutting edge, needs top hardware |
| Devstral Small | ~4 GB | Good | Good | Multi-step code tasks |
| Codestral 22B | ~12 GB | Good | Very Good | Fast prototyping |
| Llama 3.2 3B | ~2 GB | Basic | Basic | Very light hardware only |
General rule: Bigger models = better results but slower and more VRAM hungry. The Qwen 2.5 Coder family is currently the best for this use case because Alibaba specifically optimized them for tool calling and code generation.
Local models are less forgiving than Claude. Follow these tips to get the best experience:
Be extremely specific. Instead of "create a table," say "create a cube at (0, 0, 1) with scale (2, 1, 0.1) as the tabletop." Local models struggle with vague or creative instructions.
One step at a time. Never ask for a full scene in one prompt. Create one object, position it, then move on. Chain small successes together.
Use exact Blender terminology. Say "UV Sphere" not "ball." Say "Principled BSDF" not "shiny material." The closer your language matches Blender's API, the better the generated code.
Check and correct. Local models generate invalid code more often. If something fails, rephrase the request more simply or break it into smaller parts.
Start with the 7B model, upgrade if needed. The 7B Qwen Coder handles 80% of basic tasks well. Only invest in downloading a 32B model if you find the 7B too limiting for your workflow.
Keep Blender's console open. In Blender, go to Window → Toggle System Console (Windows) to see Python errors in real time. This helps you understand what went wrong and rephrase your prompt.
- Install Ollama from ollama.com
- Verify:
ollama --versionreturns a version number - Pull a model:
ollama pull qwen2.5-coder:7b - Verify:
ollama listshows the model - Clone blender-open-mcp:
git clone https://github.com/dhakalnirajan/blender-open-mcp.git - Set up the environment:
uv venv→ activate →uv pip install -e . - Install the blender-open-mcp addon in Blender (not the original one)
- Start Ollama (
ollama serveor verify it's running) - Start the server:
blender-mcp --host 127.0.0.1 --port 8001 --ollama-url http://localhost:11434 --ollama-model qwen2.5-coder:7b - In Blender: Press N → BlenderMCP tab → Start MCP Server
- Test: Send "Get information about the current scene"
- Start creating!
Here's a summary of the Claude Desktop setup from Parts 1–4:
- Install Blender (3.6 or newer recommended)
- Install uv (
brew install uv/ PowerShell script / curl script) - Verify:
uvx --versionreturns a version number - Download addon.py from the GitHub repo
- In Blender: Edit → Preferences → Add-ons → Install → select
addon.py→ enable it - In Blender: Press N → BlenderMCP tab → click Connect
- Configure your MCP client (Claude Desktop / Cursor / VS Code) with the JSON config
- On Windows: use the full path to
uvx.exein the config (find it withGet-Command uvxin PowerShell) - Restart your MCP client
- Test: Start a new conversation and type "Get information about the current Blender scene"
- Create your first object: "Create a red sphere at the origin"
- Start building scenes and experimenting!
- Official Blender MCP: github.com/ahujasid/blender-mcp
- Blender Open MCP (local models): github.com/dhakalnirajan/blender-open-mcp
- Ollama: ollama.com
- OpenRouter (free cloud models): openrouter.ai
- Roo Code (VS Code extension): Search "Roo Code" in VS Code marketplace
- PyPI package: pypi.org/project/blender-mcp
- uv installer: docs.astral.sh/uv
- Claude Desktop: claude.ai
- Poly Haven (free assets): polyhaven.com
This tutorial was written on February 15, 2026, based on blender-mcp v1.5.x and blender-open-mcp. Check the respective GitHub repos for the latest updates and features.