MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

B
Blender MCP
作者 @6xvl

MCP server for Blender — ~270 direct-dispatch tools, hang detection, forced auto-update

创建于 5/24/2026
更新于 about 3 hours ago
Repository documentation and setup instructions

Blender MCP Server

Connect AI assistants like Claude, Codex, and Gemini to Blender.

Stars Issues Last Commit


What is This?

An MCP server that lets AI inspect your Blender scene, model, rig, animate, weight-paint, UV-unwrap, render, and export — all driven by ~270 direct-dispatch tools (no per-call Python compilation overhead). Forced auto-update keeps every machine on the same version.

Setup

1. Install the plugin + server

Windows — PowerShell:

iwr https://raw.githubusercontent.com/6xvl/blender-mcp/main/install.ps1 | iex

macOS / Linux — Bash:

curl -fsSL https://raw.githubusercontent.com/6xvl/blender-mcp/main/install.sh | bash

The installer drops the addon into Blender's addons folder, installs uv, runs uv tool install blender-mcp, and patches the installed server.py with this fork's expanded toolset.

2. Activate in Blender

  • Edit → Preferences → Add-ons → search "Blender MCP" → tick it.
  • Press N in the 3D viewport → BlenderMCP tab → Connect to Claude.

Status flips to "Running on port 9876". Blender side is done.

3. Connect your AI

Claude Code:

claude mcp add blender-mcp -- blender-mcp

Codex CLI:

codex mcp add blender-mcp -- blender-mcp

Gemini CLI:

gemini mcp add blender-mcp blender-mcp --trust

Verify by asking the assistant to call bm_ping. Expected response: {"ok": true, "scene": "Scene", "frame": 0}.

Other MCP clients (Claude Desktop, Cursor, Windsurf, manual config)

Generic JSON snippet

Add to your client's MCP config:

{
  "mcpServers": {
    "blender-mcp": {
      "command": "blender-mcp",
      "args": [],
      "env": {}
    }
  }
}

If blender-mcp isn't on PATH, use the absolute path printed by the installer (e.g. C:\Users\<you>\.local\bin\blender-mcp.exe on Windows, ~/.local/bin/blender-mcp on macOS/Linux).

Per-client config file

| Client | Config file | |---|---| | Claude Code | ~/.claude.jsonmcpServers | | Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json | | Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json | | Claude Desktop (Linux) | ~/.config/Claude/claude_desktop_config.json | | Codex CLI | ~/.codex/config.toml[mcp_servers.blender-mcp] | | Gemini CLI | ~/.gemini/settings.jsonmcpServers | | Cursor | Settings → MCP → Add Server | | Windsurf | Settings → MCP servers → JSON config |

Manual install (no installer script)

# 1. Install uv if missing
curl -LsSf https://astral.sh/uv/install.sh | sh        # macOS / Linux
iwr https://astral.sh/uv/install.ps1 | iex             # Windows PowerShell

# 2. Install the MCP server
uv tool install blender-mcp

# 3. Patch server.py with this fork's expanded toolset
#    Find the install dir:
uv tool dir
#    Then overwrite the file at: <UV_TOOL_DIR>/blender-mcp/lib/python*/site-packages/blender_mcp/server.py
curl -fsSL https://raw.githubusercontent.com/6xvl/blender-mcp/main/server/server.py \
  -o "<that-path>"

# 4. Drop the addon into Blender's addons folder
#    Win:   %APPDATA%\Blender Foundation\Blender\<ver>\scripts\addons\
#    mac:   ~/Library/Application Support/Blender/<ver>/scripts/addons/
#    linux: ~/.config/blender/<ver>/scripts/addons/
curl -fsSL https://raw.githubusercontent.com/6xvl/blender-mcp/main/addon/blender_mcp_addon.py \
  -o "<addons-dir>/blender_mcp_addon.py"

Windows quirks

If PATH lookup fails, pass the full binary path:

{
  "mcpServers": {
    "blender-mcp": {
      "command": "C:\\Users\\YOU\\.local\\bin\\blender-mcp.exe",
      "args": []
    }
  }
}

What Can You Do?

