blender-mcp

blender-mcp

Enables LLMs to control Blender for 3D scene creation, object manipulation, material assignment, shader configuration, modifier application, keyframing, and rendering via the Model Context Protocol.

Category
Visit Server

README

blender-mcp

CI GitHub Release Python Blender MCP Ruff License: GPL v3

A Model Context Protocol server that lets LLMs such as Claude control Blender — creating scenes, manipulating objects, assigning materials, configuring shader nodes, applying modifiers, setting keyframes, and rendering.

                  ┌──── HTTP (recommended) ────────────────┐
Claude Code ──────┤                                         ├──> Blender (GUI)
  / any client    └──stdio──> launcher.py ──HTTP ───────────┘     └─ MCP Server on localhost:8400

Blender must be running with the add-on enabled. The add-on exposes a Streamable HTTP MCP endpoint at http://localhost:8400/mcp — any MCP client that supports HTTP transport can connect directly. For clients that only support stdio transport, launcher.py acts as a thin stdio-to-HTTP proxy.


Prerequisites

Requirement Notes
Blender 4.0 or newer Must run in GUI mode (not headless)
Python 3.11+ (system) Only needed for launcher.py (stdio fallback); must have httpx and mcp[cli]
mcp[cli] in Blender's Python Separate install — see below

1. Install launcher dependencies (optional — stdio fallback only)

Skip this step if you are connecting via HTTP (recommended).

pip install httpx "mcp[cli]"

2. Install mcp[cli] into Blender's bundled Python

Blender ships its own Python interpreter. The add-on runs inside it, so mcp[cli] must be installed there separately.

Find Blender's Python executable — its exact path depends on your OS and Blender version:

OS Typical path
Linux ~/blender-4.x.x/4.x/python/bin/python3.11
macOS /Applications/Blender.app/Contents/Resources/4.x/python/bin/python3.11
Windows C:\Program Files\Blender Foundation\Blender 4.x\4.x\python\bin\python.exe

Then run:

# Linux / macOS
/path/to/blender/4.x/python/bin/python3.11 -m pip install "mcp[cli]"

# Windows (PowerShell)
& "C:\Program Files\Blender Foundation\Blender 4.x\4.x\python\bin\python.exe" -m pip install "mcp[cli]"

Getting the Add-on

Option A — Download a release (recommended)

Download blender_mcp_addon-vX.Y.Z.zip from the latest GitHub Release and install it directly in Blender (see Installing and Activating in Blender).

Option B — Clone the repository

git clone https://github.com/zorak1103/blender-mcp.git
cd blender-mcp

The add-on directory is blender_addon/. No build or compilation step is needed — Blender add-ons are plain Python packages.

Option C — Build the zip locally

Blender can install add-ons from a zip file containing the package directory. Requires Hatch (pip install hatch):

hatch run package

Or without Hatch:

zip -r blender_mcp_addon.zip blender_addon/

Installing and Activating in Blender

From a zip file

  1. Open Blender and go to Edit → Preferences → Add-ons.
  2. Click Install… and select blender_mcp_addon.zip.
  3. Search for "Blender MCP Server" and enable the checkbox.

From the cloned directory

  1. Open Blender and go to Edit → Preferences → Add-ons.
  2. Click Install…, navigate into the repository, and select the blender_addon folder itself (or its __init__.py).
  3. Search for "Blender MCP Server" and enable the checkbox.

Verify activation

After enabling, the Blender Info bar (top of the screen) should show:

Blender MCP Server registered, port=8400

Change the port (optional)

In Edit → Preferences → Add-ons → Blender MCP Server, set the Port field (default: 8400) before enabling, or disable/re-enable after changing it.


Connecting an MCP Client

Important: Blender must already be running with the add-on enabled before connecting.

Option A — Direct HTTP (recommended)

The add-on exposes a Streamable HTTP endpoint at http://localhost:8400/mcp. Any MCP client that supports HTTP transport can connect directly — no proxy, no extra Python dependencies.

The MCP endpoint requires a Bearer token that the add-on generates on first start and writes to ~/.config/blender-mcp/token. Export it as an environment variable before launching your client:

# bash / Git Bash / WSL (add to ~/.bashrc for persistence)
export BLENDER_MCP_TOKEN="$(cat ~/.config/blender-mcp/token)"
# PowerShell — set permanently in the user environment
[Environment]::SetEnvironmentVariable(
  "BLENDER_MCP_TOKEN",
  (Get-Content "$HOME\.config\blender-mcp\token"),
  "User")

