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.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| blender_object_get_transform Get the position, rotation, and scale of a Blender object by name. | read | false | unknown |
| blender_scene_get_info Get information about the current Blender scene including name, frame range, render engine, resolution, and object count. | read | false | unknown |
| blender_material_set_color Set the base color of a material. Color is [r, g, b] with values 0-1. | write | true | unknown |
| blender_job_list List known async Blender jobs with their IDs, statuses, and creation timestamps. | read | false | unknown |
| blender_material_set_texture Set an image texture as the base color of a material. Provide the file path to the image. | write | true | unknown |
| blender_object_rotate Set the rotation of an object. Provide rotation as [x, y, z] angles. By default angles are in degrees. | unknown | unknown | unknown |
| 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. | write | true | unknown |
| blender_object_create Create a new mesh object in Blender. Supported types: cube, sphere, cylinder, plane, cone, torus. | write | true | unknown |
| blender_history_undo Undo the last operation in Blender. | unknown | unknown | unknown |
| blender_export_obj Export the scene as OBJ. Provide the output file path. | unknown | unknown | unknown |
| blender_material_assign Assign an existing material to an object. | write | true | unknown |
| blender_material_create Create a new material. Optionally set an initial base color as [r, g, b] with values 0-1. | write | true | unknown |
| blender_scene_list_objects List all objects in the current Blender scene. Optionally filter by type (MESH, CAMERA, LIGHT, EMPTY, CURVE, etc.). | read | false | unknown |
| blender_material_list List all materials in the Blender file. | read | false | unknown |
| blender_object_translate Move an object. Provide either 'location' for absolute positioning or 'offset' for relative movement. | unknown | unknown | unknown |
| blender_export_fbx Export the scene as FBX. Provide the output file path. | unknown | unknown | unknown |
| 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. | read | false | unknown |
| 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. | write | true | unknown |
| blender_object_delete Delete an object from the Blender scene by name. | destructive | true | true |
| blender_object_duplicate Duplicate an object in the Blender scene. Optionally provide a new name. | unknown | unknown | unknown |
| 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. | unknown | unknown | unknown |
| blender_history_redo Redo the last undone operation in Blender. | unknown | unknown | unknown |
| blender_object_scale Set the scale of an object. Provide scale as [x, y, z]. | unknown | unknown | unknown |
| 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. | read | false | unknown |
| blender_export_gltf Export the scene as glTF/GLB. Provide the output file path. | unknown | unknown | unknown |
| 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. | destructive | true | true |
| 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. | unknown | unknown | unknown |
02Install & source
uvx blender-mcp-server
uvxpip install blender-mcp-server
pip- repohttps://github.com/djeada/blender-mcp-server
- packagehttps://pypi.org/project/blender-mcp-server
- homepagehttps://github.com/djeada/blender-mcp-server
- licenseMIT
- adoption22 stars · 6 forks
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_statusindex — 8 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](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 →