BlenderMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BLENDER_HOST | No | Host for the Blender TCP socket | localhost |
| BLENDER_PORT | No | Port for the Blender TCP socket | 9876 |
| IMG_TO_3D_PORT | No | Port for the local TripoSR server | 7862 |
| IMG_TO_3D_DEVICE | No | cuda or cpu | auto |
| IMG_TO_3D_MODEL_DIR | No | Local weights path or HuggingFace hub ID | stabilityai/TripoSR |
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 | Get detailed information about the current Blender scene |
| get_object_infoC | Get detailed information about a specific object in the Blender scene. Parameters:
|
| get_viewport_screenshotA | Capture a screenshot of the current Blender 3D viewport. Parameters:
Returns the screenshot as an Image. |
| execute_blender_codeB | Execute arbitrary Python code in Blender. Make sure to do it step-by-step by breaking it into smaller chunks. Parameters:
|
| get_polyhaven_categoriesA | Get a list of categories for a specific asset type on Polyhaven. Parameters:
|
| search_polyhaven_assetsB | Search for assets on Polyhaven with optional filtering. Parameters:
Returns a list of matching assets with basic information. |
| download_polyhaven_assetA | Download and import a Polyhaven asset into Blender. Parameters:
Returns a message indicating success or failure. |
| set_textureB | Apply a previously downloaded Polyhaven texture to an object. Parameters:
Returns a message indicating success or failure. |
| get_polyhaven_statusA | Check if PolyHaven integration is enabled in Blender. Returns a message indicating whether PolyHaven features are available. |
| get_hyper3d_statusB | Check if Hyper3D Rodin integration is enabled in Blender. Returns a message indicating whether Hyper3D Rodin features are available. Don't emphasize the key type in the returned message, but sliently remember it. |
| get_sketchfab_statusA | Check if Sketchfab integration is enabled in Blender. Returns a message indicating whether Sketchfab features are available. |
| search_sketchfab_modelsA | Search for models on Sketchfab with optional filtering. Parameters:
Returns a formatted list of matching models. |
| get_sketchfab_model_previewA | Get a preview thumbnail of a Sketchfab model by its UID. Use this to visually confirm a model before downloading. Parameters:
Returns the model's thumbnail as an Image for visual confirmation. |
| download_sketchfab_modelA | Download and import a Sketchfab model by its UID. The model will be scaled so its largest dimension equals target_size. Parameters:
Returns a message with import details including object names, dimensions, and bounding box. The model must be downloadable and you must have proper access rights. |
| generate_hyper3d_model_via_textA | Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful. Parameters:
Returns a message indicating success or failure. |
| generate_hyper3d_model_via_imagesA | Generate 3D asset using Hyper3D by giving images of the wanted asset, and import the generated asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful. Parameters:
Only one of {input_image_paths, input_image_urls} should be given at a time, depending on the Hyper3D Rodin's current mode. Returns a message indicating success or failure. |
| poll_rodin_job_statusA | Check if the Hyper3D Rodin generation task is completed. For Hyper3D Rodin mode MAIN_SITE: Parameters: - subscription_key: The subscription_key given in the generate model step. For Hyper3D Rodin mode FAL_AI: Parameters: - request_id: The request_id given in the generate model step. |
| import_generated_assetA | Import the asset generated by Hyper3D Rodin after the generation task is completed. Parameters:
Only give one of {task_uuid, request_id} based on the Hyper3D Rodin Mode! Return if the asset has been imported successfully. |
| get_hunyuan3d_statusA | Check if Hunyuan3D integration is enabled in Blender. Returns a message indicating whether Hunyuan3D features are available. Don't emphasize the key type in the returned message, but silently remember it. |
| generate_hunyuan3d_modelA | Generate 3D asset using Hunyuan3D by providing either text description, image reference, or both for the desired asset, and import the asset into Blender. The 3D asset has built-in materials. Parameters:
Returns:
|
| poll_hunyuan_job_statusA | Check if the Hunyuan3D generation task is completed. For Hunyuan3D: Parameters: - job_id: The job_id given in the generate model step. |
| import_generated_asset_hunyuanA | Import the asset generated by Hunyuan3D after the generation task is completed. Parameters:
Return if the asset has been imported successfully. |
| start_blenderA | Launch Blender as a managed subprocess. Parameters:
|
| close_blenderA | Close the Blender instance that was started with start_blender(). Parameters:
|
| get_blender_statusA | Report whether Blender is running, and whether the MCP addon is reachable. |
| capture_viewport_angleA | Capture the Blender 3D viewport from a named angle and return it as an image. Parameters:
|
| capture_contact_sheetA | Capture multiple viewport angles and stitch them into a single contact sheet image. Parameters:
Returns a single composited image with all requested angles labelled. |
| render_depth_mapA | Render a normalised depth map from the active camera using the Blender compositor Z-pass. Closer objects appear lighter. Parameters:
|
| store_reference_imageA | Store a local image file as a named reference for later comparison tools. Parameters:
|
| compare_reference_imageA | Capture the current viewport from a named angle and composite it side-by-side with a previously stored reference image. Parameters:
|
| diff_imagesA | Compare two images and produce a 3-panel composite: [Image A] | [Image B] | [Diff]. The diff panel desaturates the base image and paints changed regions in bright red, making differences immediately obvious. Parameters:
|
| move_objectA | Move an object to an absolute world-space position. |
| scale_objectC | Set the absolute scale of an object on each axis. |
| rotate_objectA | Set the Euler rotation of an object (degrees). Parameters:
|
| set_object_material_colorA | Set the Principled BSDF base colour of an object's material. Creates the material if one does not exist. Parameters:
|
| get_vertex_positionsA | Read vertex positions from a mesh object. Parameters:
Returns JSON with each vertex's index and [x, y, z] position. |
| set_vertex_positionA | Move a single vertex of a mesh object to a world-space position. Parameters:
|
| set_vertex_positionsA | Batch-update multiple vertex positions in a single call (much faster than calling set_vertex_position repeatedly for many vertices). Parameters:
|
| get_control_pointsA | Read the control points of a curve (BEZIER, POLY, or NURBS) object. For BEZIER curves returns: co, handle_left, handle_right, handle types. For POLY/NURBS curves returns: co (and weight for NURBS). Parameters:
|
| set_control_pointB | Move a curve control point and optionally adjust its bezier handles. Parameters:
|
| get_edgesA | Read edge data from a mesh: vertex pair, sharp flag, seam flag, crease, and bevel weight. Parameters:
|
| mark_sharp_edgesA | Mark edges as sharp (hard) or soft, controlling auto-smooth and the Edge Split modifier. Sharp edges appear as hard creases when smooth shading + auto-smooth is enabled. Soft (unsharp) edges blend smoothly with neighbouring faces. Parameters:
|
| set_edge_creaseB | Set subdivision crease weight on edges. Crease controls how the Subdivision Surface modifier handles edge sharpness: 0.0 = fully smooth (no crease), 1.0 = perfectly sharp crease. Values in between give progressively harder edges without going fully sharp. Parameters:
|
| set_edge_bevel_weightA | Set bevel weight on edges, used with the Bevel modifier (limit_method=WEIGHT). Only edges with weight > 0 will be bevelled when the modifier uses WEIGHT mode. This lets you selectively bevel specific edges without affecting the whole mesh. Typical workflow:
Parameters:
|
| get_facesA | Read face data from a mesh object. Parameters:
Returns JSON with each face's vertex_indices, normal, center, material_index, and area. |
| set_face_material_indexA | Assign a material slot to specific faces (for multi-material objects). Parameters:
|
| extrude_facesA | Extrude faces outward along their individual normals. Parameters:
|
| inset_facesB | Inset faces, creating a border ring of new polygons inside each face. Parameters:
|
| flip_normalsA | Flip face normals on a mesh (reverses which side is the outside). Parameters:
|
| merge_verticesA | Merge (weld) vertices that are within a distance threshold of each other. Equivalent to 'Merge by Distance' in Blender — useful for cleaning up imported meshes or fixing seams after boolean operations. Parameters:
|
| triangulate_meshA | Triangulate all faces of a mesh (convert quads/ngons to triangles). Useful before export to game engines or 3D printing. Parameters:
|
| subdivide_meshB | Subdivide all faces of a mesh (equivalent to Subdivide in Edit Mode). Parameters:
|
| apply_modifierA | Apply a named modifier on a mesh object, collapsing it into the mesh data. Parameters:
|
| get_mesh_statsB | Return detailed topology statistics for a mesh object. Parameters:
|
| create_cameraB | Add a new camera to the Blender scene. Parameters:
|
| set_active_cameraC | Set the active render camera to an existing camera object. Parameters:
|
| render_from_cameraA | Render a still from the specified (or active) camera. Parameters:
|
| render_all_camerasA | Render a still from every camera in the scene simultaneously and return a contact sheet with all results labelled by camera name. Parameters:
Returns a composited contact sheet image. Individual renders are also saved to output_dir so you can access them at full resolution. |
| find_objects_by_typeB | List all objects in the scene that match the given type. Parameters:
|
| measure_distanceA | Measure the Euclidean distance between the origins of two objects. Parameters:
|
| add_lightB | Add a light to the Blender scene. Parameters:
|
| set_world_backgroundA | Set the scene world background to a solid colour or an HDRI environment map. Parameters:
|
| add_3point_lightingA | Add a classic 3-point lighting rig (key, fill, back/rim) centred on a subject. Parameters:
|
| export_objectA | Export an object (or the full scene) to a 3D file. Parameters:
|
| import_fileB | Import a 3D file into the current Blender scene. Supports: .glb, .gltf, .fbx, .obj, .stl, .ply, .blend Parameters:
|
| save_blendA | Save the current Blender project as a .blend file. Parameters:
|
| load_blendA | Open a .blend file, replacing the current Blender scene. Unsaved changes to the current file will be lost — save first if needed. Parameters:
|
| add_primitiveA | Add a standard mesh primitive to the Blender scene. Parameters:
|
| delete_objectA | Delete an object from the scene and purge orphaned mesh/material data. Parameters:
|
| duplicate_objectA | Duplicate an object. Parameters:
|
| join_objectsB | Join multiple mesh objects into one. Parameters:
|
| separate_meshC | Separate a mesh object into multiple objects. Parameters:
|
| rename_objectB | Rename an object and its mesh data block. Parameters:
|
| set_originB | Set an object's origin point. Parameters:
|
| snap_to_groundA | Move an object so its lowest bounding-box point rests on the ground plane. Parameters:
|
| set_smooth_shadingA | Toggle smooth or flat shading on a mesh object. Parameters:
|
| parent_objectA | Parent one object to another, creating a hierarchy. Parameters:
|
| select_objectsA | Select or deselect objects by name list and/or type. Parameters:
|
| align_objectsA | Align multiple objects' origins along one axis. Parameters:
|
| create_materialA | Create (or replace) a PBR material using Principled BSDF. Parameters:
|
| assign_materialC | Assign an existing material to an object's material slot. Parameters:
|
| load_textureB | Load an image file and wire it into a material's texture slot. Parameters:
|
| add_modifierA | Add a modifier to an object with optional parameters. Parameters:
Returns the modifier name so you can reference it later with apply_modifier. |
| boolean_operationA | Perform a boolean operation between two mesh objects. Parameters:
|
| set_render_settingsB | Configure scene render settings. Parameters:
|
| add_keyframeA | Insert an animation keyframe on an object property. Parameters:
|
| set_frameC | Set the current scene frame (scrubs the timeline). Parameters:
|
| create_collectionA | Create a new collection for scene organisation. Parameters:
|
| move_to_collectionA | Move objects into a collection (removes them from all other collections). Parameters:
|
| load_img_to_3d_modelA | Start the local image-to-3D inference server (TripoSR). The server process is kept running until unload_img_to_3d_model() is called. Frees VRAM when unloaded — load only when you need it. Parameters:
|
| unload_img_to_3d_modelA | Stop the local image-to-3D server, freeing VRAM and memory. |
| generate_3d_from_imageA | Generate a 3D mesh (.glb) from a single image using the local TripoSR model. You must call load_img_to_3d_model() first. Parameters:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| asset_creation_strategy | Defines the preferred strategy for creating assets in Blender |
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/naab007/blender_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server