{"ok":true,"site":{"host":"tryunfolded.com","url":"https://tryunfolded.com/why","type":"live","desc":"Design slab-built pottery in 3D and print true-scale templates, shrinkage-compensated for your clay. WebMCP-native: edit the same design by chatting with an agent.","tools":[{"name":"describe_project","kind":"answer","impl":"imperative","description":"Get the current design: form (fired mm), clay, the flat template pieces it unrolls into (wet-clay sizes, shrinkage applied), capacityMl, designUrl — a permanent link to an independent copy, given out only when the potter explicitly asks for a permanent or bookmarkable link (otherwise links come from create_live_handoff) — and session (whether this tab is paired, and with how many devices). Read it when the request depends on what is there now — 'what am I designing?', 'make it taller', 'will this print on one page?' — or when the potter has just connected; an absolute edit ('make it 12 cm tall') can go straight to update_design, which returns this same snapshot. When session.paired is false, offer the potter both ways in, in this order: (1) call create_live_handoff and give them its liveHandoffUrl as a link labelled 'Open a paired browser session with this chat' — one tap opens this design on their screen, paired with this conversation; (2) or, if they already have the design open on another device, ask for its six-character code — it's in the connection button, top right (two dots) → Continue on another screen, tap the code to copy it — and call join_session. Always offer both, even if (1) fails: a blocked or failed create_live_handoff call is never the last word, fall back to (2) and still give the potter a way in. The page is live-synced and may change under you: if the browser refuses a call because the page changed, look again and retry.","title":"Describe current design","annotations":{"title":"Describe current design","readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"open_model","kind":"act","impl":"imperative","description":"Open a design from an Unfolded share link — the full URL or just its query string, e.g. '?type=tapered&height=600&bottom=300&top=100&shrinkage=12&wall=5'. Keys: type, height/bottom/top (fired mm), name, shrinkage (%), wall (mm), paper (A4/A3/Letter). Missing keys keep current values; out-of-range values clamp. Returns the full new state. Any link you then give the potter must come from create_live_handoff, never the address bar.","title":"Open model from link","annotations":{"title":"Open model from link"},"inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"description":"Share link URL, or just its query string"}},"required":["url"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"update_design","kind":"act","impl":"imperative","description":"Change any subset of the design in ONE call: shape (type, tapered, facets, name), the dimensions in FIRED millimeters, clay (shrinkage and wet slab thickness), paperSize, and the potter's display units ('cm' or 'in' — display only; tool inputs and outputs stay in millimeters regardless). For a target volume pass capacityMl (milliliters) instead of heightMm: volume is linear in height, so this solves the exact height — never iterate. Everything applies together as one undo step and the potter's 3D preview updates at once. Legacy type values 'cylinder' and 'tapered' are accepted. Returns the full new state with capacityMl. Any link you then give the potter must come from create_live_handoff, never the address bar.","title":"Update the design","annotations":{"title":"Update the design"},"inputSchema":{"type":"object","properties":{"type":{"description":"'round' (a cylinder, or a cone when tapered) or 'faceted' (a prism of `facets` flat sides). Taper is the separate flag. Legacy: 'cylinder' (round, straight), 'tapered' (round, tapered).","type":"string","enum":["round","faceted","cylinder","tapered"]},"tapered":{"type":"boolean","description":"True: rim and base differ and topDiameterMm applies. False: straight wall."},"name":{"type":"string","minLength":1,"maxLength":60,"description":"Display name, e.g. 'Classic mug'"},"heightMm":{"type":"number","minimum":20,"maximum":600,"description":"Fired height, mm"},"topDiameterMm":{"type":"number","minimum":20,"maximum":500,"description":"Fired rim size, mm (when tapered); across corners for faceted"},"bottomDiameterMm":{"type":"number","minimum":20,"maximum":500,"description":"Fired base size, mm; across corners for faceted"},"facets":{"type":"integer","minimum":3,"maximum":8,"description":"Sides for 'faceted': 3 triangle, 4 square, 5 pentagon, 6 hexagon, 8 octagon; ignored for round"},"shrinkagePct":{"type":"number","minimum":0,"maximum":25,"description":"Total wet-to-fired shrinkage, percent (stoneware typically 10-13)"},"wallThicknessMm":{"type":"number","minimum":2,"maximum":15,"description":"Wet slab thickness, mm, as rolled (typically 4-6 for mugs); shrinks with the clay"},"units":{"description":"Display units for the potter — display only, tool I/O stays in mm","type":"string","enum":["cm","in"]},"paperSize":{"type":"string","enum":["A4","A3","Letter"]},"capacityMl":{"description":"Target capacity in ml, e.g. 350 for a mug — give this INSTEAD of heightMm and the exact height is solved in this call; never iterate","type":"number","minimum":1,"maximum":200000}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"get_template_summary","kind":"answer","impl":"imperative","description":"Printable template details: each flat piece with wet-clay dimensions and assembly notes, the layout size, glue overlap, and exactly how many PDF pages at the current paper size (A4, A3, or Letter). Read-only.","title":"Template summary","annotations":{"title":"Template summary","readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"get_preview_image","kind":"answer","impl":"imperative","description":"See what the potter sees: a compact JPEG of the live 3D preview, small enough to cost little context. Use it to confirm a change visually. If the canvas can't be captured, a text description is returned instead. Read-only.","title":"See the 3D preview","annotations":{"title":"See the 3D preview","readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"export_templates","kind":"act","impl":"imperative","description":"Export the printable template as a multi-page PDF, downloaded in the potter's browser — remind them to print at 100% scale and check the calibration ruler on page 1. Pages tile the true-scale template with 10 mm glue overlaps. Optionally set paperSize first. Returns the page count and the full new state. Any link you then give the potter must come from create_live_handoff, never the address bar.","title":"Export printable PDF","annotations":{"title":"Export printable PDF"},"inputSchema":{"type":"object","properties":{"paperSize":{"type":"string","enum":["A4","A3","Letter"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"apply_preset","kind":"act","impl":"imperative","description":"Start from a known-good preset (the enum lists them). Overwrites the current form and clay settings (undo_last_change reverts it). Returns the full new state. Any link you then give the potter must come from create_live_handoff, never the address bar.","title":"Apply a preset","annotations":{"title":"Apply a preset"},"inputSchema":{"type":"object","properties":{"preset":{"type":"string","enum":["classic-mug","tumbler","bud-vase","hex-planter"]}},"required":["preset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"create_live_handoff","kind":"act","impl":"imperative","description":"Create a fresh, single-use link that continues this exact design in the same live session on another screen — edits then flow both ways and show in your next read. This is the DEFAULT link tool: call it immediately before returning any Unfolded link — after creating, editing, previewing, or opening a design, and for 'send me the link', 'show me', 'open it', or 'continue in the browser'. Return liveHandoffUrl verbatim: never the current page or address-bar URL, an earlier link, or a reconstructed one. Skip it only when the potter explicitly asks for a permanent, bookmarkable, printable, or independent-copy link (that is designUrl). Expires after 15 minutes and works once. On failure no link exists: retry once, then offer start_pairing.","title":"Create live handoff link","annotations":{"title":"Create live handoff link"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"join_session","kind":"act","impl":"imperative","description":"Pair this tab into a live session with the 6-character code from the potter's OTHER device, e.g. 'K7F-3QP'. This tab adopts that session's design (one undo step brings the previous one back); afterwards every edit on any device syncs within about a second. Codes expire in 15 minutes and work once — on failure ask for a fresh one. Returns the full state after joining.","title":"Join live session","annotations":{"title":"Join live session"},"inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Code from the potter's other device (case and dashes ignored)"}},"required":["code"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"start_pairing","kind":"act","impl":"imperative","description":"Mint a 6-character pairing code for THIS tab's session and tell it to the potter — also mint and give them a liveHandoffUrl link that does the same thing in one tap. Entered on their other device (connection button → Continue on another screen), or opened as a link, that device then FOLLOWS this design — use it when the work lives here and the potter wants it on another screen, e.g. 'put this on my desktop', 'pair from here'. Valid 15 minutes, one use; both devices stay live peers. Returns the full state.","title":"Start device pairing","annotations":{"title":"Start device pairing"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"},{"name":"undo_last_change","kind":"act","impl":"imperative","description":"Undo the most recent change to the design (form, clay, or paper size), whether made by you or by the potter in the UI. Rapid consecutive changes (a slider drag, opening a link) count as one step; 50 steps are kept. Returns the full state after undoing. Any link you then give the potter must come from create_live_handoff, never the address bar.","title":"Undo last change","annotations":{"title":"Undo last change"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/why"}],"favicon":"/favicons/tryunfolded.com.png","apiSurface":"spec","category":"Media & Personal","toolCount":11}}