generate_rolling_tray
Generate a shallow rectangular 3D-printable rolling tray with a concave cove inner wall so loose contents sweep into a corner instead of catching a sharp edge; decorate the work surface and underside.
Instructions
Generate a rolling tray — a shallow rectangular work tray with a concave cove inner wall, so loose contents sweep clean into a corner instead of catching a 90-degree edge. Decorate the interior work surface and the exterior underside, both. Opens Kiln's interactive inline 3D stage on the result (orbit/zoom panel in MCP Apps hosts; hosted sessions add a browser stage link). MAKE DOORS: design_session, Kiln's front door for making an object, is not installed here (signed in to Kiln it runs on Kiln's servers). On this install compile_scad IS the make → preview → iterate loop: make it, show the preview, iterate.
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
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "generate_rolling_tray"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Work-surface content. Default: "". | |
| size | No | ``"small"``/``"medium"``/``"large"``/``"xl"``. Any other name is refused. Default: "". | |
| bottom | No | ``"plain"``, ``"pocket"``, ``"text:..."``, or ``"qr:URL"``. Any other value is refused. Default: "plain". | |
| wall_mm | No | Wall/floor thickness (default 2.4). Default: 2.4. | |
| brief_id | No | Optional saved-goal id from ``design_session``. When supplied the produced mesh gets a ``design_brief:<id>`` intent sidecar so the audit's "matches what you asked for" gate and the ``compare_design_versions`` intent diff light up. Default: "". | |
| depth_mm | No | Depth — short edge (default 135). Default: 135.0. | |
| material | No | Material (default PLA). Default: "PLA". | |
| width_mm | No | Width — long edge (default 190). Default: 190.0. | |
| height_mm | No | Height in mm (default 18). Default: 18.0. | |
| body_color | No | Body color (default white). Default: "white". | |
| photo_mask | No | Photo crop shape for a photograph (a logo on a clean field is carved unmasked whatever is passed; a name outside this list is refused) — ``"rectangle"``, ``"rounded_rectangle"``, ``"circle"``. Empty or ``"auto"`` is ``"rounded_rectangle"``, since the tray is rectangular. Default: "". | |
| printer_id | No | Target printer for the bed-fit check (e.g. ``"bambu_a1"``); empty auto-detects the active printer. Default: "". | |
| include_step | No | Also emit a CAD-exact STEP file of the tray body; on success the response gains a ``step`` block with ``step_path``. A QR underside or a photo on the work surface refuses the STEP with the reason; the mesh outputs are always unaffected. Defaults to False. Default: false. | |
| cove_radius_mm | No | Interior fillet radius; 0 = auto. Default: 0.0. | |
| color_overrides | No | JSON dict mapping role → color. Default: "". | |
| corner_radius_mm | No | Outer corner radius (default 14). Default: 14.0. |