MCP App Store
Productivity
Canvs.io whiteboard icon

Canvs.io whiteboard

by Mikhail Voronkov

Overview

Canvs helps users create and edit collaborative whiteboards in ChatGPT. The app can generate new boards from shape layouts or Mermaid diagrams, inspect existing board elements, and update or delete saved canvas content inside the user's private Canvs workspace.

Tools

add_elements

ChatGPT
Manual fallback for creating canvas and adding elements. ⚠️ IMPORTANT: Call get_guide first and follow its instructions! Use this tool only when the user's request is not a good fit for Mermaid. If the request can be represented in Mermaid, use add_elements_from_mermaid instead. If room_url is NOT provided - creates a NEW canvas and returns room_url. If the user did not explicitly mention an existing board/canvas/room, do NOT ask for a room_url; create a new canvas instead. If a previous Canvs tool result or assistant message in the same conversation contains a room_url, reuse it for follow-up requests like 'add to it' or 'same board'. If the user refers to a previous board but no usable room_url is available, create a new canvas instead of asking for the URL by default. If room_url IS provided - adds elements to that canvas. If the canvas is displayed as an inline widget in the interface, do NOT include room_url in your reply. If no widget is shown, share the room_url so the user can open the canvas.Use cases: wireframes, UI mockups, freeform illustrations, standalone shapes, and manual layouts that Mermaid does not cover well. Do not use this tool for diagrams that Mermaid can express. Element types: rectangle, ellipse, diamond, arrow, line, freedraw, text, image. TEXT IN SHAPES: use containerId on text element pointing to shape id. ARROWS: Position at EDGE of source shape. Auto-bound within 30px. Colors: strokeColor, backgroundColor (hex).

add_elements

ChatGPT
Manual fallback for creating canvas and adding elements. ⚠️ IMPORTANT: Call get_guide first and follow its instructions! Use this tool only when the user's request is not a good fit for Mermaid. If the request can be represented in Mermaid, use add_elements_from_mermaid instead. If room_url is NOT provided - creates a NEW canvas and returns room_url. If the user did not explicitly mention an existing board/canvas/room, do NOT ask for a room_url; create a new canvas instead. If a previous Canvs tool result or assistant message in the same conversation contains a room_url, reuse it for follow-up requests like 'add to it' or 'same board'. If the user refers to a previous board but no usable room_url is available, create a new canvas instead of asking for the URL by default. If room_url IS provided - adds elements to that canvas. If the canvas is displayed as an inline widget in the interface, do NOT include room_url in your reply. If no widget is shown, share the room_url so the user can open the canvas.Use cases: wireframes, UI mockups, freeform illustrations, standalone shapes, and manual layouts that Mermaid does not cover well. Do not use this tool for diagrams that Mermaid can express. Element types: rectangle, ellipse, diamond, arrow, line, freedraw, text, image. TEXT IN SHAPES: use containerId on text element pointing to shape id. ARROWS: Position at EDGE of source shape. Auto-bound within 30px. Colors: strokeColor, backgroundColor (hex).

add_elements_from_mermaid

ChatGPT
Preferred method for creating diagram elements from Mermaid. ⚠️ IMPORTANT: Call get_guide first and follow its instructions! Use this tool for NEW diagrams and LARGE changes to existing diagrams whenever the request can be represented in Mermaid. Prefer translating the request into Mermaid instead of manually recreating it with add_elements. If room_url is NOT provided - creates a NEW canvas and returns room_url. If the user did not explicitly mention an existing board/canvas/room, do NOT ask for a room_url; create a new canvas instead. If a previous Canvs tool result or assistant message in the same conversation contains a room_url, reuse it for follow-up requests like 'add to it' or 'same board'. If the user refers to a previous board but no usable room_url is available, create a new canvas instead of asking for the URL by default. If room_url IS provided - adds diagram elements to that canvas. If the canvas is displayed as an inline widget in the interface, do NOT include room_url in your reply. If no widget is shown, share the room_url so the user can open the canvas.Supports: flowchart, graph, flowchart-elk, sequenceDiagram, classDiagram, classDiagram-v2, stateDiagram, stateDiagram-v2, erDiagram, journey, gantt, pie, gitGraph, mindmap, timeline, C4Context, C4Container, C4Component, C4Dynamic, C4Deployment, sankey, sankey-beta, quadrantChart, xychart, xychart-beta, requirement, requirementDiagram, kanban, architecture, block, block-beta, packet, packet-beta, radar-beta, treemap, info. Example: "flowchart TD\n A[Start] --> B{Decision}\n B -->|Yes| C[OK]\n B -->|No| D[Cancel]"

