servers / blender-mcp-server

blender-mcp-server

communityunknownpythondestructive capablehealthy

MCP server for controlling Blender via AI assistants


01Tools · 27

How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.

ToolRiskSide effectsApproval
blender_object_get_transform
Get the position, rotation, and scale of a Blender object by name.
readfalseunknown
blender_scene_get_info
Get information about the current Blender scene including name, frame range, render engine, resolution, and object count.
readfalseunknown
blender_material_set_color
Set the base color of a material. Color is [r, g, b] with values 0-1.
writetrueunknown
blender_job_list
List known async Blender jobs with their IDs, statuses, and creation timestamps.
readfalseunknown
blender_material_set_texture
Set an image texture as the base color of a material. Provide the file path to the image.
writetrueunknown
blender_object_rotate
Set the rotation of an object. Provide rotation as [x, y, z] angles. By default angles are in degrees.
unknownunknownunknown
blender_python_exec
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.
writetrueunknown
blender_object_create
Create a new mesh object in Blender. Supported types: cube, sphere, cylinder, plane, cone, torus.
writetrueunknown
blender_history_undo
Undo the last operation in Blender.
unknownunknownunknown
blender_export_obj
Export the scene as OBJ. Provide the output file path.
unknownunknownunknown
blender_material_assign
Assign an existing material to an object.
writetrueunknown
blender_material_create
Create a new material. Optionally set an initial base color as [r, g, b] with values 0-1.
writetrueunknown
blender_scene_list_objects
List all objects in the current Blender scene. Optionally filter by type (MESH, CAMERA, LIGHT, EMPTY, CURVE, etc.).
readfalseunknown
blender_material_list
List all materials in the Blender file.
readfalseunknown
blender_object_translate
Move an object. Provide either 'location' for absolute positioning or 'offset' for relative movement.
unknownunknownunknown
blender_export_fbx
Export the scene as FBX. Provide the output file path.
unknownunknownunknown
blender_job_status
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.
readfalseunknown
blender_python_exec_async
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.
writetrueunknown
blender_object_delete
Delete an object from the Blender scene by name.
destructivetruetrue
blender_object_duplicate
Duplicate an object in the Blender scene. Optionally provide a new name.
unknownunknownunknown
blender_render_still
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.
unknownunknownunknown
blender_history_redo
Redo the last undone operation in Blender.
unknownunknownunknown
blender_object_scale
Set the scale of an object. Provide scale as [x, y, z].
unknownunknownunknown
blender_object_get_hierarchy
Get the parent/child hierarchy of objects. If name is provided, returns the subtree for that object. Otherwise returns the full scene hierarchy.
readfalseunknown
blender_export_gltf
Export the scene as glTF/GLB. Provide the output file path.
unknownunknownunknown
blender_job_cancel
Cancel a running or queued async Blender job. The job's __cancel_event__ is set; scripts that check it will stop gracefully.
destructivetruetrue
blender_render_animation
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.
unknownunknownunknown

02Install & source
uvx blender-mcp-server
uvx
pip install blender-mcp-server
pip

05Provenance & freshness
sourcesPyPI [p4]
last_checked2026-08-16 19:48Z
next_check2026-08-16 22:48Z
cadenceevery 3h
verifiedhandshake:failed metadata:passed handshake:failed metadata:passed handshake:failed metadata:passed handshake:failed metadata:passed handshake:failed metadata:passed
index_statusindex8 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. blender-mcp-server MCP — as seen on mcpexplorer.com

[![blender-mcp-server MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/blender-mcp-server.svg)](https://mcpexplorer.com/servers/blender-mcp-server)

Next step

This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.

Explore loadouts →
blender-mcp-server — MCPExplorer