{"ok":true,"site":{"host":"webmcp-challenge.aadityab.workers.dev","url":"https://webmcp-challenge.aadityab.workers.dev/","type":"live","desc":"Infinite Canvas","tools":[{"name":"inspect_canvas","kind":"act","impl":"imperative","description":"Read the selected artboard, revision, and safe next actions.","title":"inspect canvas","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_design_tree","kind":"answer","impl":"imperative","description":"Read the structured editable node tree with optional maxDepth and summary mode.","title":"get design tree","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"rootNodeId":{"type":"string"},"nodeId":{"type":"string"},"id":{"type":"string"},"maxDepth":{"type":["number","string"]},"summary":{"type":"boolean"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_nodes","kind":"answer","impl":"imperative","description":"Find design layers matching query, kind, or parent without loading the full tree.","title":"find nodes","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string"},"kind":{"type":"string","enum":["frame","text","rect","button","image"]},"parentId":{"type":"string"},"limit":{"type":["number","string"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_design_text","kind":"act","impl":"imperative","description":"Change text in one editable node.","title":"set design text","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"text":{"type":"string"}},"required":["text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_design_styles","kind":"act","impl":"imperative","description":"Apply a safe style patch to one node with support for standard CSS aliases.","title":"apply design styles","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"styles":{"type":"object","properties":{"background":{"type":"string"},"backgroundColor":{"type":"string"},"fill":{"type":"string"},"color":{"type":"string"},"textColor":{"type":"string"},"border":{"type":"string"},"borderColor":{"type":"string"},"borderWidth":{"type":["number","string"]},"borderRadius":{"type":["number","string"]},"fontSize":{"type":["number","string"]},"fontWeight":{"type":["number","string"]},"fontFamily":{"type":"string"},"padding":{"type":["number","string"]},"opacity":{"type":["number","string"]},"letterSpacing":{"type":["number","string"]}}},"style":{"type":"object","properties":{"background":{"type":"string"},"backgroundColor":{"type":"string"},"fill":{"type":"string"},"color":{"type":"string"},"textColor":{"type":"string"},"border":{"type":"string"},"borderColor":{"type":"string"},"borderWidth":{"type":["number","string"]},"borderRadius":{"type":["number","string"]},"fontSize":{"type":["number","string"]},"fontWeight":{"type":["number","string"]},"fontFamily":{"type":"string"},"padding":{"type":["number","string"]},"opacity":{"type":["number","string"]},"letterSpacing":{"type":["number","string"]}}}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_layout","kind":"act","impl":"imperative","description":"Configure CSS flexbox auto-layout (flex-row, flex-column, absolute), gap, padding, and sizing on a frame.","title":"set layout","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"layout":{"type":"string","enum":["absolute","flex-row","flex-column"]},"gap":{"type":["number","string"]},"padding":{"type":["number","string"]},"widthSizing":{"type":"string","enum":["fixed","fill","hug"]},"heightSizing":{"type":"string","enum":["fixed","fill","hug"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_reference_image","kind":"act","impl":"imperative","description":"Add a local or pasted image as a visual reference on the canvas.","title":"add reference image","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string"},"dataUrl":{"type":"string","maxLength":2000000},"width":{"type":"number"},"height":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"},"operationId":{"type":"string"}},"required":["dataUrl"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_reference_images","kind":"answer","impl":"imperative","description":"List reference images available for the agent to inspect.","title":"list reference images","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_reference_image","kind":"answer","impl":"imperative","description":"Inspect one reference image and return it to the agent as image content.","title":"inspect reference image","annotations":{"readOnlyHint":true,"destructiveHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"referenceId":{"type":"string"}},"required":["referenceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"recreate_from_reference","kind":"act","impl":"imperative","description":"Create an editable design frame informed by a reference image.","title":"recreate from reference","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"referenceId":{"type":"string"},"name":{"type":"string"},"operationId":{"type":"string"},"layout":{"type":"string","enum":["absolute","flex-row","flex-column"]},"gap":{"type":["number","string"]},"padding":{"type":["number","string"]},"width":{"type":["number","string"]},"height":{"type":["number","string"]},"style":{"type":"object"},"eyebrow":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"accentText":{"type":"string"},"ctaText":{"type":"string"},"children":{"type":"array"},"tree":{"type":"object"}},"required":["referenceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_node","kind":"act","impl":"imperative","description":"Create a new frame, text, rectangle, or button with optional flex auto-layout and styles.","title":"create node","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["frame","text","rect","button"]},"parentId":{"type":"string"},"x":{"type":["number","string"]},"y":{"type":["number","string"]},"width":{"type":["number","string"]},"height":{"type":["number","string"]},"name":{"type":"string"},"text":{"type":"string"},"layout":{"type":"string","enum":["absolute","flex-row","flex-column"]},"gap":{"type":["number","string"]},"padding":{"type":["number","string"]},"widthSizing":{"type":"string","enum":["fixed","fill","hug"]},"heightSizing":{"type":"string","enum":["fixed","fill","hug"]},"style":{"type":"object"}},"required":["kind"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_tree","kind":"act","impl":"imperative","description":"Create an entire nested styled component tree (frame with children, text, buttons, styles, auto-layout) in a single atomic tool call.","title":"create tree","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"parentId":{"type":"string"},"tree":{"type":"object"},"root":{"type":"object"},"kind":{"type":"string","enum":["frame","text","rect","button"]},"name":{"type":"string"},"text":{"type":"string"},"x":{"type":["number","string"]},"y":{"type":["number","string"]},"width":{"type":["number","string"]},"height":{"type":["number","string"]},"layout":{"type":"string","enum":["absolute","flex-row","flex-column"]},"gap":{"type":["number","string"]},"padding":{"type":["number","string"]},"widthSizing":{"type":"string","enum":["fixed","fill","hug"]},"heightSizing":{"type":"string","enum":["fixed","fill","hug"]},"style":{"type":"object"},"styles":{"type":"object"},"children":{"type":"array"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_nodes","kind":"transact","impl":"imperative","description":"Delete one or more selected layers, including parent frames.","title":"delete nodes","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"nodeIds":{"type":"array","items":{"type":"string"}}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_nodes","kind":"act","impl":"imperative","description":"Move layers by a dx/dy offset. Parent frames move with their children.","title":"move nodes","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"nodeIds":{"type":"array","items":{"type":"string"}},"dx":{"type":["number","string"]},"dy":{"type":["number","string"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"resize_node","kind":"act","impl":"imperative","description":"Change a layer's x, y, width, or height.","title":"resize node","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"x":{"type":["number","string"]},"y":{"type":["number","string"]},"width":{"type":["number","string"]},"height":{"type":["number","string"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"select_nodes","kind":"act","impl":"imperative","description":"Select one or more layers in the shared document.","title":"select nodes","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"nodeIds":{"type":"array","items":{"type":"string"}}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"capture_preview","kind":"act","impl":"imperative","description":"Capture a PNG preview of the canvas or selected node so vision models can self-correct.","title":"capture preview","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"format":{"type":"string","enum":["png","svg"]},"scale":{"type":["number","string"],"minimum":1,"maximum":3}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo_document","kind":"act","impl":"imperative","description":"Undo the latest human or agent document edit.","title":"undo document","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"redo_document","kind":"act","impl":"imperative","description":"Redo the latest undone document edit.","title":"redo document","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"import_project","kind":"act","impl":"imperative","description":"Open a validated Infinite Canvas project JSON file in the shared document.","title":"import project","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{"projectJson":{"type":"string","maxLength":8000000},"operationId":{"type":"string"}},"required":["projectJson"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_design","kind":"act","impl":"imperative","description":"Export the visible design as a downloadable PNG, SVG, HTML, or project JSON artifact.","title":"export design","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["png","svg","html","json"]},"nodeId":{"type":"string"},"scale":{"type":"number","minimum":1,"maximum":3},"filename":{"type":"string","maxLength":120},"includeReferences":{"type":"boolean"},"baseRevision":{"type":"number"},"operationId":{"type":"string"}},"required":["format"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_document","kind":"act","impl":"imperative","description":"Return to the default seeded document.","title":"reset document","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","apiSurface":"spec","toolCount":22}}