Skip to main content
Glama
kjanat

BlenderMCP

by kjanat
README.md
# BlenderMCP - Blender Model Context Protocol Integration

BlenderMCP connects Blender to Claude AI through the Model Context Protocol
(MCP), allowing Claude to directly interact with and control Blender. This
integration enables prompt assisted 3D modeling, scene creation, and
manipulation.

**We have no official website. Any website you see online is unofficial and has
no affiliation with this project. Use them at your own risk.**

[![BlenderMCP Demo][Full Tutorial:thumb]][Full Tutorial]

[Full Tutorial:thumb]: https://img.youtube.com/vi/lCyQ717DuzQ/maxresdefault.jpg
[Full Tutorial]: https://www.youtube.com/watch?v=lCyQ717DuzQ "Create 3D with Claude AI with Blender MCP - Full 26-min Tutorial"

## Release notes (1.4.0)

- Added Hunyuan3D support

### Previously added features

- View screenshots for Blender viewport to better understand the scene
- Search and download Sketchfab models
- Support for Poly Haven assets through their API
- Support to generate 3D models using Hyper3D Rodin
- Run Blender MCP on a remote host
- Telemetry for tools executed (completely anonymous)

### Installating a new version (existing users)

- For newcomers, you can go straight to Installation. For existing users, see
  the points below
- Download the latest [`blender_mcp.py`](blender_mcp.py) file and replace the older one,
  then add it to Blender
- Delete the MCP server from Claude and add it back again, and you should be
  good to go!

## Features

- **Two-way communication**: Connect Claude AI to Blender through a socket-based
  server
- **Object manipulation**: Create, modify, and delete 3D objects in Blender
- **Material control**: Apply and modify materials and colors
- **Scene inspection**: Get detailed information about the current Blender scene
- **Code execution**: Run arbitrary Python code in Blender from Claude

## Components

The system consists of two main components:

1. **Blender Addon (`blender_mcp.py`)**: A Blender addon that creates a socket server
   within Blender to receive and execute commands
2. **MCP Server (`src/blender_mcp/server.py`)**: A Python server that implements
   the Model Context Protocol and connects to the Blender addon

## Installation

### Prerequisites

- Blender 3.0 or newer
- Python 3.11 or newer
- uv package manager:

<details>
<summary>install details</summary>

**If you're on Mac, please install uv as**

```bash
brew install uv
```

**On Windows**

```powershell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
```

and then add uv to the user path in Windows (you may need to restart Claude
Desktop after):

```powershell
$localBin = "$env:USERPROFILE\.local\bin"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$userPath;$localBin", "User")
```

Otherwise installation instructions are on their website:
[Install uv](https://docs.astral.sh/uv/getting-started/installation/)

</details>

**⚠️ Do not proceed before installing UV**

### Environment Variables

The following environment variables can be used to configure the Blender
connection:

- `BLENDER_HOST`: Host address for Blender socket server (default: "localhost")
- `BLENDER_PORT`: Port number for Blender socket server (default: 9876)

Example:

```bash
export BLENDER_HOST='host.docker.internal'
export BLENDER_PORT=9876
```

### Claude for Desktop Integration

![Setup instruction video][Setup instruction video:thumb]][Setup instruction video]

[Setup instruction video]: https://www.youtube.com/watch?v=neoK_WMq92g "Blender MCP: Setup Instructions"
[Setup instruction video:thumb]: https://img.youtube.com/vi/neoK_WMq92g/maxresdefault.jpg

Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json
to include the following:

```json
{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": ["blender-mcp"]
    }
  }
}
```

### Cursor integration

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=blender&config=eyJjb21tYW5kIjoidXZ4IGJsZW5kZXItbWNwIn0%3D)

For Mac users, go to Settings > MCP and paste the following

- To use as a global server, use "add new global MCP server" button and paste
- To use as a project specific server, create `.cursor/mcp.json` in the root of
  the project and paste

```json
{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": ["blender-mcp"]
    }
  }
}
```

For Windows users, go to Settings > MCP > Add Server, add a new server with the
following settings:

```json
{
  "mcpServers": {
    "blender": {
      "command": "cmd",
      "args": ["/c", "uvx", "blender-mcp"]
    }
  }
}
```