add_elements_from_mermaid

ChatGPT
Preferred method for creating diagram elements from Mermaid. ⚠️ IMPORTANT: Call get_guide first and follow its instructions! Use this tool for NEW diagrams and LARGE changes to existing diagrams whenever the request can be represented in Mermaid. Prefer translating the request into Mermaid instead of manually recreating it with add_elements. If room_url is NOT provided - creates a NEW canvas and returns room_url. If the user did not explicitly mention an existing board/canvas/room, do NOT ask for a room_url; create a new canvas instead. If a previous Canvs tool result or assistant message in the same conversation contains a room_url, reuse it for follow-up requests like 'add to it' or 'same board'. If the user refers to a previous board but no usable room_url is available, create a new canvas instead of asking for the URL by default. If room_url IS provided - adds diagram elements to that canvas. If the canvas is displayed as an inline widget in the interface, do NOT include room_url in your reply. If no widget is shown, share the room_url so the user can open the canvas.Supports: flowchart, graph, flowchart-elk, sequenceDiagram, classDiagram, classDiagram-v2, stateDiagram, stateDiagram-v2, erDiagram, journey, gantt, pie, gitGraph, mindmap, timeline, C4Context, C4Container, C4Component, C4Dynamic, C4Deployment, sankey, sankey-beta, quadrantChart, xychart, xychart-beta, requirement, requirementDiagram, kanban, architecture, block, block-beta, packet, packet-beta, radar-beta, treemap, info. Example: "flowchart TD\n A[Start] --> B{Decision}\n B -->|Yes| C[OK]\n B -->|No| D[Cancel]"

delete_elements

ChatGPT
Delete elements from a canvas. Requires room_url from add_elements. Pass ids array of element IDs to delete.

delete_elements

ChatGPT
Delete elements from a canvas. Requires room_url from add_elements. Pass ids array of element IDs to delete.

get_guide

ChatGPT
⚠️ MANDATORY FIRST STEP - Call this tool BEFORE using any other Canvs tools! Returns comprehensive instructions for creating whiteboards: tool selection strategy, iterative workflow, and examples. Following these instructions ensures correct diagrams.

get_guide

ChatGPT
⚠️ MANDATORY FIRST STEP - Call this tool BEFORE using any other Canvs tools! Returns comprehensive instructions for creating whiteboards: tool selection strategy, iterative workflow, and examples. Following these instructions ensures correct diagrams.

query_elements

ChatGPT
Query elements on a canvas. Requires room_url from add_elements. Returns elements matching optional filters. Use this before update_elements when making small edits to existing diagrams. If no browser has the canvas open, returns an error — ask the user to open the canvas URL in their browser and retry.

query_elements

ChatGPT
Query elements on a canvas. Requires room_url from add_elements. Returns elements matching optional filters. Use this before update_elements when making small edits to existing diagrams. If no browser has the canvas open, returns an error — ask the user to open the canvas URL in their browser and retry.

update_elements

ChatGPT
Update elements on a canvas. Requires room_url from add_elements. Pass elements array with id and fields to update. IMPORTANT: in each update object ONLY id is required; all other fields are optional patch fields. Include ONLY elements that need changes; elements omitted from the request remain unchanged on the board. Prefer this tool for SMALL edits to existing diagrams (rename/move/restyle a few elements), typically after query_elements.

update_elements

ChatGPT
Update elements on a canvas. Requires room_url from add_elements. Pass elements array with id and fields to update. IMPORTANT: in each update object ONLY id is required; all other fields are optional patch fields. Include ONLY elements that need changes; elements omitted from the request remain unchanged on the board. Prefer this tool for SMALL edits to existing diagrams (rename/move/restyle a few elements), typically after query_elements.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

12

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily