blender-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Check if the Blender addon is reachable and return version info. |
| get_scene_infoA | Get current scene metadata: name, frame range, FPS, render engine, object/material counts. |
| load_fileA | Load a .blend file. This replaces the current scene — confirm to proceed. |
| save_fileA | Save the current scene. If filepath is provided, save-as to that path. |
| set_frameC | Set the current frame. |
| set_frame_rangeC | Set the scene frame range (start and/or end frame). |
| get_object_infoA | Get detailed info about an object: type, transforms, modifiers, materials, parent, collections. |
| list_objectsA | List all objects in the scene. Optionally filter by type (MESH, CAMERA, LIGHT, EMPTY, etc.). |
| create_objectA | Create a new object. Types: CUBE, SPHERE, CYLINDER, CONE, TORUS, PLANE, CIRCLE, GRID, MONKEY, UV_SPHERE, ICO_SPHERE, EMPTY. Returns the actual name assigned (may differ if name already exists). |
| delete_objectA | Delete an object by name. Confirm required. |
| set_transformA | Set an object's location, rotation (radians), and/or scale. |
| apply_transformA | Apply (freeze) the object's transforms to mesh data. Resets the applied transforms to identity. |
| duplicate_objectB | Duplicate an object. If linked=True, the copy shares mesh data with the original. |
| rename_objectA | Rename an object. Returns the actual name assigned (may be auto-incremented). |
| set_parentC | Set parent-child relationship between objects. |
| clear_parentA | Clear an object's parent, keeping its world transform. |
| set_originB | Set an object's origin point. Types: ORIGIN_GEOMETRY, ORIGIN_CENTER_OF_MASS, ORIGIN_CENTER_OF_VOLUME, ORIGIN_CURSOR, GEOMETRY_ORIGIN. |
| select_objectsA | Select objects by name list, glob pattern, or type. Deselects others by default. |
| list_materialsA | List all materials in the blend file with user counts. |
| get_material_infoA | Get material settings: base color, metallic, roughness, node tree summary. |
| create_materialB | Create a new Principled BSDF material. base_color is [R, G, B, A] (0-1 range). |
| assign_materialA | Assign a material to an object. If slot is specified, replaces that slot; otherwise appends a new slot. |
| remove_materialA | Remove a material slot from an object by slot index. |
| set_material_propertyA | Set a Principled BSDF property. Properties: base_color, metallic, roughness, specular, transmission, emission_color, emission_strength, alpha, normal_strength. |
| duplicate_materialB | Duplicate a material. Returns the new material name. |
| delete_materialA | Delete a material. Confirm required. Removes from all object slots. |
| get_viewport_infoA | Get viewport settings: shading mode, overlays, camera, clip distances. |
| capture_viewportA | Capture a screenshot of the 3D viewport to a file. Returns the file path. |
| set_viewport_shadingA | Set viewport shading mode: WIREFRAME, SOLID, MATERIAL, RENDERED. |
| set_viewport_cameraA | Set the active camera for the viewport. Pass camera object name, or None for default. |
| frame_selectedA | Frame the viewport to show selected objects (Numpad .). |
| frame_allA | Frame the viewport to show all objects (Home key). |
| list_collectionsA | List all collections with child counts, object counts, and visibility. |
| create_collectionB | Create a new collection, optionally under a parent collection. |
| move_to_collectionA | Move an object to a collection (removes from current collections). |
| set_collection_visibilityA | Set collection visibility in viewport and/or render. |
| delete_collectionA | Delete a collection. Objects in it become orphaned. Confirm required. |
| get_render_settingsA | Get render settings: engine, resolution, samples, output path, file format. |
| set_render_settingsC | Configure render settings. Engine: CYCLES, BLENDER_EEVEE_NEXT, BLENDER_WORKBENCH. File format: PNG, JPEG, EXR, TIFF. Color mode: BW, RGB, RGBA. |
| render_imageA | Render the current frame to an image file. Uses scene output path if filepath not specified. |
| render_animationA | Render the full animation frame range. This is a long-running operation. |
| render_viewportB | Render the viewport (OpenGL render) to a file. |
| list_render_enginesA | List available render engines. |
| execute_pythonA | Execute Python code inside Blender. Dangerous patterns are blocked by default. Use this only when no dedicated tool exists for the operation. Confirm required. |
| evaluate_expressionA | Evaluate a Python expression inside Blender and return the result. Safe for read-only queries like 'len(bpy.data.objects)' or 'bpy.context.mode'. |
| find_objectsA | Search for objects by name pattern (glob), type, material, or collection. |
| batch_set_propertyC | Set the same property on multiple objects at once. |
| batch_deleteA | Delete multiple objects at once. Confirm required. |
| find_error_objectsA | Find objects with issues: missing textures, broken modifiers, invalid references. |
| import_fileA | Import a file into the scene. Supported formats: FBX, OBJ, GLTF/GLB, USD, Alembic, STL, PLY, SVG, DAE. Format is auto-detected from extension if not specified. |
| export_fileB | Export the scene to a file. Format is auto-detected from extension if not specified. |
| list_supported_formatsA | List supported import and export file formats. |
| export_selectionB | Export only selected objects to a file. |
| list_modifiersA | List all modifiers on an object with their type and settings. |
| add_modifierA | Add a modifier to an object. Common types: SUBSURF, BOOLEAN, ARRAY, MIRROR, SOLIDIFY, BEVEL, DECIMATE, SMOOTH, SHRINKWRAP, ARMATURE, CURVE, LATTICE. |
| remove_modifierB | Remove a modifier from an object by name. |
| set_modifier_propertyB | Set a modifier property. Property names are Blender API names (e.g., 'levels' for SUBSURF, 'count' for ARRAY, 'operation' for BOOLEAN). |
| apply_modifierA | Apply a modifier, baking it into the mesh. Requires Object Mode. Irreversible. |
| move_modifierB | Move a modifier up or down in the stack. Direction: UP or DOWN. |
| toggle_modifier_visibilityB | Toggle modifier visibility in viewport and/or render. |
| copy_modifiersB | Copy all modifiers from source object to target object. |
| list_lightsA | List all lights in the scene with type and settings. |
| create_lightB | Create a light. Types: POINT, SUN, SPOT, AREA. |
| set_light_propertyA | Set a light property: energy, color, shadow_soft_size, spot_size, spot_blend, use_shadow, size (area light). |
| create_hdri_worldA | Set up HDRI environment lighting from an image file. |
| set_world_propertyB | Set world/environment property: color, strength. |
| get_world_infoA | Get current world/environment shader settings. |
| create_light_rigB | Create a three-point lighting setup (key, fill, rim). Optionally aimed at a target object. |
| list_camerasA | List all cameras with their settings. |
| create_cameraB | Create a camera with specified focal length. |
| set_camera_propertyB | Set camera property: focal_length, sensor_width, clip_start, clip_end, dof_use, dof_focus_distance, dof_aperture_fstop. |
| set_active_cameraA | Set the active scene camera. |
| camera_look_atB | Point a camera at a target object or world location. |
| setup_camera_dofB | Configure depth of field on a camera. Focus on an object or at a specific distance. |
| get_keyframesA | Get keyframes on an object, optionally filtered to a specific data_path (e.g., 'location', 'rotation_euler'). |
| set_keyframeC | Insert a keyframe on an object property at a specific frame. Use index for individual channels (0=X, 1=Y, 2=Z), or -1 for all channels. |
| set_keyframesA | Batch insert multiple keyframes. Each entry: {frame: int, value: float|list}. More efficient than calling set_keyframe repeatedly. |
| delete_keyframeC | Delete a keyframe at a specific frame. |
| clear_animationA | Remove all animation data (keyframes, actions) from an object. Irreversible. |
| get_action_infoA | Get info about an action: frame range, channels, keyframe count. |
| list_actionsA | List all actions in the blend file. |
| set_interpolationA | Set keyframe interpolation for all keyframes on a channel. Types: BEZIER, LINEAR, CONSTANT. |
| set_playback_rangeC | Set the preview/playback range. |
| playback_controlA | Control animation playback: PLAY, PAUSE, STOP. |
| list_constraintsB | List constraints on an object or pose bone. |
| add_constraintC | Add a constraint. Types: COPY_LOCATION, COPY_ROTATION, COPY_SCALE, TRACK_TO, DAMPED_TRACK, LOCKED_TRACK, LIMIT_LOCATION, LIMIT_ROTATION, LIMIT_SCALE, IK, CHILD_OF, FLOOR, FOLLOW_PATH, CLAMP_TO. |
| remove_constraintB | Remove a constraint by name. |
| set_constraint_propertyC | Set a constraint property. Common: target, subtarget, influence, axis. |
| set_constraint_influenceB | Set constraint influence (0.0 to 1.0). |
| reorder_constraintB | Move a constraint up or down. Direction: UP or DOWN. |
| get_mesh_infoA | Get mesh info: vertex/edge/face count, UV maps, vertex groups, has_custom_normals. |
| get_verticesA | Get vertex positions. Optionally filter by vertex group. Limited to avoid huge payloads. |
| set_verticesA | Set vertex positions. Each entry: {index: int, co: [x, y, z]}. |
| get_vertex_groupsA | Get vertex groups on a mesh with member counts. |
| create_vertex_groupA | Create a vertex group, optionally assigning vertices with a weight. |
| set_smooth_shadingA | Set shading mode. smooth=True for smooth shading, False for flat. auto_smooth uses angle threshold (radians). |
| separate_meshB | Separate mesh into multiple objects. Modes: LOOSE (by loose parts), MATERIAL (by material), SELECTED. |
| join_meshesA | Join multiple mesh objects into one. The first object becomes the active/target. Destroys source objects. |
| create_curveB | Create a curve object. Types: BEZIER, NURBS, POLY (path). |
| get_curve_infoA | Get curve info: spline count, point count, dimensions, bevel settings. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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