Skip to content

Advanced Tools ​

Blender MCP ​

Connect a standard stdio Blender MCP server with BLENDER_MCP_COMMAND (for example, the full path to uvx) and BLENDER_MCP_ARGS (for example ["mcp-for-blender"]). The mcp-for-blender project was formerly published as blender-mcp, which still works as a compatibility wrapper. Install and enable its addon in Blender and start the addon's connection. Blender and this server must be able to read the same local files. Printer tools work without Blender configured. Keep Blender open while your agent works: the addon does not run in background mode. See the Blender guide for setup, units, and a worked example that refits a phone case for a new phone end to end.

blender_mcp_status ​

Inspect the Blender MCP configuration. With connect: true, it starts the configured server, initializes it, and lists its tools by name and summary. Pass tool_names to get the full input schemas of the tools you are about to call (include_schemas: true returns all of them, which is large). A successful connection does not prove the addon inside Blender is running; call get_scene_info through blender_mcp_call to check that.

json
{
  "connect": true,
  "tool_names": ["execute_blender_code"]
}

blender_mcp_call ​

Call a tool the Blender MCP server advertises, such as get_scene_info or execute_blender_code, with arguments matching its discovered schema. The full MCP result, including images and errors, is returned. Calls can change the active Blender scene and are never retried automatically. Preserve the user's own words in user_prompt when the remote tool asks for it.

json
{
  "tool_name": "get_scene_info",
  "arguments": { "user_prompt": "Inspect the scene before preparing a print." }
}

blender_mcp_export_stl ​

Export named objects from the live Blender scene to a new STL for slicing. Use it after modelling or editing through blender_mcp_call; Blender MCP's own export_scene writes GLB or FBX, not STL. The export writes world-space geometry with modifiers applied, without changing the scene, selection, or mode.

json
{
  "object_names": ["PhoneCase"],
  "output_path": "/path/to/phone-case.stl",
  "user_prompt": "Make it fit my iPhone 17 Pro Max."
}
  • The result reports output_verified: true, the triangle count, and bounding_box.dimensions measured from the written file. Compare the dimensions with what you expect before slicing.
  • STL files carry no units and slicers read them as millimetres. An imported STL keeps its numbers, so the default scale: 1 is right. If a part was modelled in metres, the result warns that it is under 1 unit across; export again with scale: 1000.
  • output_path must be new and its parent must exist; nothing is ever overwritten. On any Blender error, mismatched receipt, or invalid file, nothing is published.

blender_mcp_edit_model ​

Import an STL into Blender, apply ordered edits, and export a new STL. Supported operations are decimate:<ratio> (greater than 0, up to 1), remesh:<voxel size> (positive, in STL units), and boolean_union:<STL path>. Use blender_mcp_call for anything else.

json
{
  "stl_path": "/path/to/model.stl",
  "output_path": "/path/to/model-edited.stl",
  "operations": ["decimate:0.5"],
  "user_prompt": "Reduce the triangle count for printing.",
  "execute": false
}
  • The default (execute: false) validates the request and returns the plan and generated Python without launching Blender. Set execute: true to apply it, reusing the preview's output_path.
  • Omitting output_path selects a unique model-edited-<id>.stl beside the input. Existing input and output files are never overwritten.
  • The edit requires Object Mode, preserves existing scene objects and selection, and publishes the new STL only after checking a matching export receipt and a valid, finite triangle mesh. Binary STLs up to 256 MiB are validated in small chunks; ASCII STLs are limited to 4 MiB.
  • Requests have connection, discovery, and call deadlines (BLENDER_MCP_TIMEOUT_MS, default 120000) that also cover file validation. Interrupted edits are never replayed; inspect Blender before retrying, because an edit may already have started.
  • A valid STL is not proof of printability. Inspect the result before slicing.

Legacy BLENDER_MCP_BRIDGE_COMMAND shell commands remain supported when no standard command is configured. They receive JSON on stdin (modelPath, operations, source, and stlPath) and the same JSON in MCP_BLENDER_PAYLOAD, and their results report output_verified: false. A per-call bridge_command requires MCP_ALLOW_EXECUTABLE_ARG=1.

Released under the GPL-2.0 license. An independent open-source project, not affiliated with any printer manufacturer or host software.