blender-mcp
Provides tools to control a local Blender 5.2 LTS instance for 3D scene creation, modeling, materials, shader nodes, lighting, animation, cameras, rendering, import/export, UV mapping and baking, batch operations, asset management, rigging, and one-shot workflows.
Allows searching for and downloading Sketchfab models using an API token so they can be imported into Blender.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blender-mcp Create a cube and apply a red material to it."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
English | 中文
blender_mcp — a local blender-mcp
Drive your local Blender 5.2 LTS from Claude Code (or any MCP client) in plain language: 17 categories, 159 typed tools covering modeling, materials, node trees, lighting, animation, cameras, rendering, import/export, UV and baking, batch operations, assets, rigging, and one-shot workflows.
Platforms: macOS / Windows / Linux (all three tested)
Blender: 5.2 LTS (not compatible with 4.x)
Requirements: Python 3.11+, uv
License: MIT
Highlights
159 typed tools: every tool has an explicit signature and description, so the model never has to guess the bpy API.
execute_codeis the escape hatch for arbitrary Python.Fully local, zero-network add-on: the Blender add-on only listens on
127.0.0.1:9877and never touches the network. Poly Haven / Sketchfab downloads happen in the MCP server process and are written to disk before the add-on imports them by path.Readable errors: when an object / material / node / socket is not found, the error lists candidate names and is passed through to the model verbatim, so it can self-correct.
Undoable: every write is a Ctrl+Z step in Blender;
undo/redotools are available in GUI mode.One-shot workflows: three-point lighting, studio scene, turntable animation, product render, material from a texture folder, surface scatter, game-asset export.
Offline API docs:
get_api_docs("bpy.types.Object.location")looks up bpy documentation without going online.Visual feedback:
render_image/viewport_screenshotcan return the image straight to the model.
Related MCP server: Blender MCP VXAI
Architecture
Claude Code ──stdio──▶ MCP server (src/blender_mcp_pro, Python 3.11+ managed by uv)
│ each tool: typed signature → {tool, params} JSON forward
▼
127.0.0.1:9877 (4-byte length prefix + JSON frames, persistent connection)
│
Blender 5.2 extension (addon/blender_mcp_pro, Blender's bundled Python 3.13)
│ daemon thread receives → main thread runs bpy serially → auto undo_push
▼
handlers/<category>.py: the actual bpy codeFat add-on, thin server: all bpy logic lives in the add-on; the server only validates parameters and forwards. Tool names match one-to-one on both sides and a parity test keeps them in sync.
Tool catalog (17 categories, 159 tools)
Full signatures are in docs/tools.md (generated by dump-tools).
Category | Count | Tools |
Scene & Objects | 16 |
|
Materials | 9 |
|
Shader Nodes | 10 |
|
Lights | 6 |
|
Modifiers | 8 |
|
Animation | 15 |
|
Geometry Nodes | 11 |
|
Camera | 7 |
|
Render | 7 |
|
Import / Export | 5 |
|
UV & Texture | 10 |
|
Batch | 8 |
|
Assets | 8 |
|
Rigging | 12 |
|
Rig Diagnostics | 7 |
|
Utilities | 13 |
|
Workflows | 7 |
|
A few capabilities worth calling out:
Whole node trees in one call:
build_node_tree/build_geometry_node_treetakenodes=[{type,name,location,inputs,properties}]andlinks=[...]and build the entire tree at once, with no per-node round trips.PBR materials:
create_pbr_materialbuilds a material from a set of texture paths;material_from_texture_folderscans a folder and recognises basecolor / roughness / metallic / normal / height / ao by filename.Import / export formats: obj / fbx / gltf / glb / usd / usda / usdc / stl / ply / abc / blend, detected by extension, with
optionspassed straight to the Blender operator.export_for_gameduplicates → applies modifiers → triangulates → scales → exports.Assets: Poly Haven HDRIs are wired into world lighting after download, textures become PBR materials, models are imported directly. Sketchfab needs an API token. Local asset libraries can be searched by type / keyword and imported.
Rigging: build armatures from scratch, add constraints, pose, write vertex-group weights; Rigify metarigs (human / quadruped / cat / wolf / horse / shark / bird) and generation;
check_rigchecks zero-length bones, multiple roots, unweighted vertices, un-normalised weights, unapplied scale, missing constraint targets, and asymmetric naming in one pass.Baking:
bake_texturebakes DIFFUSE / NORMAL / AO / ROUGHNESS / EMIT / COMBINED and more with Cycles, including selected-to-active.Camera framing:
frame_objectsbacks the camera off along its current direction until the targets just fit;point_camera_at/point_light_ataim at an object or coordinate.Geometry queries:
ray_cast,measure_distance,get_bounding_box,check_mesh(non-manifold, loose vertices, degenerate faces, and so on).
Installation
Prerequisites: Blender 5.2 LTS and uv.
git clone <this repo> blender_mcp && cd blender_mcp
uv sync
uv run blender-mcp-pro install-addoninstall-addon links addon/blender_mcp_pro into Blender's user extensions directory, then enables the extension with headless Blender and saves preferences.
Platform | Default Blender lookup | Extensions directory | Link type |
macOS |
|
| symlink |
Windows |
|
| symlink; falls back to a directory junction when symlinks are not permitted (no admin needed) |
Linux |
|
| symlink |
Blender installed elsewhere: set
BLENDER_MCP_BLENDER=<blender executable>first; likewiseBLENDER_MCP_EXT_DIRfor the extensions directory.Prefer a copy over a link:
install-addon --copy(re-run after editing the add-on source).If a GUI Blender is open during installation, it will overwrite the preferences with its in-memory copy on exit. Confirm once more in the running Blender: Edit ▸ Preferences ▸ Add-ons, search "MCP Pro", tick it.
Once enabled the server starts automatically. Press N in the 3D viewport; the "MCP Pro" panel shows status, manual Start / Stop, and the port.
Connect to Claude Code
claude mcp add --scope user blender-pro -- uv --directory <absolute repo path> run blender-mcp-pro serve
claude mcp list # expect: blender-pro … ConnectedWindows example:
claude mcp add --scope user blender-pro -- uv --directory C:\work\blender_mcp run blender-mcp-pro serveOther MCP clients (Cursor, Claude Desktop, and so on) use the same stdio command: uv --directory <repo> run blender-mcp-pro serve.
Optional environment variables: BLENDER_MCP_HOST / BLENDER_MCP_PORT (default 127.0.0.1 / 9877), SKETCHFAB_API_TOKEN.
Uninstall
uv run blender-mcp-pro uninstall-addon
claude mcp remove blender-pro -s userUsage examples
With a GUI Blender open, just tell Claude Code:
"What's in the scene?" →
get_scene_info/list_objects"Make a 2 m tall cylinder with a brushed-metal material" →
create_primitive+create_material+set_principled_inputs"Three-point light this object and render a 1080p product shot" →
quick_product_render, orsetup_three_point_lighting+frame_objects+render_image"Grab a 2k indoor HDRI from Poly Haven for the environment" →
polyhaven_search+polyhaven_download"Turn the textures in
textures/wood/into a material and put it on the table" →material_from_texture_folder"Add a Rigify humanoid rig to the character and check it" →
add_rigify_metarig+generate_rigify_rig+check_rig"Export the selection as a game-ready GLB" →
export_for_game"Build a blocky Gundam out of bmesh" →
execute_code(any bpy script), thenframe_objects+render_imageto look at it
Conventions
Location / rotation / scale are
[x, y, z]; rotation is an Euler in radians. Colours are[r, g, b]or[r, g, b, a]in 0–1.Any tool that accepts
objectstakes a list of names, or{"pattern": "Cube*"}/{"collection": "Props"}/{"type": "MESH"}/{"selected": true}.When an object / material / node / socket is not found, the error lists candidate names.
Every write is undoable with Ctrl+Z in Blender; read-only tools stay out of the undo stack.
Principled BSDF sockets use the 5.2 names:
Base Color, Metallic, Roughness, IOR, Alpha, Emission Color, Emission Strength, Specular IOR Level, …execute_codehasbpy / bmesh / mathutils / Vector / mathpreloaded;return_varreturns a variable.Render and download caches live in
~/.cache/blender-mcp-pro/(renders/hdris/textures/models/sketchfab/) and can be cleared at any time.
Development and testing
uv run pytest -q # 154 tests; integration tests spawn headless Blender automatically
BLENDER_MCP_ONLINE_TESTS=1 uv run pytest tests/test_assets.py # also runs the Poly Haven online tests
uv run blender-mcp-pro dump-tools > docs/tools.md # regenerate the tool catalogThree test layers: protocol unit tests (fake Blender), handler integration tests (headless Blender,
--factory-startup), and MCP stdio end-to-end (real MCP client → server → headless Blender).Changed the add-on: F3 → "Reload Scripts" in Blender (takes effect immediately with a symlink / junction install).
Changed the server: restart it from Claude Code with
/mcp.Adding a tool:
@command("name")inaddon/blender_mcp_pro/handlers/<category>.pyplus@mcp.tool()insrc/blender_mcp_pro/tools/<category>.py;tests/test_parity.pykeeps the names in sync.Handler modules must not call bpy at module top level (the parity test loads the add-on with a fake bpy); use it inside function bodies only.
Known limitations
viewport_screenshotandundo/redoneed a GUI Blender; headless mode raises a clear error.Whether EEVEE renders in headless mode depends on the GPU context; tests pin WORKBENCH. In the GUI both EEVEE and Cycles work.
Sketchfab downloads need an API token: Preferences ▸ Add-ons ▸ Blender MCP Pro, or the
SKETCHFAB_API_TOKENenvironment variable.5.2 LTS only; not compatible with 4.x.
The schemas of 159 tools take up some context; if it feels slow, trimming by category is a possible follow-up.
Documentation
The detailed docs are currently in Chinese.
Installation and development details: docs/README.md
All tool signatures: docs/tools.md
Design and decision record: docs/superpowers/specs/2026-09-07-blender-mcp-pro-design.md
License
Available Tools
159 toolsadd_boneC
添加一根骨骼。
Inputs: head (required), name (required), tail (required), armature (required), +3 more.
add_bone_constraintC
给骨骼加约束(IK/COPY_ROTATION/COPY_LOCATION/TRACK_TO/DAMPED_TRACK/LIMIT_ROTATION/STRETCH_TO…)。settings 里 target 给对象名、subtarget 给骨骼名。
Inputs: bone (required), type (required), armature (required), settings.
add_fcurve_modifierC
给 fcurve 加修改器:CYCLES(循环)/NOISE/LIMITS/STEPPED/GENERATOR…;settings 为其属性。
Inputs: type (required), object (required), data_path (required), settings.
add_geometry_nodeC
添加几何节点。type 可省略前缀(MeshCube = GeometryNodeMeshCube;FunctionNode* 也可)。
Inputs: type (required), node_group (required), name, inputs, +2 more.
add_group_socketC
给节点组接口加插槽(暴露到修改器面板)。socket_type: Float/Int/Bool/Vector/Color/Object/Collection/Material/Geometry…
Inputs: name (required), node_group (required), in_out, default, +1 more.
add_image_textureC
加载贴图接到 Principled。target: Base Color/Roughness/Metallic/Normal(自动加 Normal Map)/Alpha/Emission Color/Height/AO。
Inputs: material (required), image_path (required), target, colorspace, +1 more.
add_modifierC
添加修改器(SUBSURF/BEVEL/ARRAY/MIRROR/SOLIDIFY/BOOLEAN/…共 83 种)。settings 键为 bpy 属性名,对象引用直接给对象名。
Inputs: type (required), object (required), name, settings.
add_nla_stripC
在 NLA 轨道上添加动作片段。
Inputs: action (required), object (required), frame_start (required), track, +1 more.
add_rigify_metarigA
添加 Rigify 元骨架:human/basic_human/basic_quadruped/cat/wolf/horse/shark/bird。
Inputs: name, type.
add_shader_nodeC
添加节点。type 可省略前缀(TexNoise = ShaderNodeTexNoise);inputs 按插槽名设值;properties 设节点属性(如 blend_type)。
Inputs: type (required), material (required), name, inputs, +2 more.
add_uv_mapD
新增 UV 层。
Inputs: object (required), name, set_active.
append_from_blendC
从 .blend 追加/链接一个数据块(objects/materials/collections/node_groups/actions/…)。
Inputs: name (required), path (required), datablock (required), link.
apply_modifierC
应用修改器到网格。
Inputs: object (required), modifier (required).
apply_transformsC
应用变换到网格数据(Ctrl+A)。
Inputs: objects (required), scale, location, rotation. Returns: result
assign_actionC
给对象指定动作(省略则新建)。
Inputs: object (required), action.
assign_materialB
把材质赋给对象的槽位(默认 0,不存在则新建)。
Inputs: object (required), material (required), slot.
bake_animationC
把约束/父级/NLA 的运动烘焙成逐帧关键帧。
Inputs: object (required), step, frame_end, frame_start, +2 more.
bake_textureB
Cycles 烘焙到贴图。bake_type: DIFFUSE/NORMAL/AO/ROUGHNESS/EMIT/COMBINED/…;无 UV 自动 smart project;output_path 保存 PNG。
Inputs: object (required), bake_type (required), size, image, +5 more.
batch_add_modifierD
批量加修改器。
Inputs: type (required), objects (required), settings.
batch_apply_materialD
批量赋材质。
Inputs: objects (required), material (required).
batch_deleteD
批量删除。
Inputs: objects (required).
batch_renameC
批量重命名:前缀/后缀/查找替换/编号。
Inputs: objects (required), find, prefix, suffix, +2 more.
batch_set_propertyC
批量设置任意属性路径(如 hide_render、data.use_auto_smooth、modifiers['Bevel'].width)。
Inputs: value (required), objects (required), data_path (required).
batch_transformD
批量变换(默认增量)。
Inputs: objects (required), scale, location, relative, +1 more.
build_geometry_node_treeC
一次性构建几何节点树(格式同 build_node_tree)。
Inputs: nodes (required), node_group (required), clear, links.
build_node_treeC
一次性建树:nodes=[{type,name?,location?,inputs?,properties?}],links=[{from_node,from_socket,to_node,to_socket}]。
Inputs: nodes (required), material (required), clear, links.
check_bone_hierarchyD
骨骼层级树、孤立骨、最大深度。
Inputs: armature (required).
check_bone_namingC
检查 .L/.R 对称命名:缺失镜像、不规范命名。
Inputs: armature (required), convention.
check_meshC
网格体检:顶点/边/面、三角/四边/ngon、非流形边、松散点、重复顶点。
Inputs: name (required).
check_rigC
骨架综合体检:零长骨、多根、deform 骨无顶点组、未权重/未归一顶点、未应用缩放、约束目标丢失、命名不对称。
Inputs: armature (required).
create_armatureB
新建骨架;bones=[{name, head, tail, parent?, roll?, connect?, deform?}] 一次建骨链。
Inputs: name, bones, location.
create_cameraC
新建相机。type: PERSP/ORTHO;lens 焦距 mm。
Inputs: lens, name, type, clip_end, +5 more.
create_geometry_nodesB
给对象新建一个几何节点修改器与节点组(含 Group Input→Output 直通)。
Inputs: object (required), group_name, modifier_name.
create_imageC
新建空白图像。
Inputs: name (required), alpha, color, width, +2 more.
create_lightB
新建灯光。type: POINT/SUN/SPOT/AREA;energy 瓦;radius 软阴影半径;size 面光尺寸;spot_size 弧度;target 指向对象或坐标。
Inputs: type (required), name, size, color, +7 more.
create_materialB
新建 Principled BSDF 材质;alpha<1 自动切 BLENDED;assign_to 直接赋给对象。
Inputs: name (required), ior, alpha, metallic, +5 more.
create_pbr_materialC
用一组贴图路径一次建好 PBR 材质。
Inputs: name (required), ao, height, normal, +4 more.
create_primitiveA
新建基础物体。type: cube/plane/uv_sphere/ico_sphere/cylinder/cone/torus/circle/monkey/empty/text。 size 用于 cube/plane/monkey;radius 用于球/柱/锥/环/圆;depth 用于柱/锥(torus 时为 minor_radius);segments 为分段数。
Inputs: type (required), name, size, text, +7 more.
delete_keyframeD
删除某帧的关键帧。
Inputs: frame (required), object (required), data_path (required), index.
delete_materialB
删除材质(或仅从对象上解除)。
Inputs: name (required), unlink_only.
delete_objectA
删除对象(名字列表或过滤器),可连带子物体。
Inputs: objects (required), delete_children.
distribute_objectsA
排列对象:LINE 沿 axis(默认 X) 等距;GRID 列沿 axis、行沿下一轴,columns 列;CIRCLE 以 axis(默认 Z) 为法线、半径 radius。
Inputs: objects (required), axis, mode, center, +3 more.
duplicate_objectC
复制对象;linked=true 共享网格数据;offset 为位置偏移。
Inputs: name (required), linked, offset, new_name.
execute_codeC
在 Blender 里执行任意 Python(预置 bpy/bmesh/mathutils/Vector/math)。返回 stdout;return_var 指定要取回的变量名。
Inputs: code (required), return_var.
export_fileD
导出到文件(同上格式)。objects 省略则导出全部。
Inputs: path (required), format, objects, options.
export_for_gameB
游戏资产导出:复制→应用修改器→三角化→缩放→导出 GLB/GLTF/FBX/OBJ,原对象不动。
Inputs: path (required), objects (required), up, scale, +4 more.
find_unweighted_verticesC
找出没有骨骼权重的顶点。
Inputs: object (required), threshold.
frame_objectsC
沿相机当前朝向后退到能框住这些对象的距离并对准它们。
Inputs: camera (required), objects (required), margin.
generate_rigify_rigC
由元骨架生成 Rigify 控制骨架。
Inputs: metarig (required).
get_animation_infoA
场景帧范围/fps/动作列表;给 object 时附带其 action、fcurve 摘要、NLA 轨道、形态键。
Inputs: object.
get_api_docsA
本地查 bpy API 文档。path 形如 bpy.types.Object / bpy.types.Object.location / bpy.ops.mesh.primitive_cube_add。
Inputs: path (required).
get_blender_infoB
Blender 版本、Python、当前文件、已启用插件、server 状态、Sketchfab token 是否已配置。
Inputs: no named parameters.
get_bone_influenceB
某顶点受哪些顶点组/骨骼影响及权重。
Inputs: object (required), vertex_index (required). Returns: result
get_bounding_boxD
合并包围盒:min/max/center/size。
Inputs: objects (required), world.
get_camera_infoC
相机详情(镜头、类型、裁剪、DOF、是否活动)。
Inputs: name (required).
get_light_infoC
灯光详情。
Inputs: name (required).
get_material_infoC
材质详情:Principled 主要输入值、贴图、渲染设置、使用者。
Inputs: name (required).
get_modifier_settingsC
某修改器的当前值与可设置属性表。
Inputs: object (required), modifier (required).
get_node_treeC
节点组全貌:节点、连线、接口(输入/输出插槽)与使用者。
Inputs: node_group (required).
get_node_typesA
枚举可用节点类型及其输入/输出插槽。tree: shader/geometry;filter 子串过滤。
Inputs: tree, filter. Returns: result
get_object_infoA
对象详情:变换、世界位置、父子、集合、修改器、约束、材质槽、网格统计、自定义属性。
Inputs: name (required).
get_render_settingsA
当前渲染设置(引擎、分辨率、采样、输出、色彩管理)。
Inputs: no named parameters.
get_scene_infoA
场景概况:名称、帧范围、fps、单位、活动物体/相机、选择、按类型计数、集合树。
Inputs: no named parameters.
import_fileC
导入文件(obj/fbx/gltf/glb/usd/usda/usdc/stl/ply/abc/blend,按后缀识别)。options 透传给导入算子。返回新增对象名。
Inputs: path (required), format, options, collection.
import_local_assetC
从本地资产库导入数据块(file 可指定库内 .blend 相对路径)。
Inputs: name (required), library (required), file, link, +1 more.
insert_keyframeA
插关键帧。data_path 如 location / rotation_euler / scale / hide_render / ["prop"];给 value 先赋值再打帧;index 指定分量。
Inputs: object (required), data_path (required), frame, index, +1 more.
insert_keyframes_batchC
批量打帧:keys=[{frame, location?, rotation?, scale?, <其他 data_path>?}]。
Inputs: keys (required), object (required).
join_objectsC
合并多个网格对象到 target(默认第一个)。
Inputs: objects (required), target.
link_geometry_nodesD
几何节点连线。
Inputs: to_node (required), from_node (required), to_socket (required), node_group (required), +1 more.
link_nodesD
连线。
Inputs: to_node (required), material (required), from_node (required), to_socket (required), +1 more.
list_asset_librariesA
Blender 偏好里配置的本地资产库。
Inputs: no named parameters. Returns: result
list_bonesA
列出骨骼(head/tail/父子/deform),pose=true 附带姿态变换与约束。
Inputs: armature (required), pose. Returns: result
list_camerasA
列出相机。
Inputs: no named parameters. Returns: result
list_constraint_issuesA
列出骨骼约束问题:目标缺失、subtarget 不存在、IK 链过长、被禁用、influence 为 0。
Inputs: armature (required). Returns: result
list_imagesB
列出图像数据块。
Inputs: no named parameters. Returns: result
list_keyframesC
列出 fcurve 与关键帧(帧、值、插值)。
Inputs: object (required), data_path. Returns: result
list_lightsB
列出灯光及参数。
Inputs: no named parameters. Returns: result
list_materialsA
列出材质及使用它的对象。
Inputs: used_only. Returns: result
list_modifiersB
列出对象上的修改器栈。
Inputs: object (required). Returns: result
list_modifier_typesC
列出全部修改器类型及各自可设置的属性(名称/类型/枚举/默认值)。
Inputs: filter. Returns: result
list_node_groupsB
列出节点组(type: GEOMETRY/SHADER)。
Inputs: type. Returns: result
list_objectsA
列出场景对象(可按类型 MESH/LIGHT/CAMERA…、集合、名字通配符、是否选中过滤)。
Inputs: type, pattern, selected, collection. Returns: result
list_render_enginesB
可用渲染引擎。
Inputs: no named parameters. Returns: result
list_shader_nodesA
列出材质节点树:每个节点的类型/位置/输入值/属性,以及全部连线。
Inputs: material (required).
list_shape_keysC
列出形态键。
Inputs: object (required). Returns: result
list_uv_mapsC
列出网格的 UV 层。
Inputs: object (required). Returns: result
manage_collectionC
集合管理。action: create/delete/move/link/unlink/rename。move 会把对象从其它集合移出。
Inputs: name (required), action (required), parent, objects, +1 more.
mark_seamsA
标记缝合边:按边索引,或从锐边生成;clear 先清空。
Inputs: object (required), clear, edges, from_sharp.
material_from_texture_folderC
扫描文件夹,按文件名识别 basecolor/roughness/metallic/normal/height/ao 贴图并建 PBR 材质。
Inputs: folder (required), name, assign_to.
measure_distanceC
两点距离;a/b 可为对象名或 [x,y,z]。
Inputs: a (required), b (required).
mesh_cleanupC
网格清理:重算法线、按距离合并顶点、溶解退化、平滑着色、按角度自动平滑(弧度)。
Inputs: name (required), inside, threshold, shade_smooth, +4 more.
move_modifierB
调整修改器顺序:给 index,或 direction UP/DOWN/TOP/BOTTOM。
Inputs: object (required), modifier (required), index, direction.
nla_push_downC
把当前动作推入 NLA 轨道。
Inputs: object (required).
normalize_weightsC
把每个顶点的权重归一化到 1(lock_active 保持活动组不变)。
Inputs: object (required), groups, lock_active.
open_blendC
打开 .blend 文件。
Inputs: path (required), load_ui.
pack_uv_islandsC
打包 UV 岛。
Inputs: object (required), margin, rotate.
parent_to_armatureC
把网格绑定到骨架。method: AUTOMATIC(自动权重)/ENVELOPE/EMPTY_GROUPS/DEFORM。
Inputs: objects (required), armature (required), method.
point_camera_atB
相机朝向对象或坐标;use_constraint 用 Track To 持续跟随。
Inputs: camera (required), target (required), use_constraint.
point_light_atA
让灯光指向对象或坐标;use_constraint 用 Track To 约束持续跟随。
Inputs: light (required), target (required), use_constraint.
polyhaven_categoriesB
Poly Haven 分类及数量。asset_type: hdris/textures/models。
Inputs: asset_type.
polyhaven_downloadA
下载 Poly Haven 资产并导入:HDRI→世界光;纹理→PBR 材质;模型→导入场景。resolution: 1k/2k/4k/8k。
Inputs: asset_id (required), asset_type (required), resolution, file_format.
polyhaven_searchB
搜索 Poly Haven 资产(按分类/关键词),按下载量排序。
Inputs: limit, query, asset_type, categories. Returns: result
purge_orphansA
清理无用户的孤儿数据块(材质、网格、图片…)。
Inputs: no named parameters.
quick_product_renderC
三点光 + 相机取景 + 透明背景,一步渲染产品图。
Inputs: object (required), output_path (required), engine, samples, +1 more.
randomize_transformB
随机化变换,各参数为 ± 范围;同 seed 结果可复现。
Inputs: objects (required), seed, scale, location, +2 more.
ray_castB
从 origin 沿 direction 发射线,返回命中对象/位置/法线/面索引。
Inputs: origin (required), direction (required), distance.
redoB
重做(Ctrl+Shift+Z)。
Inputs: no named parameters.
remove_boneC
删除骨骼。
Inputs: bone (required), armature (required).
remove_geometry_nodeB
删除几何节点。
Inputs: node (required), node_group (required).
remove_modifierC
删除修改器。
Inputs: object (required), modifier (required).
remove_shader_nodeD
删除节点。
Inputs: node (required), material (required).
remove_uv_mapC
删除 UV 层。
Inputs: name (required), object (required).
rename_objectC
重命名对象(默认连同其数据块)。
Inputs: name (required), new_name (required), rename_data.
render_animationC
渲染帧序列。output_path 可含 #### 帧号占位(如 /tmp/out/frame_####.png)。
Inputs: output_path (required), frame_end, frame_start.
render_imageB
渲染当前帧到文件(默认 ~/.cache/blender-mcp-pro/renders/),return_image 时回传缩略图。
Inputs: frame, output_path, return_image, max_preview_size.
reset_poseC
重置姿态到静止位。
Inputs: armature (required), bones.
save_blendB
保存当前文件(给 path 即另存为)。
Inputs: path, compress.
save_imageC
把 Blender 内的图像保存到磁盘。
Inputs: path (required), image (required), format.
scatter_objectsC
把 source 散布到 surface 表面。method: GEOMETRY_NODES(非破坏实例)或 COPIES(真实副本)。
Inputs: source (required), surface (required), seed, count, +3 more.
search_local_assetsC
搜索本地资产库里的数据块。type: objects/materials/node_groups/worlds/collections/meshes/actions。
Inputs: type, query, library, assets_only. Returns: result
select_objectsB
选择对象。mode: replace/add/remove;active 指定活动对象。
Inputs: objects (required), mode, active.
set_active_cameraC
设为场景活动相机。
Inputs: name (required).
set_boneC
修改骨骼(parent 传空字符串即清除父级)。
Inputs: bone (required), armature (required), head, roll, +5 more.
set_cameraD
修改相机参数。dof: {enabled, focus_object, focus_distance, fstop}。
Inputs: name (required), dof, lens, type, +5 more.
set_color_managementC
色彩管理:view_transform (AgX/Filmic/Standard…)、look、曝光、gamma。
Inputs: look, gamma, exposure, view_transform.
set_color_rampB
设置 Color Ramp:stops=[{position, color}],interpolation: LINEAR/EASE/CONSTANT/B_SPLINE/CARDINAL。
Inputs: node (required), stops (required), material (required), interpolation.
set_current_frameC
跳到某帧。
Inputs: frame (required).
set_cursorC
设置 3D 游标位置/旋转。
Inputs: location, rotation.
set_custom_propertyC
设置对象自定义属性;value 省略即删除该属性。
Inputs: key (required), name (required), value.
set_frame_rangeB
设置帧范围与 fps。
Inputs: end (required), start (required), fps.
set_geometry_node_inputB
设置几何节点输入插槽值。
Inputs: node (required), value (required), socket (required), node_group (required).
set_gn_modifier_inputC
设置几何节点修改器面板上的输入值(按接口名)。
Inputs: input (required), value (required), object (required), modifier (required).
set_interpolationC
设置关键帧插值:CONSTANT/LINEAR/BEZIER/SINE/QUAD/…;easing: AUTO/EASE_IN/EASE_OUT/EASE_IN_OUT。
Inputs: mode (required), object (required), easing, data_path, +1 more.
set_lightC
修改灯光参数。shape 用于面光 SQUARE/RECTANGLE/DISK/ELLIPSE;angle 用于太阳光。
Inputs: name (required), size, angle, color, +6 more.
set_material_settingsC
材质渲染设置。surface_render_method: DITHERED/BLENDED;displacement_method: BUMP/DISPLACEMENT/BOTH。
Inputs: material (required), pass_index, backface_culling, displacement_method, +1 more.
set_modifierC
修改修改器属性。
Inputs: object (required), modifier (required), settings (required).
set_node_inputC
设置某节点某输入插槽的值(插槽可用名字、索引或 'Name#2')。
Inputs: node (required), value (required), socket (required), material (required).
set_node_propertyC
设置节点属性(operation、blend_type、data_type、image=图片名或路径、node_tree=组名…)。
Inputs: node (required), value (required), material (required), property (required).
set_originC
设置原点。type: GEOMETRY/CURSOR/CENTER_OF_MASS/CENTER_OF_VOLUME/BOUNDS/GEOMETRY_TO_ORIGIN。
Inputs: name (required), type.
set_parentA
设置父子关系;parent 省略即清除父级。keep_transform 保持世界变换。
Inputs: child (required), parent, keep_transform.
set_poseA
设置姿态:bones={骨名: {location?, rotation_euler?|rotation_quaternion?, scale?}};keyframe 时打关键帧。
Inputs: bones (required), armature (required), frame, keyframe.
set_principled_inputsA
批量设置 Principled BSDF 输入。键用 5.2 插槽名:Base Color, Metallic, Roughness, IOR, Alpha, Emission Color, Emission Strength, Specular IOR Level, Subsurface Weight, Transmission Weight, Coat Weight, Sheen Weight…
Inputs: inputs (required), material (required).
set_render_settingsC
渲染设置。engine: BLENDER_EEVEE/CYCLES/BLENDER_WORKBENCH;engine_settings 透传到 scene.eevee / scene.cycles 属性。
Inputs: fps, engine, denoise, samples, +8 more.
set_shape_keyA
设置形态键值(不存在则创建,含 Basis);给 frame 则同时打关键帧。
Inputs: name (required), value (required), object (required), frame.
set_transformC
设置位置/旋转(弧度欧拉)/缩放;relative=true 时为增量(缩放为乘法)。
Inputs: name (required), scale, location, relative, +1 more.
set_unitsA
场景单位。system: METRIC/IMPERIAL/NONE;length_unit 如 METERS/CENTIMETERS;rotation_unit: DEGREES/RADIANS。
Inputs: system, length_unit, scale_length, rotation_unit.
setup_studio_sceneC
一键摄影棚:弧形背景板(或地面)、世界光/HDRI、三点光、相机取景。
Inputs: camera, ground, subject, backdrop, +1 more.
setup_three_point_lightingB
围绕目标布 Key/Fill/Rim 三盏面光并对准它;color_temp 为开尔文色温。
Inputs: target (required), height, distance, rim_ratio, +3 more.
set_vertex_group_weightsA
设置顶点组权重:weights=[[vertex_index, weight], …] 或 all=统一值;mode: REPLACE/ADD/SUBTRACT。组不存在则创建。
Inputs: group (required), object (required), all, mode, +1 more.
set_visibilityC
设置视口/渲染/可选中的隐藏状态。
Inputs: objects (required), hide_render, hide_select, hide_viewport.
set_world_lightingA
世界光:背景颜色/强度,或加载 HDRI(rotation 为 Mapping 旋转弧度)。
Inputs: color, rotation, strength, hdri_path.
sketchfab_downloadB
下载 Sketchfab 模型(glb)并导入。需要在插件偏好里填 Sketchfab API token(或环境变量 SKETCHFAB_API_TOKEN)。
Inputs: uid (required).
sketchfab_searchB
搜索 Sketchfab 模型。
Inputs: query (required), count, categories, downloadable. Returns: result
turntable_animationC
给对象做旋转展示动画(父级空物体绕 Z 线性旋转 + 循环),并让相机取景。
Inputs: object (required), camera, frames, revolutions.
undoA
撤销上一步(Ctrl+Z)。
Inputs: no named parameters.
unlink_geometry_nodesC
断开几何节点某输入上的连线。
Inputs: to_node (required), to_socket (required), node_group (required).
unlink_nodesC
断开某输入插槽上的连线。
Inputs: to_node (required), material (required), to_socket (required).
unwrap_uvC
UV 展开。method: ANGLE_BASED/CONFORMAL/MINIMUM_STRETCH/SMART_PROJECT/CUBE/CYLINDER/SPHERE/LIGHTMAP。
Inputs: object (required), margin, method, uv_map, +1 more.
viewport_screenshotC
截取 3D 视口(需要 Blender GUI)。
Inputs: output_path, return_image.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 159 tools
Tools have specific names and descriptions that clearly distinguish their purposes, such as list_lights vs set_light vs create_light. While there are many tools, each targets a distinct operation or data type with minimal overlap.
Most tools follow verb_noun with underscores, but there is a mix of prefixes (get_, list_, set_, create_, add_, remove_, check_, setup_, batch_) and some verbs are used inconsistently (e.g., list_* vs get_* for similar queries). The pattern is recognizable but not perfectly uniform.
With 159 tools, the server has far more than the typical 3-15 range, exceeding even the 50+ threshold for extreme counts. This large number may overwhelm agents and suggests a need for consolidation or grouping.
The toolset covers a wide range of Blender functionality including objects, materials, nodes, lights, cameras, animation, modifiers, constraints, and asset management. While some niche areas like physics are not directly exposed, the execute_code tool fills gaps, making the coverage fairly complete.
Maintenance
Related MCP Connectors
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Connect your AI assistant to Blender for 3D modeling, Geometry Nodes, materials, lighting, animation, rendering and export. Inspect real scenes and viewport images, refine the result and restore checkpoints. OAuth connects your chat to Blender Bridge Desktop on an online Windows 10/11 x64 computer running Blender 4.2+. The chat can run on another device. Requires an active Blender Bridge account; 7-day trial available. AI model access is separate.
Blender-as-a-service for agents: search 3D assets, run Blender Python, or brief the studio agent.
Generate AI video, images and audio, and browse your history, from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTransforms Blender into an MCP server with 50+ tools for AI-driven 3D workflows, enabling complete control over objects, materials, animations, physics simulations, and rendering through natural language commands.45MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of Blender 3D through MCP clients, allowing creation, modification, and manipulation of 3D models, animations, and scenes.301MIT
- AlicenseCqualityCmaintenanceMCP server providing 138+ tools to control Blender 4.2 LTS, enabling modeling, coloring, rigging, animation, geometry nodes, UV, printing, batch operations, and IO through natural language from any AI assistant.1001MIT
- AlicenseNot gradedqualityCmaintenanceEnables any MCP client to drive Blender 5.2 LTS through natural language, with tools for scene inspection, object creation and transformation, material and modifier handling, rendering, viewport capture, and guarded Python execution.2MIT