blender-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BLENDER_MCP_HOST | No | Host for the MCP server. Default is 127.0.0.1 | |
| BLENDER_MCP_PORT | No | Port for the MCP server. Default is 9877 | |
| SKETCHFAB_API_TOKEN | No | API token for Sketchfab downloads |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_scene_infoA | 场景概况:名称、帧范围、fps、单位、活动物体/相机、选择、按类型计数、集合树。 |
| list_objectsA | 列出场景对象(可按类型 MESH/LIGHT/CAMERA…、集合、名字通配符、是否选中过滤)。 |
| get_object_infoA | 对象详情:变换、世界位置、父子、集合、修改器、约束、材质槽、网格统计、自定义属性。 |
| 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 为分段数。 |
| delete_objectA | 删除对象(名字列表或过滤器),可连带子物体。 |
| duplicate_objectC | 复制对象;linked=true 共享网格数据;offset 为位置偏移。 |
| set_transformC | 设置位置/旋转(弧度欧拉)/缩放;relative=true 时为增量(缩放为乘法)。 |
| rename_objectC | 重命名对象(默认连同其数据块)。 |
| set_parentA | 设置父子关系;parent 省略即清除父级。keep_transform 保持世界变换。 |
| set_visibilityC | 设置视口/渲染/可选中的隐藏状态。 |
| select_objectsB | 选择对象。mode: replace/add/remove;active 指定活动对象。 |
| manage_collectionC | 集合管理。action: create/delete/move/link/unlink/rename。move 会把对象从其它集合移出。 |
| join_objectsC | 合并多个网格对象到 target(默认第一个)。 |
| apply_transformsC | 应用变换到网格数据(Ctrl+A)。 |
| set_originC | 设置原点。type: GEOMETRY/CURSOR/CENTER_OF_MASS/CENTER_OF_VOLUME/BOUNDS/GEOMETRY_TO_ORIGIN。 |
| set_custom_propertyC | 设置对象自定义属性;value 省略即删除该属性。 |
| execute_codeC | 在 Blender 里执行任意 Python(预置 bpy/bmesh/mathutils/Vector/math)。返回 stdout;return_var 指定要取回的变量名。 |
| get_blender_infoB | Blender 版本、Python、当前文件、已启用插件、server 状态、Sketchfab token 是否已配置。 |
| get_api_docsA | 本地查 bpy API 文档。path 形如 bpy.types.Object / bpy.types.Object.location / bpy.ops.mesh.primitive_cube_add。 |
| undoA | 撤销上一步(Ctrl+Z)。 |
| redoB | 重做(Ctrl+Shift+Z)。 |
| purge_orphansA | 清理无用户的孤儿数据块(材质、网格、图片…)。 |
| set_unitsA | 场景单位。system: METRIC/IMPERIAL/NONE;length_unit 如 METERS/CENTIMETERS;rotation_unit: DEGREES/RADIANS。 |
| set_cursorC | 设置 3D 游标位置/旋转。 |
| measure_distanceC | 两点距离;a/b 可为对象名或 [x,y,z]。 |
| get_bounding_boxD | 合并包围盒:min/max/center/size。 |
| ray_castB | 从 origin 沿 direction 发射线,返回命中对象/位置/法线/面索引。 |
| check_meshC | 网格体检:顶点/边/面、三角/四边/ngon、非流形边、松散点、重复顶点。 |
| mesh_cleanupC | 网格清理:重算法线、按距离合并顶点、溶解退化、平滑着色、按角度自动平滑(弧度)。 |
| list_materialsA | 列出材质及使用它的对象。 |
| get_material_infoC | 材质详情:Principled 主要输入值、贴图、渲染设置、使用者。 |
| create_materialB | 新建 Principled BSDF 材质;alpha<1 自动切 BLENDED;assign_to 直接赋给对象。 |
| assign_materialB | 把材质赋给对象的槽位(默认 0,不存在则新建)。 |
| 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… |
| set_material_settingsC | 材质渲染设置。surface_render_method: DITHERED/BLENDED;displacement_method: BUMP/DISPLACEMENT/BOTH。 |
| add_image_textureC | 加载贴图接到 Principled。target: Base Color/Roughness/Metallic/Normal(自动加 Normal Map)/Alpha/Emission Color/Height/AO。 |
| create_pbr_materialC | 用一组贴图路径一次建好 PBR 材质。 |
| delete_materialB | 删除材质(或仅从对象上解除)。 |
| list_shader_nodesA | 列出材质节点树:每个节点的类型/位置/输入值/属性,以及全部连线。 |
| add_shader_nodeC | 添加节点。type 可省略前缀(TexNoise = ShaderNodeTexNoise);inputs 按插槽名设值;properties 设节点属性(如 blend_type)。 |
| remove_shader_nodeD | 删除节点。 |
| set_node_inputC | 设置某节点某输入插槽的值(插槽可用名字、索引或 'Name#2')。 |
| set_node_propertyC | 设置节点属性(operation、blend_type、data_type、image=图片名或路径、node_tree=组名…)。 |
| link_nodesD | 连线。 |
| unlink_nodesC | 断开某输入插槽上的连线。 |
| set_color_rampB | 设置 Color Ramp:stops=[{position, color}],interpolation: LINEAR/EASE/CONSTANT/B_SPLINE/CARDINAL。 |
| build_node_treeC | 一次性建树:nodes=[{type,name?,location?,inputs?,properties?}],links=[{from_node,from_socket,to_node,to_socket}]。 |
| get_node_typesA | 枚举可用节点类型及其输入/输出插槽。tree: shader/geometry;filter 子串过滤。 |
| list_lightsB | 列出灯光及参数。 |
| get_light_infoC | 灯光详情。 |
| create_lightB | 新建灯光。type: POINT/SUN/SPOT/AREA;energy 瓦;radius 软阴影半径;size 面光尺寸;spot_size 弧度;target 指向对象或坐标。 |
| set_lightC | 修改灯光参数。shape 用于面光 SQUARE/RECTANGLE/DISK/ELLIPSE;angle 用于太阳光。 |
| point_light_atA | 让灯光指向对象或坐标;use_constraint 用 Track To 约束持续跟随。 |
| set_world_lightingA | 世界光:背景颜色/强度,或加载 HDRI(rotation 为 Mapping 旋转弧度)。 |
| list_modifier_typesC | 列出全部修改器类型及各自可设置的属性(名称/类型/枚举/默认值)。 |
| list_modifiersB | 列出对象上的修改器栈。 |
| get_modifier_settingsC | 某修改器的当前值与可设置属性表。 |
| add_modifierC | 添加修改器(SUBSURF/BEVEL/ARRAY/MIRROR/SOLIDIFY/BOOLEAN/…共 83 种)。settings 键为 bpy 属性名,对象引用直接给对象名。 |
| set_modifierC | 修改修改器属性。 |
| remove_modifierC | 删除修改器。 |
| apply_modifierC | 应用修改器到网格。 |
| move_modifierB | 调整修改器顺序:给 index,或 direction UP/DOWN/TOP/BOTTOM。 |
| list_node_groupsB | 列出节点组(type: GEOMETRY/SHADER)。 |
| create_geometry_nodesB | 给对象新建一个几何节点修改器与节点组(含 Group Input→Output 直通)。 |
| get_node_treeC | 节点组全貌:节点、连线、接口(输入/输出插槽)与使用者。 |
| add_geometry_nodeC | 添加几何节点。type 可省略前缀(MeshCube = GeometryNodeMeshCube;FunctionNode* 也可)。 |
| remove_geometry_nodeB | 删除几何节点。 |
| link_geometry_nodesD | 几何节点连线。 |
| unlink_geometry_nodesC | 断开几何节点某输入上的连线。 |
| set_geometry_node_inputB | 设置几何节点输入插槽值。 |
| add_group_socketC | 给节点组接口加插槽(暴露到修改器面板)。socket_type: Float/Int/Bool/Vector/Color/Object/Collection/Material/Geometry… |
| set_gn_modifier_inputC | 设置几何节点修改器面板上的输入值(按接口名)。 |
| build_geometry_node_treeC | 一次性构建几何节点树(格式同 build_node_tree)。 |
| list_camerasA | 列出相机。 |
| get_camera_infoC | 相机详情(镜头、类型、裁剪、DOF、是否活动)。 |
| create_cameraC | 新建相机。type: PERSP/ORTHO;lens 焦距 mm。 |
| set_cameraD | 修改相机参数。dof: {enabled, focus_object, focus_distance, fstop}。 |
| set_active_cameraC | 设为场景活动相机。 |
| point_camera_atB | 相机朝向对象或坐标;use_constraint 用 Track To 持续跟随。 |
| frame_objectsC | 沿相机当前朝向后退到能框住这些对象的距离并对准它们。 |
| get_render_settingsA | 当前渲染设置(引擎、分辨率、采样、输出、色彩管理)。 |
| list_render_enginesB | 可用渲染引擎。 |
| set_render_settingsC | 渲染设置。engine: BLENDER_EEVEE/CYCLES/BLENDER_WORKBENCH;engine_settings 透传到 scene.eevee / scene.cycles 属性。 |
| set_color_managementC | 色彩管理:view_transform (AgX/Filmic/Standard…)、look、曝光、gamma。 |
| render_imageB | 渲染当前帧到文件(默认 ~/.cache/blender-mcp-pro/renders/),return_image 时回传缩略图。 |
| render_animationC | 渲染帧序列。output_path 可含 #### 帧号占位(如 /tmp/out/frame_####.png)。 |
| viewport_screenshotC | 截取 3D 视口(需要 Blender GUI)。 |
| import_fileC | 导入文件(obj/fbx/gltf/glb/usd/usda/usdc/stl/ply/abc/blend,按后缀识别)。options 透传给导入算子。返回新增对象名。 |
| export_fileD | 导出到文件(同上格式)。objects 省略则导出全部。 |
| append_from_blendC | 从 .blend 追加/链接一个数据块(objects/materials/collections/node_groups/actions/…)。 |
| save_blendB | 保存当前文件(给 path 即另存为)。 |
| open_blendC | 打开 .blend 文件。 |
| get_animation_infoA | 场景帧范围/fps/动作列表;给 object 时附带其 action、fcurve 摘要、NLA 轨道、形态键。 |
| set_frame_rangeB | 设置帧范围与 fps。 |
| set_current_frameC | 跳到某帧。 |
| insert_keyframeA | 插关键帧。data_path 如 location / rotation_euler / scale / hide_render / ["prop"];给 value 先赋值再打帧;index 指定分量。 |
| insert_keyframes_batchC | 批量打帧:keys=[{frame, location?, rotation?, scale?, <其他 data_path>?}]。 |
| delete_keyframeD | 删除某帧的关键帧。 |
| list_keyframesC | 列出 fcurve 与关键帧(帧、值、插值)。 |
| set_interpolationC | 设置关键帧插值:CONSTANT/LINEAR/BEZIER/SINE/QUAD/…;easing: AUTO/EASE_IN/EASE_OUT/EASE_IN_OUT。 |
| add_fcurve_modifierC | 给 fcurve 加修改器:CYCLES(循环)/NOISE/LIMITS/STEPPED/GENERATOR…;settings 为其属性。 |
| assign_actionC | 给对象指定动作(省略则新建)。 |
| nla_push_downC | 把当前动作推入 NLA 轨道。 |
| add_nla_stripC | 在 NLA 轨道上添加动作片段。 |
| bake_animationC | 把约束/父级/NLA 的运动烘焙成逐帧关键帧。 |
| list_shape_keysC | 列出形态键。 |
| set_shape_keyA | 设置形态键值(不存在则创建,含 Basis);给 frame 则同时打关键帧。 |
| list_uv_mapsC | 列出网格的 UV 层。 |
| add_uv_mapD | 新增 UV 层。 |
| remove_uv_mapC | 删除 UV 层。 |
| unwrap_uvC | UV 展开。method: ANGLE_BASED/CONFORMAL/MINIMUM_STRETCH/SMART_PROJECT/CUBE/CYLINDER/SPHERE/LIGHTMAP。 |
| pack_uv_islandsC | 打包 UV 岛。 |
| mark_seamsA | 标记缝合边:按边索引,或从锐边生成;clear 先清空。 |
| create_imageC | 新建空白图像。 |
| bake_textureB | Cycles 烘焙到贴图。bake_type: DIFFUSE/NORMAL/AO/ROUGHNESS/EMIT/COMBINED/…;无 UV 自动 smart project;output_path 保存 PNG。 |
| save_imageC | 把 Blender 内的图像保存到磁盘。 |
| list_imagesB | 列出图像数据块。 |
| batch_transformD | 批量变换(默认增量)。 |
| batch_renameC | 批量重命名:前缀/后缀/查找替换/编号。 |
| batch_apply_materialD | 批量赋材质。 |
| batch_add_modifierD | 批量加修改器。 |
| batch_set_propertyC | 批量设置任意属性路径(如 hide_render、data.use_auto_smooth、modifiers['Bevel'].width)。 |
| batch_deleteD | 批量删除。 |
| distribute_objectsA | 排列对象:LINE 沿 axis(默认 X) 等距;GRID 列沿 axis、行沿下一轴,columns 列;CIRCLE 以 axis(默认 Z) 为法线、半径 radius。 |
| randomize_transformB | 随机化变换,各参数为 ± 范围;同 seed 结果可复现。 |
| create_armatureB | 新建骨架;bones=[{name, head, tail, parent?, roll?, connect?, deform?}] 一次建骨链。 |
| list_bonesA | 列出骨骼(head/tail/父子/deform),pose=true 附带姿态变换与约束。 |
| add_boneC | 添加一根骨骼。 |
| set_boneC | 修改骨骼(parent 传空字符串即清除父级)。 |
| remove_boneC | 删除骨骼。 |
| parent_to_armatureC | 把网格绑定到骨架。method: AUTOMATIC(自动权重)/ENVELOPE/EMPTY_GROUPS/DEFORM。 |
| add_bone_constraintC | 给骨骼加约束(IK/COPY_ROTATION/COPY_LOCATION/TRACK_TO/DAMPED_TRACK/LIMIT_ROTATION/STRETCH_TO…)。settings 里 target 给对象名、subtarget 给骨骼名。 |
| set_poseA | 设置姿态:bones={骨名: {location?, rotation_euler?|rotation_quaternion?, scale?}};keyframe 时打关键帧。 |
| reset_poseC | 重置姿态到静止位。 |
| set_vertex_group_weightsA | 设置顶点组权重:weights=[[vertex_index, weight], …] 或 all=统一值;mode: REPLACE/ADD/SUBTRACT。组不存在则创建。 |
| add_rigify_metarigA | 添加 Rigify 元骨架:human/basic_human/basic_quadruped/cat/wolf/horse/shark/bird。 |
| generate_rigify_rigC | 由元骨架生成 Rigify 控制骨架。 |
| check_rigC | 骨架综合体检:零长骨、多根、deform 骨无顶点组、未权重/未归一顶点、未应用缩放、约束目标丢失、命名不对称。 |
| check_bone_hierarchyD | 骨骼层级树、孤立骨、最大深度。 |
| check_bone_namingC | 检查 .L/.R 对称命名:缺失镜像、不规范命名。 |
| find_unweighted_verticesC | 找出没有骨骼权重的顶点。 |
| get_bone_influenceB | 某顶点受哪些顶点组/骨骼影响及权重。 |
| list_constraint_issuesA | 列出骨骼约束问题:目标缺失、subtarget 不存在、IK 链过长、被禁用、influence 为 0。 |
| normalize_weightsC | 把每个顶点的权重归一化到 1(lock_active 保持活动组不变)。 |
| polyhaven_categoriesB | Poly Haven 分类及数量。asset_type: hdris/textures/models。 |
| polyhaven_searchB | 搜索 Poly Haven 资产(按分类/关键词),按下载量排序。 |
| polyhaven_downloadA | 下载 Poly Haven 资产并导入:HDRI→世界光;纹理→PBR 材质;模型→导入场景。resolution: 1k/2k/4k/8k。 |
| sketchfab_searchB | 搜索 Sketchfab 模型。 |
| sketchfab_downloadB | 下载 Sketchfab 模型(glb)并导入。需要在插件偏好里填 Sketchfab API token(或环境变量 SKETCHFAB_API_TOKEN)。 |
| list_asset_librariesA | Blender 偏好里配置的本地资产库。 |
| search_local_assetsC | 搜索本地资产库里的数据块。type: objects/materials/node_groups/worlds/collections/meshes/actions。 |
| import_local_assetC | 从本地资产库导入数据块(file 可指定库内 .blend 相对路径)。 |
| setup_three_point_lightingB | 围绕目标布 Key/Fill/Rim 三盏面光并对准它;color_temp 为开尔文色温。 |
| setup_studio_sceneC | 一键摄影棚:弧形背景板(或地面)、世界光/HDRI、三点光、相机取景。 |
| turntable_animationC | 给对象做旋转展示动画(父级空物体绕 Z 线性旋转 + 循环),并让相机取景。 |
| quick_product_renderC | 三点光 + 相机取景 + 透明背景,一步渲染产品图。 |
| material_from_texture_folderC | 扫描文件夹,按文件名识别 basecolor/roughness/metallic/normal/height/ao 贴图并建 PBR 材质。 |
| scatter_objectsC | 把 source 散布到 surface 表面。method: GEOMETRY_NODES(非破坏实例)或 COPIES(真实副本)。 |
| export_for_gameB | 游戏资产导出:复制→应用修改器→三角化→缩放→导出 GLB/GLTF/FBX/OBJ,原对象不动。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.