{"ok":true,"site":{"host":"cocanvas-beta.vercel.app","url":"https://cocanvas-beta.vercel.app/","type":"live","desc":"Write a brief. Share the board with an agent. Undo the bad draft. No upload, no account, no screenshot guessing.","tools":[{"name":"get_brief","kind":"answer","impl":"imperative","description":"Read the job on this board: the brief the human wrote. Call this before drafting or reviewing so you know what the flow must cover.","title":"Get the design brief","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_canvas_summary","kind":"answer","impl":"imperative","description":"Get a high-level snapshot: brief, element counts, connectors, open pins, background, and the currently selected element. Call this first to understand the live design before making changes.","title":"Summarize the canvas","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_elements","kind":"answer","impl":"imperative","description":"List elements on the canvas with id, kind, position, size, layer (z), and text. Use this to find the id of an element you want to update, move, layer, duplicate, align, connect, pin, or delete.","title":"List canvas elements","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["frame","rectangle","ellipse","text","sticky"],"description":"Optional filter to only return elements of this kind."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_brief","kind":"act","impl":"imperative","description":"Write or replace the job on this board. The brief is what review_canvas checks against. Keep it concrete: the steps a flow must include.","title":"Set the design brief","inputSchema":{"type":"object","properties":{"brief":{"type":"string","description":"The job to-be-done on this canvas."}},"required":["brief"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_element","kind":"act","impl":"imperative","description":"Add one element. A finished board is a diagram: nodes (rectangle or ellipse) plus connect_elements. Facts go on nodes. Heading on line one, facts on the next line (WHO GETS IT then a newline then Plus. Pro. Business. Enterprise.). Do not drop kind text on arrows. Leave 32px between nodes. Title can be kind text. A hub ellipse is about 320 by 100. Do not stretch it across the child row. Score bars are charcoal rectangles, height 28. Never connect a bar, a score label, or a number. Always pass fill and stroke; omitted fill becomes a candy blue card. For text, fill is the ink color (#f4f4f5 on dark paper). ASCII labels only. Paper #0a0a0a. Keep x from 40 to 1400 and y from 24 to 1600.","title":"Add an element","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["frame","rectangle","ellipse","text","sticky"],"description":"The type of element to add."},"x":{"type":"number","description":"Left position in canvas pixels."},"y":{"type":"number","description":"Top position in canvas pixels."},"width":{"type":"number","description":"Width in pixels."},"height":{"type":"number","description":"Height in pixels."},"text":{"type":"string","description":"Text content (for text, sticky, frame title)."},"fill":{"type":"string","description":"Hex color. Required for a designed board. Text ink on dark paper: #f4f4f5. Rules: #2a2a2e. Bars: #2c2f36. Do not use candy blue or green."},"stroke":{"type":"string","description":"Hex border. Match fill for rules and bars. Use transparent for text."},"fontSize":{"type":"number","description":"Type size. Title 28, row 14, score 20, kicker 12."}},"required":["kind"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"select_element","kind":"act","impl":"imperative","description":"Select and highlight an element so the human collaborator can see which element you are referring to. Pass null or omit id to clear the selection.","title":"Select an element","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Element id, or omit to clear."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_background","kind":"act","impl":"imperative","description":"Set the canvas paper. Call this first with #0a0a0a for a product map so the void paper reads (the page hides the dot grid on that color). Do not leave the default Night grey. Use a light paper only for a screen mock that should match a live site.","title":"Set background color","inputSchema":{"type":"object","properties":{"color":{"type":"string","description":"Hex color string."}},"required":["color"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_canvas","kind":"act","impl":"imperative","description":"Remove all elements, connectors, and pins from the canvas to start fresh. The brief stays. The page asks the human to confirm. The human can undo this agent turn.","title":"Clear the canvas","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/cocanvas-beta.vercel.app.ico","apiSurface":"spec","toolCount":8}}