Ask things like: "List every armature and its bones", "Bend the elbow 90° on Forearm_R at frame 30", "Apply a 45° diagonal cut to Right_Arm and split weights between Bicep_R and Forearm_R", "Render the camera view at frame 20 to disk", "Export the rig and all animations as FBX for Roblox", "Label each side of this mesh with Top/Bottom/Front/Back/Left/Right textures".

Tool categories

| Category | Examples | |---|---| | Inspect | bm_list, bm_ping, bm_read_console, bm_inspect_modifier, bm_inspect_animation, bm_count_vgroup_weights | | Transform | bm_set_transform, bm_apply_transforms, bm_set_origin, bm_translate, bm_rotate, bm_scale | | Mesh edit | bm_rotate_verts, bm_translate_verts, bm_mirror_verts, bm_pca_align, bm_mesh_separate, bm_bisect_plane, bm_subdivide | | Rig + skin | bm_add_armature, bm_auto_weights, bm_smooth_weights, bm_weight_by_axis_split, bm_weight_by_plane_split, bm_paint_weight_to_bone | | Animate | bm_keyframe_bone, bm_keyframe_object, bm_set_frame, bm_push_to_nla, bm_keyframe_material_emission | | Materials / UV | bm_create_material, bm_label_faces_by_side, bm_color_faces_by_side, bm_uv_unwrap, bm_resize_texture | | Modifiers | bm_add_modifier, bm_apply_modifier, bm_add_armature_modifier, bm_add_softbody, bm_add_cloth, bm_add_fluid | | Export | bm_export_fbx, bm_export_format (OBJ/GLB/GLTF/DAE) | | Maintenance | bm_force_mode_set, bm_reload_addon |

Full tool catalog with signatures + docstrings: docs/tools_blender_mcp.md (auto-generated from server.py). Once connected, call bm_list for scene objects and ask your assistant for tool details.


Forced Auto-Update

Every Blender startup, the addon reads VERSION from this repo's main branch via raw URL. If different from local, both blender_mcp_addon.py and server.py are atomically replaced. No opt-out by default. Restart Blender to load the new code.

To disable on a machine:

# top of blender_mcp_addon.py
_BM_AUTOUPDATE_REPO = ""   # empty disables the probe

To publish an update from a fork:

# edit addon/blender_mcp_addon.py or server/server.py
echo "1.0.1" > VERSION
git add -A && git commit -m "feat: …" && git push
# next Blender startup on any installed machine pulls the new files

Troubleshooting

| Symptom | Fix | |---|---| | bm_ping returns "Could not connect to Blender" | N panel → BlenderMCP → Connect to Claude. Then /mcp reconnect on the client side. | | Tool returns {"error": "timeout", …} | A bpy op is blocking the main thread. Run bm_force_mode_set OBJECT and retry. If persistent, toggle the addon off+on. | | Tab missing in N panel | Window → Toggle System Console for tracebacks. Reload Scripts (F3 → "Reload Scripts"). | | bm_set_mode errors with "context is incorrect" | Use bm_force_mode_set — it overrides the VIEW_3D context. | | Auto-update didn't run | Network issue, _BM_AUTOUPDATE_REPO was emptied, or local VERSION already matches. Check bm_read_console mode=summary for autoupdate log lines. |


Local Development

D:\Projects\BlenderMCP\
├── addon\blender_mcp_addon.py    # Blender side (handlers + console tee + autoupdate)
├── server\server.py              # MCP server side (276 @mcp.tool)
├── sync.ps1                      # push source → live install paths + wipe pycache
├── install.ps1 / install.sh      # public one-shot installers
├── textures\sides\               # T/B/F/K/L/R label PNGs for bm_label_faces_by_side
├── VERSION                       # auto-update probe target
├── LICENSE
└── README.md

Workflow:

# 1. Edit either source file
# 2. Push to all live install paths + clear pycache
.\sync.ps1
# 3. Call the hot-reload MCP tool from your client — no UI toggle needed
bm_reload_addon
# 4. /mcp reconnect (socket restart)

Report Issues | MIT Licensed

快速设置
此服务器的安装指南

安装包 (如果需要)

uvx blender-mcp

Cursor 配置 (mcp.json)

{ "mcpServers": { "6xvl-blender-mcp": { "command": "uvx", "args": [ "blender-mcp" ] } } }