Claude Code — the .mcp.json at the repository root is already configured with the Authorization: Bearer ${BLENDER_MCP_TOKEN} header. Set the env var above, then start (or restart) Claude Code — no further setup is needed inside this repository. To register globally (outside this repo):

claude mcp add --transport http --scope user \
  --header "Authorization: Bearer \${BLENDER_MCP_TOKEN}" \
  blender-mcp http://localhost:8400/mcp

Other clients (Cline, OpenCode, etc.): point the HTTP/SSE transport URL to http://localhost:8400/mcp and add the Authorization: Bearer <token> header.

Note for Claude Code users: MCP servers from .mcp.json require either "enableAllProjectMcpServers": true in .claude/settings.local.json, or explicit approval via the dialog that appears on first launch. If the tools are not available and no dialog appeared, add "enableAllProjectMcpServers": true to .claude/settings.local.json and restart Claude Code.

Option B — stdio proxy (fallback)

If your MCP client only supports stdio transport, use launcher.py as a thin proxy. This requires system Python with httpx and mcp[cli] installed (see Prerequisites).

Add the following to ~/.claude/settings.json (global) or .claude/settings.json (project-level):

{
  "mcpServers": {
    "blender-mcp": {
      "command": "python",
      "args": ["/absolute/path/to/blender-mcp/launcher.py"]
    }
  }
}

launcher.py will wait up to 60 seconds for Blender to become reachable, then time out.

Verify the connection

# HTTP check (works for both Option A and B):
export BLENDER_MCP_TOKEN="$(cat ~/.config/blender-mcp/token)"
curl -s -X POST http://localhost:8400/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $BLENDER_MCP_TOKEN" \
  -d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}'
# stdio proxy round-trip (Option B only):
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python launcher.py

Troubleshooting

MCP tools not available in Claude Code / approval dialog never appeared

Claude Code loads servers from .mcp.json only when enableAllProjectMcpServers is true or the user approves them via a one-time dialog. If neither happened, the server silently stays inactive.

Fix: add or update .claude/settings.local.json in the repository root:

{
  "enableAllProjectMcpServers": true
}

Then restart Claude Code. The blender-mcp tools should appear immediately.

curl http://localhost:8400/mcp returns 401 Unauthorized

The MCP endpoint requires a Bearer token. Make sure BLENDER_MCP_TOKEN is set and matches the content of ~/.config/blender-mcp/token (written by the add-on on first start):

export BLENDER_MCP_TOKEN="$(cat ~/.config/blender-mcp/token)"

Then restart Claude Code (or whichever client you are using) so it picks up the new environment variable.

curl http://localhost:8400/mcp returns "Not Acceptable"

This is expected and means the server is running. The endpoint requires specific headers. Use the full POST check from Verify the connection instead.

The add-on appears enabled but tools/list returns an error or times out

  • Confirm the Info bar shows Blender MCP Server registered, port=8400 after enabling the add-on.
  • If you changed the port, update the URL in .mcp.json accordingly.
  • Try disabling and re-enabling the add-on in Edit → Preferences → Add-ons.

mcp[cli] not found when enabling the add-on in Blender

The package must be installed into Blender's own Python, not the system Python. Re-run the install command using the Blender Python executable (see Prerequisites).


Available Tools

Category Tools
Scene list_scenes, get_scene_info, list_objects, get_object_info
Objects create_object, delete_objects, transform_object, duplicate_object, select_objects, parent_objects, create_object_grid, create_objects_batch
Materials create_material, assign_material, assign_materials_batch, list_materials, set_material_property
Render set_render_settings, render_image, screenshot_viewport
Shader nodes list_shader_nodes, add_shader_node, connect_nodes, remove_node, set_node_value
Modifiers list_modifiers, add_modifier, remove_modifier, configure_modifier, apply_modifier, add_modifiers_batch, apply_modifiers_batch, remove_modifiers_batch
Animation set_frame_range, set_current_frame, set_fps, insert_keyframe, delete_keyframe
Lighting configure_light
Camera set_active_camera, look_at
World set_world_settings
Scripting (opt-in) execute_python — see Security for modes and risks

Further Reading

Topic File
Security & execute_python modes docs/security.md
Development setup, testing, releasing docs/development.md
LLM agent self-configuration guide docs/llm-setup.md

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured