API und MCP
letdraws REST API und MCP-Server ermöglichen externen Tools und KI-Clients (Claude, Cursor) die Arbeit mit Ihren Diagrammen: auflisten, lesen, erstellen, aktualisieren, ein Diagramm aus Code generieren, zurück in Code umwandeln, teilen und aus einem Prompt generieren.
Wer kann es nutzen
Abschnitt betitelt „Wer kann es nutzen“Die API und MCP stehen Pro- und Enterprise-Nutzern zur Verfügung. Bei selbst gehosteten Installationen kann jedes angemeldete Mitglied sie nutzen. Kostenlose Nutzer und Gäste können keine Tokens erstellen.
1. Ein Token erstellen
Abschnitt betitelt „1. Ein Token erstellen“- Melden Sie sich bei LetDraw mit einem Pro-/Enterprise-Konto an.
- Gehen Sie zu Settings -> Developer.
- Erstellen Sie ein Token: Geben Sie ihm einen Namen, wählen Sie die Scopes (siehe unten) und beschränken Sie es optional auf einen einzelnen Workspace.
- Das generierte
ld_live_...-Token wird nur einmal angezeigt. Bewahren Sie es an einem sicheren Ort auf. Falls es geleakt wird, widerrufen Sie es auf derselben Seite.
| Scope | Berechtigung |
|---|---|
diagrams:read | Workspaces, Ordner und Diagramme lesen |
diagrams:write | Diagramme erstellen, aktualisieren, löschen und teilen |
export | Ein Diagramm in Mermaid-/D2-Code exportieren |
ai:generate | Ein Diagramm aus einem Prompt generieren (KI) |
2. Authentifizierung
Abschnitt betitelt „2. Authentifizierung“Senden Sie das Token als Bearer-Wert im Authorization-Header bei jeder Anfrage:
Authorization: Bearer ld_live_...Es wird kein zusätzlicher apikey-Header benötigt.
REST API
Abschnitt betitelt „REST API“Basis-URL: https://api.letdraw.com/api-v1
Alle Antworten sind JSON. Fehler werden mit einem Standardtext zurückgegeben: { "error": { "code", "message" } }.
| Methode | Pfad | Beschreibung | Scope |
|---|---|---|---|
| GET | / | API-Infos (Scopes, Endpunkte) | any |
| GET | /workspaces | Ihre Workspaces (mit Rolle) | read |
| GET | /folders?workspace=<id> | Ordner in einem Workspace | read |
| GET | /documents?workspace=<id> | Diagramme in einem Workspace (paginiert) | read |
| GET | /documents?folder=<id> | Diagramme in einem Ordner (paginiert) | read |
| POST | /documents | Ein Diagramm erstellen | write |
| GET | /documents/:id | Diagramm + Szene (Elemente) | read |
| PATCH | /documents/:id | Name und/oder Elemente aktualisieren | write |
| DELETE | /documents/:id | Ein Diagramm löschen | write |
| POST | /documents/from-code | Ein Diagramm aus Code generieren | write |
| POST | /documents/generate | Ein Diagramm aus einem Prompt generieren (KI) | ai:generate |
| GET | /documents/:id/export?format=mermaid|d2 | Ein Diagramm in Code exportieren | export |
| POST | /documents/:id/share | Einen öffentlichen schreibgeschützten Link erstellen | write |
| DELETE | /documents/:id/share | Den öffentlichen Link entfernen | write |
Paginierung
Abschnitt betitelt „Paginierung“List-Endpunkte akzeptieren ?limit= (1-100, Standard 50) und ?cursor=. Die Antwort
gibt einen nextCursor zurück; übergeben Sie ihn als cursor, um die nächste Seite zu erhalten.
Rate-Limit
Abschnitt betitelt „Rate-Limit“120 Anfragen pro Minute pro Token. Bei Überschreitung wird 429 rate_limited zurückgegeben.
Beispiele
Abschnitt betitelt „Beispiele“# List workspacescurl -H "Authorization: Bearer ld_live_..." \ https://api.letdraw.com/api-v1/workspaces
# Generate a diagram from a docker-composecurl -X POST -H "Authorization: Bearer ld_live_..." -H "Content-Type: application/json" \ -d '{"workspaceId":"<id>","code":"services:\n web:\n image: nginx\n depends_on: [db]\n db:\n image: postgres\n"}' \ https://api.letdraw.com/api-v1/documents/from-code
# Export a diagram to Mermaidcurl -H "Authorization: Bearer ld_live_..." \ "https://api.letdraw.com/api-v1/documents/<id>/export?format=mermaid"MCP-Server
Abschnitt betitelt „MCP-Server“Model-Context-Protocol-(MCP-)Clients (Claude, Cursor) können sich mit LetDraw verbinden und über Tools mit Ihren Diagrammen arbeiten.
- URL:
https://api.letdraw.com/mcp - Transport: Streamable HTTP (stateless JSON-RPC 2.0)
- Auth:
Authorization: Bearer ld_live_...
| Tool | Beschreibung |
|---|---|
list_workspaces | Zugängliche Workspaces |
list_diagrams | Diagramme in einem Workspace/Ordner |
get_diagram | Diagramm + Szene |
create_diagram | Ein Diagramm aus einem Elemente-Array erstellen (letdraw- oder Excalidraw-Format, automatisch erkannt) |
update_diagram | Name/Elemente aktualisieren |
delete_diagram | Ein Diagramm löschen |
diagram_from_code | compose, kubernetes, dot, plantuml, terraform, helm, sql -> Diagramm |
export_to_code | Diagramm -> Mermaid/D2 |
share_diagram | Einen öffentlichen Link erstellen |
unshare_diagram | Den öffentlichen Link entfernen |
generate_from_prompt | Diagramm aus natürlicher Sprache (KI) |
Client-Einrichtung
Abschnitt betitelt „Client-Einrichtung“Sie können auf der Seite Settings -> Developer vorgefertigte Konfigurationsblöcke mit Ihrem eigenen
Token kopieren. Ersetzen Sie ld_live_... unten durch Ihr eigenes Token.
~/.cursor/mcp.json (global) oder .cursor/mcp.json im Projektstammverzeichnis:
{ "mcpServers": { "letdraw": { "url": "https://api.letdraw.com/mcp", "headers": { "Authorization": "Bearer ld_live_..." } } }}Claude Desktop
Abschnitt betitelt „Claude Desktop“Claude Desktop verbindet sich über die mcp-remote-Bridge mit dem entfernten HTTP-Server
(Node.js erforderlich). Konfigurationsdatei:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{ "mcpServers": { "letdraw": { "command": "npx", "args": [ "-y", "mcp-remote", "https://api.letdraw.com/mcp", "--header", "Authorization:Bearer ld_live_..." ] } }}Starten Sie den Client nach dem Speichern neu. Beispiel-Prompts:
- “Liste meine letdraw-Workspaces auf.”
- “Wandle diese docker-compose in ein Diagramm in LetDraw um: …”
- “Exportiere Diagramm
als Mermaid.” - “Generiere ein Diagramm für einen OAuth-Login-Ablauf.”
- “Zeichne diese Cloud-Architektur in letdraw: …” (freie Komposition)
Der KI sagen, sie soll “es in LetDraw zeichnen”
Abschnitt betitelt „Der KI sagen, sie soll “es in LetDraw zeichnen”“create_diagram und update_diagram akzeptieren das Elemente-Array in zwei
Formaten: letdraws eigenem Element-Schema oder dem Excalidraw-Format. Das Format
wird automatisch erkannt, und Excalidraw-Elemente werden serverseitig in letdraw-Elemente umgewandelt
(einschließlich farbiger verschachtelter Container, an Formen gebundener Beschriftungen, Pfeile
mit Bindungen, Text und Frames).
Was das bedeutet: Wenn Sie ChatGPT, Gemini oder Claude auffordern, “diese Architektur in LetDraw zu zeichnen”, erzeugt das Modell das Excalidraw-JSON, das es aus seinen Trainingsdaten bereits sehr gut kennt, und sendet es über MCP; LetDraw zeichnet das exakte Äquivalent. Welche Layout-Qualität das Modell auch liefert, genau das erhalten Sie in LetDraw.
Ein Diagramm einbetten (render.svg)
Abschnitt betitelt „Ein Diagramm einbetten (render.svg)“Sie können ein öffentlich geteiltes Diagramm als SVG an Stellen wie einer README oder Notion einbetten.
Holen Sie sich zuerst ein Share-Token mit share_diagram (oder REST .../share), dann:
https://api.letdraw.com/render-svg?token=<share-token>Dieser Endpunkt gibt image/svg+xml zurück und benötigt kein API-Token (es werden nur geteilte
Diagramme gerendert), sodass Sie ihn direkt in <img src="..."> verwenden können.