# cnvs.app > cnvs.app, an MCP server by cnvs.app, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Real-time collaborative whiteboard — AI agents and humans edit the same board live over MCP. - Canonical: https://www.anchorterminal.com/tools/cnvs-whiteboard - Markdown: https://www.anchorterminal.com/tools/cnvs-whiteboard.md (~2,150 tokens) - Slim: https://www.anchorterminal.com/tools/cnvs-whiteboard.min.md (~2,080 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/tools/cnvs-whiteboard.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-05 # cnvs.app > Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/ - Kind: MCP server, by cnvs.app (https://cnvs.app) - Listed because: It's published in the registry under cnvs.app, a namespace the registry only gives to whoever proves they control that domain. - What the official MCP registry says: Real-time collaborative whiteboard — AI agents and humans edit the same board live over MCP. ## Facts - MCP registry: `app.cnvs/whiteboard` 1.0.2 - Endpoint: https://cnvs.app/mcp (streamable HTTP) - Source: https://github.com/lksrz/cnvs-whiteboard-skills - Website: https://cnvs.app - GitHub stars: 1 - Registry entry updated: 2026-06-15 ## Tools - Tools it lists (25, about 8,632 tokens of context, `tools/list` without credentials, checked 2026-10-04 22:21 UTC): - `open_board` (writes): ALWAYS call this first when given a board URL or ID. Resolves the canonical board id and auto-creates the board row if it does not exist yet. Returns a summary… - `create_board` (writes): Create a fresh board in ONE call — optionally pre-filled with content, auto-laid-out, and/or PIN-locked at create time. Mirrors the extended `POST /api/boards`… - `get_board` (writes): Full structured JSON state of a board: texts (id, x, y, content, color, width, postit, author), strokes (id, points, color, author), images (id, x, y, width,… - `get_preview` (read-only): Compact schematic SVG render of the board (typically a few kB even for dense boards). Returns both an image/svg+xml content block (you can SEE it) and the raw… - `add_text` (writes): Create a NEW text node, or update an existing one (pass the same `id` to overwrite content/position in place — preferred over creating a duplicate). Supports… - `add_link` (writes): Drop a URL capsule onto the board — rendered as a clickable pill showing the hostname. Use this instead of `add_text` when the node is just a link; the capsule… - `add_image` (writes): Place a raster or SVG image on the board at (x, y) with explicit width/height in board pixels. `data_url` MUST be a… - `draw_stroke` (writes): Draw a freehand stroke on the board. Use for arrows, underlines, connector lines, annotations, or simple shapes — a straight line needs two points, a rough… - `move` (writes): Reposition an existing item to a new (x, y) without retyping its content. Works for every item kind: `text` and `link` set the top-left to (x, y); `line`… - `erase` (writes): Delete a single item by id. `kind` MUST match the item type: 'text' for text nodes, 'line' for freehand strokes, 'image' for images — the wrong kind silently… - `wait_for_update` (read-only): Long-poll: blocks until the next edit lands on this board, then returns. WHEN TO CALL THIS: if your MCP client does NOT surface… - `set_board_mode` (writes): Choose whether this board is a freeform whiteboard ('draw', the default) or a kanban task board ('todo'). Mode is switchable WHENEVER the board is empty of… - `create_column` (writes): Add a kanban column (swimlane) to a 'todo' board. Generates and returns a stable column id. `sort` is a float ordering key (ascending); omit to default to 0.… - `update_column` (writes): Rename, reorder, recolor or move an existing kanban column. Requires the column `id` (from `list_tasks`). Pass `title`, `sort`, `lane` and/or `color` to change… - `delete_column` (writes): Delete a kanban column by id. Tasks in the column are removed with it. Get the id from `list_tasks`. - `create_task` (writes): Create a task (card) in a column on a 'todo' board. Generates and returns a stable task id. `column_id` must reference an existing column (see `list_tasks`).… - `update_task` (writes): Update an existing task by `id` (from `list_tasks`). Pass only the fields you want to change: `name`, `description`, `due_date`, `priority` ('H'|'M'|'L'),… - `move_task` (writes): Move a task to a column at a given sort position — the kanban drag-and-drop primitive. `column_id` is the destination column and `sort` its float order key… - `delete_task` (writes): Delete a task (card) by id. Get the id from `list_tasks`. - `list_tasks` (read-only): Read the full kanban state of a 'todo' board: `{ mode, columns, tasks }`, both ordered by their `sort` key (ascending). Each task carries its hot fields (name,… - `set_lane` (writes): Set (or clear) the title of a kanban row (lane). Lanes group columns into horizontal swimlanes; a lane is identified by its integer `lane` index (the same… - `set_column_width` (writes): Set the shared kanban column width in pixels for a 'todo' board (all columns share one width). Clamped to [200, 480]. Read the current value as `colWidth` from… - `create_tasks` (writes): Bulk-create multiple task cards in one call — far cheaper than calling `create_task` N times. Pass `tasks`: an array of task objects, each with `column_id`… - `query_tasks` (read-only): Read tasks from a 'todo' board with server-side filtering — handy for 'what's overdue?' / 'what's assigned to X?' without pulling the whole board. All filters… - `export_tasks` (read-only): Export a 'todo' board's columns + tasks as a single text document. `format` is 'markdown' (a checklist grouped by column, the default) or 'csv' (one row per… - How its tools read to an agent (0 errors, 26 warnings, 1 note, about 8,632 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score): - warn TC11 add_image: 9 parameters without a description: author, board_id, data_url, height, id, thumb_data_url and 3 more - warn TC11 add_link: 5 parameters without a description: author, board_id, url, x, y - warn TC11 add_text: 5 parameters without a description: board_id, content, postit, x, y - warn TC11 create_column: 2 parameters without a description: board_id, title - warn TC11 create_task: 5 parameters without a description: assignee, board_id, column_id, description, name - warn TC11 create_tasks: 1 parameter without a description: board_id - warn TC11 delete_column: 2 parameters without a description: board_id, id - warn TC11 delete_task: 2 parameters without a description: board_id, id - warn TC11 draw_stroke: 4 parameters without a description: author, board_id, color, id - warn TC11 erase: 3 parameters without a description: board_id, id, kind - warn TC11 export_tasks: 1 parameter without a description: board_id - warn TC11 get_board: 1 parameter without a description: board_id - warn TC11 get_preview: 1 parameter without a description: board_id - warn TC11 list_tasks: 1 parameter without a description: board_id - warn TC11 move: 4 parameters without a description: board_id, id, x, y - warn TC11 move_task: 4 parameters without a description: board_id, column_id, id, sort - warn TC11 query_tasks: 3 parameters without a description: board_id, done, priority - warn TC11 set_board_mode: 1 parameter without a description: board_id - warn TC11 set_column_width: 1 parameter without a description: board_id - warn TC11 set_lane: 1 parameter without a description: board_id - warn TC11 update_column: 3 parameters without a description: board_id, id, title - warn TC11 update_task: 8 parameters without a description: assignee, board_id, column_id, description, id, name and 2 more - warn TC11 wait_for_update: 2 parameters without a description: board_id, timeout_ms - warn TC12 draw_stroke: no type for points - JSON: https://www.anchorterminal.com/api/v1/tools/cnvs-whiteboard.json - Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming