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 |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| blender_get_objectsA | List objects in the Blender scene with optional filters. Returns name and type for each object by default. Use this as the first call to understand what exists in a scene. Do NOT use for: detailed object properties (use blender_get_object_data), material listing (use blender_get_materials), or collection tree (use blender_get_collections). |
| blender_get_object_dataA | Get detailed data for a single object. Use the 'include' parameter to control which data is returned, avoiding context overflow. Use this when: you need details about a specific object. Do NOT use for: armature bone data (use blender_get_armature_data), node tree structure (use blender_get_node_tree). |
| blender_get_node_treeA | Read the structure of any node tree — shader, compositor, or geometry nodes. Supports all 7 contexts. Use this when: you need to understand node graph structure before editing. Do NOT use for: editing nodes (use blender_edit_nodes). |
| blender_get_animation_dataA | Read animation data for an object or scene — keyframes, F-Curves, NLA strips, drivers, and shape keys. Use this when: you need to understand existing animation before modifying it. Do NOT use for: modifying animation (use blender_edit_animation). |
| blender_get_materialsA | List all materials in the file with their basic properties (name, use_nodes, user count, base PBR values). Use this when: you need an overview of available materials. Do NOT use for: detailed node tree structure (use blender_get_node_tree with tree_type=SHADER). |
| blender_get_sceneA | Get scene-level global information — statistics, render engine config, world environment basics, timeline/FPS, Blender version, memory usage. Use this when: you need the high-level project overview. Do NOT use for: object details (use blender_get_objects or blender_get_object_data). |
| blender_get_collectionsA | Return the collection hierarchy tree. Each collection shows name, child collections, object count, viewport/render visibility, and color tag. Use this when: you need to understand scene organization. Do NOT use for: listing objects (use blender_get_objects with collection filter). |
| blender_get_armature_dataA | Read armature/bone data — bone hierarchy, head/tail/roll positions, bone constraints, rest/pose transforms, bone groups, IK chains. Use this when: you need bone/rig information for animation or rigging. Do NOT use for: general object info (use blender_get_object_data). |
| blender_get_imagesA | List all images/textures in the file — name, dimensions, format, file path, packed status, color space, user count. Use this when: you need to audit textures or find missing image files. Do NOT use for: viewport screenshot (use blender_capture_viewport). |
| blender_capture_viewportA | Capture a screenshot of the current 3D viewport. This is the LLM's only way to 'see' the visual result. Supports different shading modes and camera view. Use this when: you need visual verification of changes. Do NOT use for: scene data queries (use blender_get_scene). |
| blender_get_selectionA | Return the current selection state — selected objects, active object, current interaction mode, and active tool. Also returns node_editor selection if a Shader/Geometry/Compositor node editor is open, including selected nodes and the active node. Use this when: you need to understand what the user is currently working on. Do NOT use for: listing all objects (use blender_get_objects). |
| blender_edit_nodesA | Edit any node tree in Blender — add/remove nodes, connect/disconnect sockets, set node input values and properties. Supports all 7 node tree contexts. Operations are executed in order within a single call. Use this when: you need to build or modify shader, compositor, or geometry node graphs. Do NOT use for: high-level PBR properties (use blender_manage_material), reading node trees (use blender_get_node_tree first). |
| blender_edit_animationA | Edit animation data — insert/modify/delete keyframes, manage NLA strips, set drivers, control shape keys, and configure timeline settings. Use this when: you need to create or modify animation. Do NOT use for: reading animation data (use blender_get_animation_data). |
| blender_edit_sequencerA | Edit the Video Sequence Editor (VSE) — add/modify/delete strips, add transitions and effects. Supports video, image, audio, text, color, and adjustment layer strips. Use this when: you need to edit video sequences or add VSE effects. Do NOT use for: compositor node effects (use blender_edit_nodes with tree_type=COMPOSITOR). |
| blender_create_objectA | Create a new object in the Blender scene. Supports mesh primitives, lights, cameras, curves, empties, armatures, and text objects. Automatically linked to the specified collection. Use this when: you need to add a new object to the scene. Do NOT use for: modifying existing objects (use blender_modify_object), adding modifiers (use blender_manage_modifier), assigning materials (use blender_manage_material). |
| blender_modify_objectA | Modify an existing object — transform, parent, visibility, rename, set origin, or delete. The 'delete' action is destructive and irreversible. Use this when: you need to change an object's properties. Do NOT use for: modifiers (use blender_manage_modifier), materials (use blender_manage_material), constraints (use blender_manage_constraints), physics (use blender_manage_physics). |
| blender_manage_materialA | Create, edit, assign, duplicate, or delete materials. For high-level PBR property editing only. The 'delete' action is destructive and irreversible. Use this when: you need to create/configure materials or assign them to objects. Do NOT use for: node-level shader editing (use blender_edit_nodes with tree_type=SHADER). |
| blender_manage_modifierA | Add, configure, apply, remove, or reorder modifiers on an object. The 'apply' and 'remove' actions are destructive. Use this when: you need to work with modifiers. Do NOT use for: reading modifier details (use blender_get_object_data with include=['modifiers']). |
| blender_manage_collectionA | Create, delete, or manage collections — link/unlink objects, set parent, control visibility. Use this when: you need to organize scene objects into collections. Do NOT use for: reading collection data (use blender_get_collections). |
| blender_manage_uvA | UV mapping operations — mark/clear seams, unwrap with various algorithms, pack/scale UV islands, manage UV layers. Use this when: you need algorithmic UV unwrapping or UV layer management. Do NOT use for: UV painting (use blender_execute_operator). |
| blender_manage_constraintsA | Add, configure, remove, enable/disable, or reorder constraints on objects or bones. Use this when: you need to set up rigging constraints or motion control. Do NOT use for: reading constraints (use blender_get_object_data with include=['constraints'] or blender_get_armature_data with include=['constraints']). |
| blender_manage_physicsA | Add, configure, remove, or bake physics simulations — rigid body, cloth, soft body, fluid, particle systems, and force fields. Use this when: you need physics simulations on objects. Do NOT use for: reading physics data (use blender_get_object_data with include=['physics']). |
| blender_setup_sceneA | Configure scene-level settings — render engine and quality, output resolution, world environment basics, and timeline/FPS. Use this when: you need to configure render, output, or timeline settings. Do NOT use for: detailed world shader editing (use blender_edit_nodes with tree_type=SHADER, context=WORLD). |
| blender_edit_meshA | Edit mesh geometry with operations like extrude, inset, bevel, loop cut, dissolve, merge, subdivide, and delete. Use this when: you need to modify mesh topology. Do NOT use for: UV operations (use blender_manage_uv), object transforms (use blender_modify_object). |
| blender_execute_operatorA | Execute any Blender operator (bpy.ops.*) by name with parameters. Use this when: you need a Blender operation not covered by other tools. Prefer specialized tools first for better validation and error messages. Do NOT use for: object creation (use blender_create_object), script execution (use blender_execute_script), or import/export (use blender_import_export). |
| blender_execute_scriptA | Execute arbitrary Python code in Blender's Python environment. CAUTION: This tool has full access to Blender's API and filesystem. Use only when: no other tool can accomplish the task. Try blender_execute_operator first for standard Blender operations. |
| blender_import_exportA | Import or export asset files in various formats — FBX, OBJ, glTF, USD, Alembic, STL, and more. Use this when: you need to import assets into or export assets from Blender. Do NOT use for: scene manipulation (use blender_create_object or blender_modify_object). |
| blender_render_sceneA | Render the current scene to an image file. Supports both still images and animations. Use this when: you need to render the scene to disk. Do NOT use for: viewport screenshots (use blender_capture_viewport), scene setup (use blender_setup_scene). |
| blender_batch_executeA | Execute multiple operations in a single batch request. Reduces MCP round-trips for complex workflows. Use this when: you need to perform multiple independent operations efficiently. Do NOT use for: single operations (use the specific tool directly). |
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/ageless-h/blender-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server