Skip to main content
Glama

Blender MCP Server

A high-performance MCP (Model Context Protocol) server for controlling Blender 3D from AI agents like Claude Code.

Built with Rust + PyO3 for native Python integration.

Features

  • 27 MCP tools for scene manipulation, materials, modifiers, animation, rendering

  • HTTP transport - works with any MCP client

  • Native Blender addon with GUI controls

  • Thread-safe architecture using channels

  • execute_python escape hatch for arbitrary bpy code

Quick Start

1. Install the wheel to Blender Python

# Build
cd C:\projects\projects.rust\_mcp\blender-mcp-rs
maturin build --release

# Install to Blender 5.0
& "C:\Programs\Blender5\5.0\python\bin\python.exe" -m pip install target\wheels\blender_mcp-0.1.0-cp311-cp311-win_amd64.whl --force-reinstall

2. Enable the addon in Blender

The addon is symlinked to Blender's addons folder. Enable it in: Edit > Preferences > Add-ons > Search "MCP Server"

Or via Python console:

import bpy
bpy.ops.preferences.addon_enable(module="mcp_server")

3. Start the server

Via GUI: Topbar > MCP > Start Server

Via Python:

bpy.ops.mcp.start(port=8765)

4. Connect Claude Code

Add to your MCP settings:

{
  "mcpServers": {
    "blender": {
      "url": "http://127.0.0.1:8765/mcp"
    }
  }
}

Available Tools

Scene & Objects

Tool

Description

scene_info

Get scene metadata (name, fps, frame range, resolution)

list_objects

List objects with optional type/collection filter

get_object

Get object details (transform, type, mesh data)

create_primitive

Create mesh: cube, sphere, cylinder, plane, cone, torus

update_object

Set location, rotation, scale

delete_object

Remove object from scene

duplicate_object

Copy object with offset, optional linked

Selection & Hierarchy

Tool

Description

get_selection

Get selected objects and active object

set_selection

Select objects by name

parent_objects

Set parent-child relationships

get_collections

Get collection hierarchy

move_to_collection

Move object to collection

Materials

Tool

Description

list_materials

List all materials

create_material

Create Principled BSDF material

assign_material

Assign material to object

Modifiers

Tool

Description

get_modifiers

List modifiers on object

add_modifier

Add SUBSURF, MIRROR, ARRAY, BEVEL, BOOLEAN, etc.

apply_modifier

Apply modifier permanently

Animation

Tool

Description

set_keyframe

Insert keyframe on property

I/O & Rendering

Tool

Description

render_image

Render to file (CYCLES/EEVEE)

export_scene

Export FBX, OBJ, GLTF, USD

import_file

Import 3D files

save_file

Save .blend file

Utility

Tool

Description

set_mode

OBJECT, EDIT, SCULPT, VERTEX_PAINT, etc.

undo

Undo last action

redo

Redo

execute_python

Run arbitrary bpy code

Architecture

Claude Code  <--HTTP-->  BlenderMcp (Rust)  <--Channel-->  Python Polling
                         (MCP + axum)                      (bpy.app.timers)
                              |
                              v
                        Blender Python (bpy)
  • Rust thread runs tokio + axum HTTP server

  • Crossbeam channels pass commands/responses

  • Python timer polls for commands, executes bpy, returns results

  • Graceful shutdown - no hangs on stop

Development

Build

# Debug
maturin develop

# Release
maturin build --release

Test

# Standalone Python
& "C:\Programs\Blender5\5.0\python\bin\python.exe" -c "import blender_mcp; print(dir(blender_mcp))"

# Blender background
& "C:\Programs\Blender5\blender.exe" --background --python python\test_addon_server.py

Project Structure

blender-mcp-rs/
├── src/
│   ├── lib.rs          # PyO3 module, BlenderMcp class
│   ├── server.rs       # MCP server, tool definitions
│   ├── protocol.rs     # Command/Response types
│   └── error.rs        # Error handling
├── addon/
│   └── mcp_server/     # Blender addon (symlinked)
│       └── __init__.py
├── python/
│   └── test_*.py       # Test scripts
├── Cargo.toml
└── pyproject.toml

Requirements

  • Blender 4.0+ (tested on 5.0)

  • Rust 1.70+

  • Python 3.11 (Blender's bundled)

  • maturin

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/ssoj13/blender-mcp-rs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server