tl-draw-mcp
Provides tools for creating, updating, deleting shapes and retrieving canvas state on a live tldraw canvas, enabling AI agents to draw diagrams and flowcharts in real time.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tl-draw-mcpdraw a simple flowchart showing the user login process"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tl-draw-mcp
An MCP server that draws on a live tldraw canvas from prompts. Works with Claude Code, Codex, and any other MCP client.
Open http://localhost:3030 in a browser and the agent's diagrams appear in
real time.
create_diagram is the point. Describe a graph — nodes, edges, a direction —
and the server measures every label, assigns layers, minimises edge crossings
and binds the connectors to the nodes. It replaces reaching for mermaid, and
unlike hand-placed coordinates the result is actually laid out.
1. Install
git clone <this repo> tl-draw-mcp
cd tl-draw-mcp
npm install
npm run build # builds the web canvas, then the serverIf npm reports a peer-dependency conflict, retry with
npm install --legacy-peer-deps.
Related MCP server: Excalidraw MCP Server
2. Wire it up
Claude Code
claude mcp add tldraw --scope user -- node /absolute/path/to/tl-draw-mcp/packages/server/dist/index.jsOn Windows, use forward slashes in the path (or cmd /c node "D:/...").
Verify with claude mcp list, then restart Claude Code.
Install the skill so Claude knows when to draw:
# macOS / Linux
mkdir -p ~/.claude/skills && cp -r .claude/skills/tldraw ~/.claude/skills/
# Windows
xcopy /E /I .claude\skills\tldraw %USERPROFILE%\.claude\skills\tldrawCodex
codex mcp add tldraw -- node /absolute/path/to/tl-draw-mcp/packages/server/dist/index.jsOr add it to ~/.codex/config.toml by hand — see
examples/codex-config.toml:
[mcp_servers.tldraw]
command = "node"
args = ["/absolute/path/to/tl-draw-mcp/packages/server/dist/index.js"]Codex has no skill mechanism, so the usage rules ship in the server's MCP
instructions and in every tool description. For stronger steering, paste the
short block at the end of docs/AGENT_GUIDE.md into your
AGENTS.md.
Any other MCP client
It's a plain stdio MCP server:
node /path/to/tl-draw-mcp/packages/server/dist/index.js.
See examples/claude-code-config.json for
the JSON form.
3. Use
Start your agent in any project.
The first tool call spins up the server — open
http://localhost:3030.The badge at the bottom-right reads
tldraw MCP · connected.Prompt: "Draw a flowchart of the login flow."
Tools
Tool | What it does |
| Node-and-edge diagram with automatic layout. Use this for any graph. |
| Shapes at explicit positions — free-form drawing, wireframes, annotation. |
| Bound connectors between shapes that already exist. |
| Change position, size, colour or text by id. |
| Remove shapes by id, or |
| Everything on the canvas, including how arrows are wired. |
create_diagram
{
"title": "Login flow",
"direction": "down", // down = mermaid TD, right = LR, also up / left
"connector": "elbow", // right-angled; "arc" for curved
"nodes": [
{ "id": "start", "label": "Start", "role": "start" },
{ "id": "check", "label": "Credentials valid?", "role": "decision" },
{ "id": "home", "label": "Go to dashboard", "role": "success" }
],
"edges": [
{ "from": "start", "to": "check" },
{ "from": "check", "to": "home", "label": "yes" }
]
}Roles map meaning to conventional styling:
process,start,end,decision,io,data,external,error,success,note.Nodes are sized to their label; no more text spilling out of boxes.
Cycles are detected and bowed around the outside, so feedback loops don't cut back through the diagram.
Re-running with the same node ids updates in place instead of duplicating.
Shape vocabulary
geo, text, arrow, line, draw, note, frame.
Link shapes by id, never by coordinates:
{ "type": "arrow", "from": "login", "to": "dashboard", "text": "on success" }Bound arrows anchor on each shape's edge and re-route when either end moves.
Full reference: docs/AGENT_GUIDE.md.
Develop
npm test # 59 unit tests
npm run test:e2e # drives a real browser (needs playwright)
npm run dev # stdio server + WS bridge on :3030
npm run dev --workspace @tldraw-mcp/web # Vite HMR on :5173The unit tests stop at the bridge — they prove the server sends the right
payload, not that tldraw accepts it. Shape props, bindings and rich text are
only validated by tldraw at runtime, so test:e2e drives an actual canvas in
Chrome and asserts on what comes back. It skips cleanly if Playwright isn't
installed (npm i -D playwright).
Layout
packages/server/src/layout.ts is a self-contained layered (Sugiyama-style)
layout: break cycles → rank by longest path → reduce crossings with barycentre
sweeps → assign coordinates with neighbour-pull and overlap separation. Pure
functions, no tldraw types, so it's cheap to test.
packages/server/src/textMetrics.ts estimates label sizes from tldraw's own
font constants — layout has to happen before any shape exists, so node sizes
can't be measured in the browser.
Layout
packages/server MCP stdio server, WS bridge, static host, layout, tool handlers
packages/web Vite + React + tldraw browser app (builds into server/public)
.claude/skills/ SKILL.md for Claude Code
docs/ portable agent guide (Codex and other MCP clients)
e2e/ browser-driven end-to-end checks
examples/ MCP config for Claude Code and CodexConfiguration
Variable | Default | Meaning |
|
| Preferred port; falls back to 3031, 3032, … if taken. |
|
| How long to wait for the browser to apply a batch. |
Troubleshooting
Symptom | Fix |
Agent says no canvas is connected | Open the URL from the error message. If a stale server holds :3030, the new one moves to :3031 — check the URL in the error. |
tldraw validation error in the browser | Clear IndexedDB (DevTools → Application → IndexedDB → delete |
Badge says | Protocol mismatch after an upgrade — rebuild ( |
Port :3030 busy | Automatic fallback to :3031 etc. The real URL is in the MCP logs ( |
| Retry with |
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables AI agents to read, write, and search local tldraw (.tldr) files, providing a persistent visual scratchpad for diagramming and note organization. It supports full CRUD operations on canvas shapes and metadata management for local canvas files.Last updated483MIT
- AlicenseAqualityDmaintenanceEnables AI agents to programmatically generate, edit, and view Excalidraw diagrams with real-time browser synchronization. It provides a suite of tools for adding shapes, text, and arrows to diagrams through natural language interactions.Last updated113,69198MIT
- Alicense-qualityFmaintenanceEnables AI agents to programmatically control a live Excalidraw canvas through element-level CRUD operations and real-time synchronization. It allows agents to iteratively build, inspect, and refine diagrams while providing visual feedback via screenshots and scene descriptions.Last updated1,931MIT
- Alicense-qualityDmaintenanceEnables AI agents to programmatically control a live Excalidraw canvas with element-level CRUD operations and real-time synchronization. It supports iterative diagramming through scene descriptions, screenshots, and advanced layout tools for collaborative AI-human workflows.Last updated1,931MIT
Related MCP Connectors
Read, edit, publish, and preview your pepita websites from Claude.
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
Real-time collaborative whiteboard — AI agents and humans edit the same board live over MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Siddharth11Roy/tldraw-claude-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server