Blender Copilot MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BLENDER_HOST | No | Blender addon TCP host | localhost |
| BLENDER_PORT | No | Blender addon TCP port | 9876 |
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 complete scene information including all objects, camera, render settings, and frame range. Returns object names, types, locations, vertex/face counts for meshes, and scene metadata. |
| get_object_infoA | Get detailed information about a specific object by name. Returns location, rotation, scale, materials, modifiers, constraints, vertex/edge/face counts, bounding box, and parent/child hierarchy. |
| analyze_sceneA | Analyze the entire scene for statistics and potential issues. Returns total vertex/face/triangle counts, object type breakdown, material count, top objects by triangle count, and issues like non-uniform scale, missing materials, n-gons. |
| get_viewport_screenshotA | Capture a screenshot of the 3D viewport. Returns the file path to the saved image. Uses OpenGL render for speed. Useful for visual verification of scene state. |
| create_objectA | Create a 3D primitive object in the scene. Types: CUBE, SPHERE, UV_SPHERE, ICO_SPHERE, CYLINDER, CONE, TORUS, PLANE, CIRCLE, GRID, MONKEY, EMPTY, CAMERA, LIGHT, POINT_LIGHT, SUN_LIGHT, SPOT_LIGHT, AREA_LIGHT. Location is [x, y, z]. Rotation is in degrees [x, y, z]. Scale is [x, y, z]. |
| create_curveB | Create a curve from a list of control points. Each point is [x, y, z] (or [x, y, z, w] for NURBS). Types: BEZIER, NURBS, POLY. Set bevel_depth > 0 for tubular curves. Set close=True for closed loops. Fill modes: FULL, BACK, FRONT, NONE. |
| create_textB | Create a 3D text object. Set extrude > 0 for 3D text depth. Set bevel_depth > 0 for beveled edges. Rotation in degrees. Alignment options: LEFT, CENTER, RIGHT for X; TOP, CENTER, BOTTOM for Y. |
| create_armatureA | Create an armature (skeleton) with bones for rigging. Each bone dict: {"name": "BoneName", "head": [x,y,z], "tail": [x,y,z], "parent": "ParentBone"}. Parent is optional. Bones are created in edit mode then switched back to object mode. |
| translate_objectA | Move an object. If relative=True (default), adds to current position. If relative=False, sets absolute position. Units are Blender units (meters). |
| rotate_objectB | Rotate an object. Values are in degrees by default. If relative=True, adds to current rotation. |
| scale_objectB | Scale an object. Set uniform to scale equally on all axes. If relative=True, multiplies current scale. If False, sets absolute scale. |
| apply_transformA | Apply (freeze) the object's transforms, resetting them to identity. Essential before export or after non-uniform scaling. |
| snap_to_groundA | Snap an object's lowest point to Z=0 (the ground plane). Useful for placing objects on a floor or surface. |
| origin_setB | Set the origin point of an object. Types: ORIGIN_GEOMETRY (center of geometry), ORIGIN_CENTER_OF_MASS, ORIGIN_CENTER_OF_VOLUME, ORIGIN_CURSOR, GEOMETRY_ORIGIN. |
| duplicate_objectA | Duplicate an object. If linked=True, shares mesh data (instance). If linked=False (default), creates an independent copy. |
| delete_objectB | Delete an object from the scene by name. |
| select_objectA | Select an object and make it active. If add=False (default), deselects all others first. |
| set_parentB | Set parent-child relationship. If keep_transform=True, child maintains its world position. |
| clear_parentA | Remove parent from an object. If keep_transform=True, object stays in place. |
| set_visibilityB | Set viewport and render visibility of an object. |
| get_hierarchyA | Get the parent-child hierarchy tree. If name is given, returns that object's subtree. If no name, returns all root objects and their children. |
| rename_objectA | Rename an object. Blender may append .001 if the name already exists. |
| undoA | Undo the last operation in Blender. |
| redoB | Redo the last undone operation in Blender. |
| boolean_operationB | Perform a boolean operation between two mesh objects. Operations: DIFFERENCE (subtract), UNION (add), INTERSECT (overlap only). If apply=True, the modifier is applied and the cutter is removed. |
| join_objectsB | Join multiple objects into one. All objects are merged into the first one in the list. |
| separate_objectA | Separate an object into multiple objects. Modes: LOOSE (by loose parts), MATERIAL (by material), SELECTED (by selection). |
| subdivideA | Subdivide all faces of a mesh. Cuts = number of subdivision levels. Smooth > 0 applies smoothing to subdivided vertices. |
| extrude_facesB | Extrude all faces of a mesh along their normals by the given offset distance. |
| bevel_edgesB | Bevel all edges of a mesh. Width controls bevel size, segments controls smoothness. |
| inset_facesC | Inset all faces of a mesh. Thickness controls inset distance, depth controls push in/out. |
| shade_smoothB | Set smooth or flat shading on an object. smooth=True for smooth, False for flat. |
| decimateB | Reduce mesh polygon count. Ratio 0.5 = reduce to 50% of original faces. Lower ratio = more reduction. Applies modifier immediately. |
| remeshB | Remesh an object to create clean, uniform topology. Modes: VOXEL (uniform voxels), SMOOTH, SHARP, BLOCKS. Smaller voxel_size = higher detail but more polygons. |
| merge_by_distanceA | Merge vertices that are closer than the threshold distance. Useful for cleaning up duplicate vertices after boolean operations. |
| flip_normalsA | Flip all face normals of a mesh. Useful when faces appear inside-out. |
| fill_holesC | Automatically detect and fill holes in a mesh by selecting non-manifold edges and filling. |
| bridge_edge_loopsA | Bridge two selected edge loops to create connecting faces. The object must have exactly two edge loops selected in edit mode. |
| add_modifierC | Add a modifier to an object. Common types: SUBSURF, MIRROR, ARRAY, SOLIDIFY, BEVEL, BOOLEAN, SHRINKWRAP, REMESH, DECIMATE, SMOOTH, CAST, WAVE, DISPLACE, LATTICE. Properties dict sets modifier attributes, e.g. {"levels": 2} for SUBSURF. |
| apply_modifierC | Apply a modifier to permanently bake its effect into the mesh geometry. |
| remove_modifierC | Remove a modifier from an object without applying it. |
| create_arrayB | Create a linear array of an object. Count = number of copies. Offset is [x, y, z]. If use_relative=True, offset is relative to object size. Example: offset=[1,0,0] with relative = one object-width apart on X. |
| create_circular_arrayB | Create a circular array using an empty as rotation pivot. Count = number of copies around the circle. Axis: X, Y, or Z. Radius offsets the object from the pivot center. |
| set_materialA | Set PBR material properties on an object using Principled BSDF. base_color: [R,G,B] or [R,G,B,A] (0-1 range). metallic: 0=dielectric, 1=metal. roughness: 0=mirror, 1=diffuse. transmission: 0=opaque, 1=glass. emission_color + emission_strength for glowing materials. |
| create_glassC | Apply a glass/transparent material to an object. IOR: 1.0=air, 1.33=water, 1.45=glass, 1.52=window glass, 2.42=diamond. |
| create_metalB | Apply a metallic material to an object. Default is silver-ish. Color examples: gold=[1.0,0.76,0.33], copper=[0.72,0.45,0.2], steel=[0.8,0.8,0.8]. |
| create_emissionB | Apply an emissive (glowing) material to an object. Color is [R,G,B,A]. Strength controls brightness (10+ for visible glow in Cycles). |
| list_materialsA | List all materials in the scene with their base color and user count. |
| batch_assign_materialA | Assign the same material to multiple objects at once. Provide either a color [R,G,B] to create a new material, or material_name to use existing. |
| set_world_colorA | Set the world background to a solid color. Color is [R,G,B] (0-1 range). Strength controls brightness. Good for studio-style renders. |
| set_world_hdriA | Set an HDRI image as the world environment for realistic lighting. Provide the full file path to an .hdr or .exr file. |
| set_sky_textureC | Set a procedural Nishita sky texture for realistic outdoor lighting. sun_elevation: degrees above horizon. sun_rotation: compass direction. turbidity: atmospheric haze (2=clear, 10=hazy). |
| set_fogA | Add volumetric fog to the world. Density controls thickness. Color is [R,G,B] for emission tint. Requires Cycles or EEVEE for volume rendering. |
| set_cameraB | Configure the scene camera. Location is [x,y,z]. Rotation in degrees [x,y,z]. focal_length in mm (35=normal, 85=portrait, 200=telephoto). target: object name to point at. depth_of_field: {"enabled": true, "aperture": 2.8, "focus_object": "name", "focus_distance": 5.0}. |
| setup_studio_lightingA | Set up professional studio lighting. Removes existing lights and creates a new setup. Styles: THREE_POINT (key/fill/rim), REMBRANDT (dramatic), SOFT_BOX (even, soft), or default SUN lighting for outdoor scenes. |
| add_lightB | Add a light to the scene. Types: POINT, SUN, SPOT, AREA. Energy in watts. Color is [R,G,B]. Size controls shadow softness (AREA/POINT). Rotation in degrees (for SPOT/AREA directional lights). |
| render_imageB | Render the scene to an image file. Format is auto-detected from extension (.png, .jpg, .exr, .hdr, .bmp, .tiff). Engine: CYCLES, BLENDER_EEVEE_NEXT. Samples controls quality (more = better but slower). |
| configure_renderA | Configure render settings without rendering. Engine: CYCLES, BLENDER_EEVEE_NEXT. Resolution is [width, height]. denoise=True enables AI denoising in Cycles. transparent_bg=True for transparent background. color_management can set view_transform, look, exposure, gamma. |
| export_sceneC | Export the scene or selected objects to a file. Formats: glTF/GLB (web/game), OBJ, FBX (game engines), STL (3D printing), USD/USDC/USDA (VFX), PLY (point clouds). Creates directories as needed. |
| create_collectionB | Create a new collection (like a folder for organizing objects). Optionally nest it under a parent collection. |
| move_to_collectionC | Move an object to a different collection. Removes from current collection(s). |
| list_collectionsA | List all collections in the scene as a tree with their objects. |
| set_collection_visibilityA | Set viewport and render visibility of a collection and all its objects. |
| add_constraintC | Add a constraint to an object. Common types: TRACK_TO (aim at target), COPY_LOCATION, COPY_ROTATION, COPY_SCALE, LIMIT_LOCATION, LIMIT_ROTATION, FOLLOW_PATH, CLAMP_TO, DAMPED_TRACK, LOCKED_TRACK. Properties dict sets constraint attributes. |
| remove_constraintC | Remove a constraint from an object by constraint name. |
| batch_transformA | Apply the same transform to multiple objects at once. Translate is [x,y,z], rotate is [x,y,z] in degrees, scale is [x,y,z]. If relative=True, transforms are additive/multiplicative. |
| batch_deleteC | Delete multiple objects at once by their names. |
| align_objectsB | Align multiple objects along an axis. Axis: X, Y, or Z. Align_to: CENTER (average), MIN (lowest), MAX (highest), CURSOR (3D cursor). |
| distribute_objectsA | Evenly distribute objects along an axis. If spacing is given, uses fixed spacing. If spacing is None, distributes evenly between first and last object. |
| center_objectsA | Move objects so their collective center is at the world origin. If no names given, centers all objects in the scene. |
| set_keyframeC | Insert a keyframe on an object property at a specific frame. data_path examples: "location", "rotation_euler", "scale", "hide_viewport". Value sets the property value at that frame (list for vectors, float for scalars). |
| set_animation_rangeB | Set the animation frame range and optionally the FPS. Standard FPS values: 24 (film), 25 (PAL), 30 (NTSC), 60 (smooth). |
| set_frameC | Set the current frame in the timeline. |
| clear_animationC | Remove all animation data from an object. |
| add_rigid_bodyB | Add rigid body physics to an object. Types: ACTIVE (affected by gravity), PASSIVE (static collider). collision_shape: BOX, SPHERE, CAPSULE, CYLINDER, CONE, CONVEX_HULL (default, fits shape), MESH (exact, slow). |
| add_clothC | Add cloth simulation to a mesh object. Quality controls simulation accuracy (1-10). Mass in kg. |
| add_particlesA | Add a particle system to an object. Types: EMITTER (emit over time), HAIR (static strands). Count = number of particles. Lifetime in frames. Velocity = emission speed. |
| bake_physicsC | Bake all physics simulations in the scene to cache. Must be baked before rendering physics simulations. |
| smart_uv_projectB | Automatically UV unwrap a mesh using Smart UV Project. angle_limit in degrees controls island splitting (66 is good default). island_margin adds padding between UV islands. |
| uv_unwrapB | UV unwrap a mesh using seam-based unwrapping. Methods: ANGLE_BASED (good default), CONFORMAL (preserves angles better). Margin adds padding between UV islands. |
| execute_codeA | Execute arbitrary Python code inside Blender. Has access to bpy, mathutils, math, os. Blocked imports: subprocess, shutil, socket, ctypes, multiprocessing, webbrowser. Store results in a variable named 'result' to return them. Use this for advanced operations not covered by other tools. |
| optimize_sceneA | Optimize the entire scene: remove orphan meshes/materials/images, and merge duplicate vertices on all meshes. Returns a log of all optimizations performed. |
| set_material_colorB | Set or create a simple color material on an object. color: [R,G,B] or [R,G,B,A] (0-1 range). |
| set_principled_bsdfC | Full control over Principled BSDF PBR shader. Only set the parameters you need. Colors as [R,G,B] or [R,G,B,A] 0.0-1.0. Scalars 0.0-1.0 except emission_strength and ior. |
| set_textureB | Apply a previously downloaded PolyHaven texture to an object. texture_id must have been downloaded first via download_polyhaven_asset. |
| get_polyhaven_statusA | Check if PolyHaven integration is enabled in Blender. PolyHaven provides free HDRIs, textures, and 3D models. |
| get_polyhaven_categoriesA | Get categories for a PolyHaven asset type. asset_type: hdris, textures, models, all. |
| search_polyhaven_assetsB | Search PolyHaven assets with optional filtering. asset_type: hdris, textures, models, all. categories: comma-separated list of categories to filter by. |
| download_polyhaven_assetB | Download and import a PolyHaven asset into Blender. asset_type: hdris, textures, models. resolution: 1k, 2k, 4k. file_format: hdr/exr for HDRIs, jpg/png for textures, gltf/fbx for models. |
| get_sketchfab_statusA | Check if Sketchfab integration is enabled in Blender. Sketchfab has a wide variety of realistic downloadable 3D models. |
| search_sketchfab_modelsC | Search Sketchfab for 3D models. query: search text. count: max results. downloadable: only downloadable models. |
| get_sketchfab_model_previewA | Get a preview thumbnail of a Sketchfab model by UID. Use before downloading to visually confirm the model. |
| download_sketchfab_modelC | Download and import a Sketchfab model. Scales to target_size (largest dimension in meters). Examples: chair=1.0, table=0.75, car=4.5, person=1.7, small object=0.1-0.3. |
| get_hyper3d_statusC | Check if Hyper3D Rodin integration is enabled. Generates 3D models from text or images. |
| generate_hyper3d_model_via_textB | Generate 3D model from text description using Hyper3D Rodin. text_prompt: English description. bbox_condition: optional [L,W,H] ratio. |
| generate_hyper3d_model_via_imagesA | Generate 3D model from images using Hyper3D Rodin. Provide either input_image_paths (local) or input_image_urls (remote), not both. bbox_condition: optional [L,W,H] ratio. |
| poll_rodin_job_statusA | Poll Hyper3D Rodin generation status. Task is done when all statuses are 'Done'. Provide subscription_key (MAIN_SITE) or request_id (FAL_AI) from the generate step. |
| import_generated_assetA | Import a Hyper3D Rodin generated asset after generation completes. name: object name in scene. Provide task_uuid (MAIN_SITE) or request_id (FAL_AI). |
| get_hunyuan3d_statusC | Check if Hunyuan3D integration is enabled. Generates 3D models from text or images. |
| generate_hunyuan3d_modelB | Generate 3D model using Hunyuan3D from text and/or image. text_prompt: English/Chinese description. input_image_url: local or remote image URL. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| asset_creation_strategy | 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/dwgx/blender-copilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server