{"ok":true,"site":{"host":"webmcp-draw-canvas.eductionalguide.chatgpt.site","url":"https://webmcp-draw-canvas.eductionalguide.chatgpt.site/","type":"live","desc":"WebMCP Draw Canvas","tools":[{"name":"review","kind":"act","impl":"imperative","description":"Review a canvas region and schedule a follow-up turn when more work may be needed.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create","kind":"act","impl":"imperative","description":"Create one new canvas shape from the app's existing simple-shape format.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"createHtmlPreview","kind":"act","impl":"imperative","description":"Create a visible interactive HTML preview shape in the current canvas view.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete","kind":"transact","impl":"imperative","description":"Delete one existing canvas shape by its simple shape ID. WebMCP requires confirm: true after user approval.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update","kind":"act","impl":"imperative","description":"Update the properties of one existing canvas shape.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"label","kind":"act","impl":"imperative","description":"Replace the visible text on one existing canvas shape.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move","kind":"act","impl":"imperative","description":"Move one existing shape so its page bounds begin at the requested coordinates.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"place","kind":"act","impl":"imperative","description":"Place one shape on a chosen side of another shape with alignment and offsets.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"bringToFront","kind":"act","impl":"imperative","description":"Bring one or more existing shapes in front of the other canvas content.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"sendToBack","kind":"transact","impl":"imperative","description":"Send one or more existing shapes behind the other canvas content.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"rotate","kind":"act","impl":"imperative","description":"Rotate one or more existing shapes around a supplied canvas origin.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"resize","kind":"act","impl":"imperative","description":"Scale one or more existing shapes around a supplied canvas origin.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"align","kind":"act","impl":"imperative","description":"Align existing shapes to one shared edge or center axis.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"distribute","kind":"act","impl":"imperative","description":"Distribute existing shapes evenly on the horizontal or vertical axis.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stack","kind":"act","impl":"imperative","description":"Pack existing shapes along the horizontal or vertical axis with a requested gap, without aligning them.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear","kind":"act","impl":"imperative","description":"Delete all shapes on the current page, leaving other pages unchanged. WebMCP requires confirm: true after user approval.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"pen","kind":"act","impl":"imperative","description":"Draw a visible freehand or straight-point path, optionally closed and filled.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"getInspiration","kind":"answer","impl":"imperative","description":"Fetch a random Wikipedia article and schedule it as inspiration for a follow-up turn.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"count","kind":"answer","impl":"imperative","description":"Count the current page shapes and schedule the answer for a follow-up turn.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_commons_images","kind":"answer","impl":"imperative","description":"Search Wikimedia Commons for up to six verified CC0 or public-domain images before choosing one to add.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_commons_image","kind":"act","impl":"imperative","description":"Re-verify and add one Commons image at exact canvas coordinates with a grouped visible credit.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_mermaid_diagram","kind":"act","impl":"imperative","description":"Render Mermaid source in the top preview panel so the user can inspect or edit it and choose whether to add it to the canvas. Follow the new-drawing page workflow first.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_page","kind":"act","impl":"imperative","description":"Create and switch to a new automatically named canvas page. Before starting a new drawing, call inspect_pages. If the current page contains objects, call create_page and draw on the new page. If it is empty, reuse the current page.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_pages","kind":"act","impl":"imperative","description":"List current and all canvas pages with object counts, or inspect object IDs and types for one 1-based page number. Before starting a new drawing, call inspect_pages. If the current page contains objects, call create_page and draw on the new page. If it is empty, reuse the current page.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_embeds","kind":"answer","impl":"imperative","description":"Return source URLs of tldraw embed shapes on a canvas page (YouTube, Figma, and other Insert-embed providers) so the agent can research the inserted content into canvas.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"zoom_out","kind":"act","impl":"imperative","description":"Zoom the current page camera so more of the canvas is visible. With no arguments, fit all shapes in the viewport. With steps, zoom out that many navigation-panel increments.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"arrange_grid","kind":"act","impl":"imperative","description":"Normalize rotation and size for selected top-level shapes, arrange them in a row-major grid, and optionally fit the camera. Automatically adapts to aspect locks and provider minimum sizes.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","description":"Full args: describe_tools({names}).","additionalProperties":true,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_tools","kind":"answer","impl":"imperative","description":"List every registered draw-app tool with a one-line summary and the required new-drawing page workflow; call this first to choose tools.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"describe_tools","kind":"answer","impl":"imperative","description":"Return full argument schemas for 1–10 unique tools before calling those compactly registered tools.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["names"],"properties":{"names":{"type":"array","minItems":1,"maxItems":10,"uniqueItems":true,"description":"Unique registered tool names to describe, returned in this order.","items":{"type":"string","enum":["review","create","createHtmlPreview","delete","update","label","move","place","bringToFront","sendToBack","rotate","resize","align","distribute","stack","clear","pen","getInspiration","count","search_commons_images","add_commons_image","create_mermaid_diagram","create_page","inspect_pages","inspect_embeds","zoom_out","arrange_grid","list_tools","describe_tools"]}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/webmcp-draw-canvas.eductionalguide.chatgpt.site.png","apiSurface":"spec","toolCount":29}}