split_mesh_to_fit
Cuts one solid model into printable, reassembling pieces that fit your printer bed, preserving the part's real dimensions instead of scaling it down.
Instructions
Cut ONE solid into printable pieces that reassemble — the other honest answer to "it doesn't fit" (scale_mesh_to_fit shrinks; this cuts, so a functional part keeps its real dimensions). Opens Kiln's interactive inline 3D stage on the result (orbit/zoom panel in MCP Apps hosts; hosted sessions add a browser stage link).
Free accounts get 3 part splits a month; Pro has no monthly limit.
INLINE 3D STAGE: on success this tool opens Kiln's interactive 3D stage — an inline viewer panel the user can orbit, zoom, and turn over — in hosts that render MCP Apps panels (Kiln's hosted connection attaches a browser stage link for hosts that don't). Oversized meshes are decimated automatically for the stage; the PNG preview is the floor, not the whole experience.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"model_path": "<model_path>"
},
"name": "split_mesh_to_fit"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bed_x_mm | No | Explicit bed width (with y and z; used when no printer_id). Default: 0.0. | |
| bed_y_mm | No | Explicit bed depth. Default: 0.0. | |
| bed_z_mm | No | Explicit bed height. Default: 0.0. | |
| cut_axis | No | "x" | "y" | "z" for user-directed cuts. Default: "". | |
| material | No | Filament — sizes the pin joints and the glue advice. Default: "PLA". | |
| design_id | No | Track the split under this design. The result's ``kit`` block reports what was filed: pieces as versions with piece branches, and the assembly graph on the design's record. Splitting a mesh that IS one of the design's versions anchors the kit to that exact version (re-splitting a piece nests its children under it); a loose file births as a new version first. When speaking to the user, lead with piece labels ("Piece 2", "Piece 3.1"); the full branch address (``kit/<id>/piece/2``) is in the result too — give it when the user is disambiguating (several projects with a "piece 2", or comparing variants of one piece to keep working off the winner). When the kit cannot be filed where the call ran, ``kit.note`` says so and ``kit.save_payload`` is the ready-made record to land it on the design in your account. Default: "". | |
| add_joints | No | Master switch for seam joinery (default on). Off = every seam flush. Default: true. | |
| max_pieces | No | Hard cap on the number of pieces; 0 (default) lets the planner decide, within the piece allowance of your plan. Default: 0. | |
| model_path | Yes | The solid to cut (STL/OBJ/3MF/PLY/GLB, or STEP — converted at the door). Must be watertight. | |
| output_dir | No | Where piece STLs land (default: temp). Default: "". | |
| printer_id | No | Supported printer model id — its measured or rated usable volume becomes the bed. Omitted: falls back to explicit bed dims, then to your one registered printer. Default: "". | |
| structural | No | The seam carries real load (bracket, frame, anything holding weight). Steers auto away from magnets; with pins it also means: read the per-seam ``shear_rating`` before trusting the joint. Default: false. | |
| hardware_ok | No | Outside (non-printed) parts are welcome. False = printed-plastic-only build: no screws, inserts or magnets are ever suggested or cut. Default: true. | |
| magnet_d_mm | No | Your disc magnets' diameter (default 6). Default: 6.0. | |
| magnet_h_mm | No | Your disc magnets' height (default 3). Default: 3.0. | |
| serviceable | No | The seam will be taken apart again (battery door, maintenance panel, transportable prop). Auto routes to magnet seats (light duty) or heat-set inserts + screws (load / big seams) — CUT IN PLACE at the seam. Most people never set this themselves; the agent sets it when the person's intent says "opens", "swappable", "take apart". Default: false. | |
| joint_method | No | "auto" (default) — every seam asks the seam-strategy engine, which weighs the item's own physics (seam section, thinnest engagement, material stiffness) plus your intent flags. Or say it outright: "pins", "adhesive", "screws", "magnets", "none" — an explicit choice always wins, with honest physics warnings when the seam disagrees. Default: "auto". | |
| fastener_size | No | Screw thread for screw joints (default "M3") — insert bore and clearance come from the fastener tables, not guesses. Default: "M3". | |
| arrange_plates | No | Pack the pieces onto plates (default on). Default: true. | |
| snap_to_natural | No | Let each user cut shift a few millimeters to the nearest thin section. Default: false. | |
| cut_positions_mm | No | Cut positions along cut_axis, in the mesh's own coordinates (see analyze_mesh_geometry for the bounds). | |
| pin_clearance_mm | No | Radial pin/socket clearance (default 0.2 — the assembles-as-is bound). Default: 0.2. |