tldraw-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_empty_fileA | Create a new empty .tldr file with one default page. Errors if file exists unless overwrite=true. |
| create_rectC | Create a rectangle shape on the main page. Returns its id. |
| create_textC | Create a text shape on the main page. Returns its id. |
| list_shapesA | List shapes (id, type, x, y, label only - props omitted to save tokens). |
| get_shapeB | Get the full record of a single shape by id. |
| update_shapeA | Update a shape via shallow merge. Pass nested {"props": {...}} to update props. |
| delete_shapeC | Delete a shape by id. |
| connectA | Connect two shapes with an arrow. Arrow position is binding-driven (start/end stored as 0,0 fallback). Returns arrow id + binding ids. |
| create_groupA | Group existing shapes into a new group. Reparents the given shape ids under a new group shape. |
| ungroupA | Dissolve a group: reparent its children to the group's parent and delete the group shape. |
| create_pageB | Create a new page in the document. Returns the new page id. |
| list_pagesB | List all pages with id, name, and ordering index. |
| move_to_pageB | Move shapes to a different page by reparenting them. Note: arrows and bindings should move together for correctness. |
| search_apiA | List supported tldraw shape types and their required props. Use this to discover what can be created before falling back to exec_jq. |
| exec_jqA | Escape hatch: run a jq filter against the .tldr JSON. Set write=true to persist (auto-checkpoints first). |
| save_checkpointA | Copy the .tldr file to a timestamped backup. Returns the backup path. |
| list_checkpointsA | List checkpoint backups for a .tldr file, newest first. |
| restore_checkpointA | Restore a checkpoint over the .tldr file. Omits checkpoint to restore the most recent. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool has a clearly distinct purpose, from creating shapes and pages to managing checkpoints and connecting shapes. The exec_jq escape hatch is intentionally broad but its role as a fallback is well-documented, avoiding confusion.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_rect, list_pages, update_shape). No mixed conventions or ambiguous verbs.
With 18 tools, the set is well-scoped for a drawing application: it covers shape CRUD, grouping, pages, checkpoints, and an escape hatch. The count feels complete without being overwhelming.
The toolset covers core operations but misses explicit tools for creating non-rectangle shapes (e.g., ellipses, lines). However, search_api and exec_jq fill these gaps, so agents can still achieve full functionality.