Skip to main content
Glama

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.

Related MCP server: Blender MCP Server

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-mcp

Blender Addon Setup

  1. Copy the blender_addon/ directory to your Blender addons path, or symlink it

  2. Enable Blender MCP in Blender → Edit → Preferences → Add-ons

  3. In the 3D Viewport sidebar (N panel), find the MCP tab and click Start Server

  4. 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)
    ▼
Blender
  • MCP 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.timers

  • Connection — JSON over TCP with newline framing, exponential backoff reconnection

Available Tools (175)

Domain

Count

Tools

Scene

6

ping · get_scene_info · load_file · save_file · set_frame · set_frame_range

Objects

12

get_object_info · list_objects · create_object · delete_object · set_transform · apply_transform · duplicate_object · rename_object · set_parent · clear_parent · set_origin · select_objects

Materials

8

list_materials · get_material_info · create_material · assign_material · remove_material · set_material_property · duplicate_material · delete_material

Shader Nodes

12

get_node_tree · create_shader_node · delete_shader_node · connect_shader_nodes · disconnect_shader_node · set_node_input · get_node_input · set_node_position · list_shader_node_types · create_node_group · add_node_group_instance · layout_node_tree

Geometry Nodes

10

get_geonodes_tree · create_geonodes_modifier · create_geonode · delete_geonode · connect_geonodes · disconnect_geonode · set_geonode_input · get_geonode_input · list_geonode_types · set_geonodes_input

Modifiers

8

list_modifiers · add_modifier · remove_modifier · set_modifier_property · apply_modifier · move_modifier · toggle_modifier_visibility · copy_modifiers

Animation

10

get_keyframes · set_keyframe · set_keyframes · delete_keyframe · clear_animation · get_action_info · list_actions · set_interpolation · set_playback_range · playback_control

Rigging

10

create_armature · get_armature_info · add_bone · set_bone_property · get_bone_info · parent_mesh_to_armature · assign_vertex_weights · add_bone_constraint · set_pose_bone_transform · list_bone_constraints

Constraints

6

list_constraints · add_constraint · remove_constraint · set_constraint_property · set_constraint_influence · reorder_constraint

Lighting

7

list_lights · create_light · set_light_property · create_hdri_world · set_world_property · get_world_info · create_light_rig

Camera

6

list_cameras · create_camera · set_camera_property · set_active_camera · camera_look_at · setup_camera_dof

Mesh Editing

8

get_mesh_info · get_vertices · set_vertices · get_vertex_groups · create_vertex_group · set_smooth_shading · separate_mesh · join_meshes

Curves

5

create_curve · get_curve_info · set_curve_points · set_curve_property · convert_to_mesh

Physics

10

add_physics · remove_physics · set_physics_property · get_physics_info · setup_rigid_body_world · setup_cloth_sim · setup_fluid_domain · setup_softbody · bake_physics · free_physics_bake

Particles

6

add_particle_system · remove_particle_system · set_particle_property · get_particle_info · setup_hair · bake_particles

Compositing

8

get_compositor_tree · enable_compositor · create_comp_node · delete_comp_node · connect_comp_nodes · set_comp_node_input · list_comp_node_types · setup_basic_composite

Sculpting

4

enter_sculpt_mode · set_sculpt_brush · remesh · apply_sculpt_mask

Grease Pencil

6

create_grease_pencil · get_gp_info · add_gp_layer · set_gp_layer_property · create_gp_stroke · add_gp_modifier

Textures & UV

6

list_images · load_image · get_uv_maps · create_uv_map · smart_uv_project · pack_images

Viewport

6

get_viewport_info · capture_viewport · set_viewport_shading · set_viewport_camera · frame_selected · frame_all

Rendering

6

get_render_settings · set_render_settings · render_image · render_animation · render_viewport · list_render_engines

Collections

5

list_collections · create_collection · move_to_collection · set_collection_visibility · delete_collection

Import/Export

4

import_file · export_file · list_supported_formats · export_selection

Code Execution

2

execute_python · evaluate_expression

Batch Operations

4

find_objects · batch_set_property · batch_delete · find_error_objects

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

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

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