[Cursor setup video](https://www.youtube.com/watch?v=wgWsJshecac)

**⚠️ Only run one instance of the MCP server (either on Cursor or Claude
Desktop), not both**

### Visual Studio Code Integration

_Prerequisites_: Make sure you have
[Visual Studio Code](https://code.visualstudio.com/) installed before
proceeding.

[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_blender--mcp_server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=ffffff)](vscode:mcp/install?%7B%22name%22%3A%22blender-mcp%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22blender-mcp%22%5D%7D)

### Installing the Blender Addon

1. Download the `blender_mcp.py` file from this repo
1. Open Blender
1. Go to Edit > Preferences > Add-ons
1. Click "Install..." and select the `blender_mcp.py` file
1. Enable the addon by checking the box next to "Interface: Blender MCP"

## Usage

### Starting the Connection

![BlenderMCP in the sidebar](assets/addon-instructions.png)

1. In Blender, go to the 3D View sidebar (press N if not visible)
2. Find the "BlenderMCP" tab
3. Turn on the Poly Haven checkbox if you want assets from their API (optional)
4. Click "Connect to Claude"
5. Make sure the MCP server is running in your terminal

#### Capabilities

- Get scene and object information
- Create, delete and modify shapes
- Apply or create materials for objects
- Execute any Python code in Blender
- Download the right models, assets and HDRIs through
  [Poly Haven](https://polyhaven.com/)
- AI generated 3D models through [Hyper3D Rodin](https://hyper3d.ai/)

### Example Commands

Here are some examples of what you can ask Claude to do:

- "Create a low poly scene in a dungeon, with a dragon guarding a pot of gold"
  [Demo](https://www.youtube.com/watch?v=DqgKuLYUv00)
- "Create a beach vibe using HDRIs, textures, and models like rocks and
  vegetation from Poly Haven"
  [Demo](https://www.youtube.com/watch?v=I29rn92gkC4)
- Give a reference image, and create a Blender scene out of it
  [Demo](https://www.youtube.com/watch?v=FDRb03XPiRo)
- "Generate a 3D model of a garden gnome through Hyper3D"
- "Get information about the current scene, and make a threejs sketch from it"
  [Demo](https://www.youtube.com/watch?v=jxbNI5L7AH8)
- "Make this car red and metallic"
- "Create a sphere and place it above the cube"
- "Make the lighting like a studio"
- "Point the camera at the scene, and make it isometric"

## Hyper3D integration

Hyper3D's free trial key allows you to generate a limited number of models per
day. If the daily limit is reached, you can wait for the next day's reset or
obtain your own key from hyper3d.ai and fal.ai.

## Troubleshooting

- **Connection issues**: Make sure the Blender addon server is running, and the
  MCP server is configured on Claude, DO NOT run the uvx command in the
  terminal. Sometimes, the first command won't go through but after that it
  starts working.
- **Timeout errors**: Try simplifying your requests or breaking them into
  smaller steps
- **Poly Haven integration**: Claude is sometimes erratic with its behaviour
- **Have you tried turning it off and on again?**: If you're still having
  connection errors, try restarting both Claude and the Blender server

## Technical Details

### Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

- **Commands** are sent as JSON objects with a `type` and optional `params`
- **Responses** are JSON objects with a `status` and `result` or `message`

## Limitations & Security Considerations

- The `execute_blender_code` tool allows running arbitrary Python code in
  Blender, which can be powerful but potentially dangerous. Use with caution in
  production environments. ALWAYS save your work before using it.
- Poly Haven requires downloading models, textures, and HDRI images. If you do
  not want to use it, please turn it off in the checkbox in Blender.
- Complex operations might need to be broken down into smaller steps

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Disclaimer

This is a third-party integration and not made by Blender. Made by
[Siddharth](https://x.com/sidahuj)

<!-- markdownlint-configure-file { "MD013": false, "MD033": false, "MD036": false } -->

TDQS

A4.1/5.0

Scored across 21 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions. However, `import_generated_asset` and `import_generated_asset_hunyuan` could be confused since the former doesn't specify the provider in its name, and `generate_hunyuan3d_model` vs `generate_hyper3d_model_via_text` have similar generation workflows.

Naming Consistency4/5

All tools follow a consistent verb_noun pattern (e.g., get_, search_, download_, generate_, poll_, import_). Minor inconsistencies exist in product naming: some use 'hunyuan3d' vs 'hunyuan', and 'hyper3d' vs 'rodin', but the overall pattern is stable and readable.

Tool Count4/5

With 21 tools, the server is slightly heavy, but the count is justified by the wide scope: scene inspection, code execution, three asset libraries (Polyhaven, Sketchfab), and two AI generation pipelines (Hunyuan3D, Hyper3D). Each tool serves a distinct purpose, so it remains reasonable.

Completeness5/5

The tool set covers complete workflows: scene info, object info, screenshots, a code execution escape hatch, full Polyhaven and Sketchfab lifecycle (search/download/apply), and generation pipelines with status polling and import for both Hunyuan3D and Hyper3D. No significant gaps are apparent.

Maintenance

ActivityInactive
ResponsivenessNo issues