Skip to main content
Glama
A-to-PC

blender-lab-mcp-client

by A-to-PC

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
blender_scene_get_infoA

Get information about the current Blender scene including name, frame range, render engine, resolution, and object count.

blender_scene_list_objectsA

List all objects in the current Blender scene. Optionally filter by type (MESH, CAMERA, LIGHT, EMPTY, CURVE, etc.).

blender_object_get_transformA

Get the position, rotation, and scale of a Blender object by name.

blender_object_get_hierarchyA

Get the parent/child hierarchy of objects. If name is provided, returns the subtree for that object. Otherwise returns the full scene hierarchy.

blender_material_listA

List all materials in the Blender file.

blender_object_createC

Create a new mesh object in Blender. Supported types: cube, sphere, cylinder, plane, cone, torus.

blender_object_deleteC

Delete an object from the Blender scene by name.

blender_object_translateA

Move an object. Provide either 'location' for absolute positioning or 'offset' for relative movement.

blender_object_rotateA

Set the rotation of an object. Provide rotation as [x, y, z] angles. By default angles are in degrees.

blender_object_scaleB

Set the scale of an object. Provide scale as [x, y, z].

blender_object_duplicateC

Duplicate an object in the Blender scene. Optionally provide a new name.

blender_material_createA

Create a new material. Optionally set an initial base color as [r, g, b] with values 0-1.

blender_material_assignB

Assign an existing material to an object.

blender_material_set_colorA

Set the base color of a material. Color is [r, g, b] with values 0-1.

blender_material_set_textureC

Set an image texture as the base color of a material. Provide the file path to the image.

blender_render_stillA

Render the current scene as a still image. Optionally set output path, resolution, and render engine (BLENDER_EEVEE, CYCLES, etc.). Use transport='bridge' for the live Blender add-on session, or transport='headless' with blend_file='/path/to/file.blend' to render in a separate background Blender process.

blender_render_animationA

Render an animation. Optionally set output path, frame range, and render engine. Use transport='bridge' for the live Blender add-on session, or transport='headless' with a blend_file to render in a separate background Blender process.

blender_export_gltfB

Export the scene as glTF/GLB. Provide the output file path.

blender_export_objB

Export the scene as OBJ. Provide the output file path.

blender_export_fbxB

Export the scene as FBX. Provide the output file path.

blender_history_undoA

Undo the last operation in Blender.

blender_history_redoA

Redo the last undone operation in Blender.

blender_python_execA

Execute a Python script in Blender's context synchronously. Provide either 'code' (inline Python string) or 'script_path' (path to a .py file), not both. The script has access to 'bpy', 'mathutils', and an 'args' dict with your supplied arguments. Set 'result' in the script to return a JSON-serializable value. Returns the result, captured stdout/stderr, and execution duration. Use transport='bridge' for the live Blender add-on session, or transport='headless' to run the script in a separate blender -b process. For long-running tasks like baking, use blender_python_exec_async.

blender_python_exec_asyncA

Start a long-running Python script in Blender asynchronously. Same parameters as blender_python_exec. Returns a job_id immediately. Use blender_job_status to poll for completion, and blender_job_cancel to abort. The script can check 'cancel_event.is_set()' to detect cancellation. Ideal for fluid baking, rigid body simulation, or heavy scene generation. Use transport='headless' to run the job in a separate background Blender process.

blender_job_statusA

Get the status of an async Blender job. Returns job_id, status (queued/running/succeeded/failed/cancelled), timestamps, result, stdout, stderr, and error. Poll this after starting a job with blender_python_exec_async.

blender_job_cancelA

Cancel a running or queued async Blender job. The job's cancel_event is set; scripts that check it will stop gracefully.

blender_job_listA

List known async Blender jobs with their IDs, statuses, and creation timestamps.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 27 tools

Disambiguation5/5

Each tool maps to a distinct Blender domain (scene, object, material, render, export, history, python, jobs) with clear action verbs. Even closely related tools like render_still vs render_animation and python_exec vs async are clearly differentiated by purpose and parameters.

Naming Consistency5/5

All tools follow the exact pattern 'blender_<domain>_<action>' with snake_case throughout. Naming is perfectly consistent, making it easy to predict tool names and group functionality.

Tool Count4/5

With 27 tools, the count is slightly on the heavier side but justified given the breadth of Blender capabilities covered (scene, objects, materials, rendering, exports, Python execution, async jobs, undo/redo). No redundant tools; each serves a distinct need.

Completeness4/5

The surface covers core scene management, object transforms, material handling, rendering, exports, and Python integration, which are the primary workflows. Minor gaps exist (e.g., creation of lights/cameras only via generic mesh creation, no modifier support), but agents can route around these via blender_python_exec.

Maintenance

ActivitySlowing
ResponsivenessNo issues