LetDraw MCP + REST
Connect AI assistants and your own scripts to LetDraw — read and author diagrams in your account through the Model Context Protocol (MCP) or the public REST API.
LetDraw is a hand-drawn–style online whiteboard and diagramming app. With this integration an MCP client (desktop AI apps, Cursor, VS Code, Codex, …) or any HTTP client can list workspaces, create and update diagrams, build a diagram from code (compose / Kubernetes / DOT / Terraform / SQL / …), stamp real product icons, export to Mermaid or D2, and share read-only links.
This repository ships the client-side integration: a zero-config MCP bridge, a typed REST SDK, the API spec, and setup docs. The LetDraw app and server are not part of this repo.
What's here
| Path | What it is |
|---|---|
packages/mcp | @letdraw/mcp — zero-config stdio bridge to the hosted MCP server (npx @letdraw/mcp) |
packages/sdk | @letdraw/sdk — typed REST client for scripting |
spec/mcp-tools.md | The MCP tools, resources, and scopes |
spec/openapi.yaml | OpenAPI 3.1 spec for the REST API |
spec/capabilities.md | "How to draw well in LetDraw" guide for AI clients |
docs/ | Getting started + per-client setup (desktop apps, HTTP clients, Cursor, VS Code, Codex) |
examples/ | Copy-paste recipes |
Endpoints
REST base https://api.letdraw.com/api-v1
MCP URL https://api.letdraw.com/mcp
Both authenticate with a personal API token (Authorization: Bearer ld_live_…), not a login session. Create one in the LetDraw app under
Account → Developer. The exact URLs and a ready-to-paste client config are
shown there too.
60-second start (MCP)
The hosted server speaks Streamable-HTTP, so most clients connect directly. For a stdio client, or for the simplest possible setup, use the bridge:
// MCP client config (mcpServers block)
{
"mcpServers": {
"letdraw": {
"command": "npx",
"args": ["-y", "@letdraw/mcp"],
"env": { "LETDRAW_TOKEN": "ld_live_YOUR_TOKEN" }
}
}
}
See docs/clients for desktop apps, HTTP clients, Cursor, VS Code and Codex.
60-second start (REST)
curl https://api.letdraw.com/api-v1/workspaces \
-H "Authorization: Bearer ld_live_YOUR_TOKEN"
Or with the SDK:
import { LetdrawClient } from '@letdraw/sdk';
const ld = new LetdrawClient({ token: process.env.LETDRAW_TOKEN! });
const { workspaces } = await ld.listWorkspaces();
Scopes
Tokens carry scopes; each tool/route requires one:
diagrams:read— list/get workspaces, folders, diagrams, iconsdiagrams:write— create/update/delete/share diagrams, from-codeexport— export to Mermaid / D2ai:generate— generate a diagram from a prompt (uses your own AI key)
License
MIT — see LICENSE. "LetDraw" and the LetDraw logo are trademarks of their owner; see NOTICE.md.