mcp server
tldraw
Draw and visually collaborate with your agents on tldraw's canvas.
Description as published by the maintainer. Source
- version 0.1.0
- slowing
slowing — Registry entry last updated 2026-03-06.
What this server can do
6 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
_exec_callback(error, result, channel, execKey)- App-only: widget calls this to resolve a pending exec request. Required: channel.
_get_canvas_state(canvasId)- App-only: get the latest checkpoint for a canvas by its canvasId. Required: canvasId.
exec(code, canvasId)- Execute JavaScript code on a tldraw canvas. The code runs in the widget with access to the live `editor` instance, helper functions, and normal js. Use the `search` tool first to discover available Editor methods and shape types. Each canvas has a unique `canvasId`. Omit `canvasId` to create a new blank canvas. To edit an existing canvas, pass the `canvasId` that was returned by a previous exec call. Shapes and text grow depending on the amount of text they have. Use clever scripting to ensure there are no unintended overlaps. Examples: - Create a rectangle: editor.createShape({ _type: 'rectangle', shapeId: 'box1', x: 200, y: 120, w: 320, h: 180, text: 'Hello' }) - Connect shapes with an arrow: editor.createShape({ _type: 'arrow', shapeId: 'a1', fromId: 'box1', toId: 'box2', x1: 0, y1: 0, x2: 100, y2: 0 }) - Select and zoom: editor.select('box1'); editor.zoomToSelection() - Read shapes: return editor.getCurrentPageShapes() - Distribute evenly: editor.distributeShapes(editor.getSelectedShapeIds(), 'horizontal') - Box around shapes: boxShapes(['box1', 'box2'], { text: 'Group label', color: 'blue' }) - Stack shapes dynamically: editor.createShape({ _type: 'rectangle', shapeId: 'a', x: 0, y: 0, w: 300, h: 200, text: 'First box\nwith wrapping text' }); const bounds = editor.getShapePageBounds('a'); editor.createShape({ _type: 'rectangle', shapeId: 'b', x: 0, y: bounds.maxY + 20, w: 300, h: 200, text: 'Below first' }) Required: code.
read_checkpoint(checkpointId)- App-only: read shapes from a checkpoint by ID. Required: checkpointId.
save_checkpoint(canvasId, assetsJson, shapesJson, bindingsJson, checkpointId)- App-only: save shapes to a checkpoint (from user edits). shapesJson and assetsJson must be JSON array strings. Required: checkpointId, shapesJson.
search(code)- Search the tldraw Editor API spec by writing JavaScript that receives a `spec` object and returns a result. The spec contains: spec.members (all Editor methods/properties with name, kind, signature, description, category), spec.categories (category names), spec.types.shapes (focused shape type definitions with props), spec.types.shapeTypes (list of all shape type strings), spec.helpers (exec helper functions with descriptions, params, examples). Examples: - Find shape methods: return spec.members.filter(m => m.category === "shapes").map(m => ({ name: m.name, signature: m.signature })) - Get arrow shape props: return spec.types.shapes.find(s => s.shapeType === "arrow") - List all categories: return spec.categories - Find a helper: return spec.helpers.find(h => h.name === "createArrowBetweenShapes") Required: code.
Last successful function declaration observed on . Source: https://tldraw-mcp-app.tldraw.workers.dev/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://tldraw-mcp-app.tldraw.workers.dev/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 0.1.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-03-06 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-03-06 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 6 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | tldraw-mcp-app.tldraw.workers.dev | |
| mcp endpoint status | ok | The server listed 6 functions when asked. | as of probe | tldraw-mcp-app.tldraw.workers.dev |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json