API et MCP
L’API REST et le serveur MCP de LetDraw permettent à des outils externes et à des clients IA (Claude, Cursor) de travailler avec vos diagrammes : lister, lire, créer, mettre à jour, générer un diagramme à partir de code, reconvertir en code, partager et générer à partir d’une invite.
Qui peut l’utiliser
Section intitulée « Qui peut l’utiliser »L’API et le MCP sont accessibles aux utilisateurs Pro et Enterprise. Sur les installations auto-hébergées, chaque membre connecté peut les utiliser. Les utilisateurs gratuits et invités ne peuvent pas créer de jetons.
1. Créer un jeton
Section intitulée « 1. Créer un jeton »- Connectez-vous à LetDraw avec un compte Pro/Enterprise.
- Allez dans Settings -> Developer.
- Créez un jeton : donnez-lui un nom, choisissez les portées (voir ci-dessous) et, éventuellement, restreignez-le à un seul espace de travail.
- Le jeton
ld_live_...généré n’est affiché qu’une seule fois. Enregistrez-le dans un endroit sûr. En cas de fuite, révoquez-le depuis la même page.
| Scope | Permission |
|---|---|
diagrams:read | Lire les espaces de travail, les dossiers et les diagrammes |
diagrams:write | Créer, mettre à jour, supprimer et partager des diagrammes |
export | Exporter un diagramme en code Mermaid/D2 |
ai:generate | Générer un diagramme à partir d’une invite (IA) |
2. Authentification
Section intitulée « 2. Authentification »Envoyez le jeton comme valeur Bearer dans l’en-tête Authorization de chaque
requête :
Authorization: Bearer ld_live_...Aucun en-tête apikey supplémentaire n’est nécessaire.
API REST
Section intitulée « API REST »Base URL : https://api.letdraw.com/api-v1
Toutes les réponses sont au format JSON. Les erreurs renvoient un corps standard :
{ "error": { "code", "message" } }.
| Method | Path | Description | Scope |
|---|---|---|---|
| GET | / | Informations sur l’API (portées, endpoints) | any |
| GET | /workspaces | Vos espaces de travail (avec le rôle) | read |
| GET | /folders?workspace=<id> | Dossiers d’un espace de travail | read |
| GET | /documents?workspace=<id> | Diagrammes d’un espace de travail (paginé) | read |
| GET | /documents?folder=<id> | Diagrammes d’un dossier (paginé) | read |
| POST | /documents | Créer un diagramme | write |
| GET | /documents/:id | Diagramme + scène (éléments) | read |
| PATCH | /documents/:id | Mettre à jour le nom et/ou les éléments | write |
| DELETE | /documents/:id | Supprimer un diagramme | write |
| POST | /documents/from-code | Générer un diagramme à partir de code | write |
| POST | /documents/generate | Générer un diagramme à partir d’une invite (IA) | ai:generate |
| GET | /documents/:id/export?format=mermaid|d2 | Exporter un diagramme en code | export |
| POST | /documents/:id/share | Créer un lien public en lecture seule | write |
| DELETE | /documents/:id/share | Supprimer le lien public | write |
Pagination
Section intitulée « Pagination »Les endpoints de liste acceptent ?limit= (1-100, valeur par défaut 50) et
?cursor=. La réponse renvoie un nextCursor ; transmettez-le comme cursor
pour obtenir la page suivante.
Limite de débit
Section intitulée « Limite de débit »120 requêtes par minute par jeton. Le dépassement renvoie
429 rate_limited.
Exemples
Section intitulée « Exemples »# 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"Serveur MCP
Section intitulée « Serveur MCP »Les clients Model Context Protocol (MCP) (Claude, Cursor) peuvent se connecter à LetDraw et travailler avec vos diagrammes au travers d’outils.
- URL :
https://api.letdraw.com/mcp - Transport : Streamable HTTP (JSON-RPC 2.0 sans état)
- Auth :
Authorization: Bearer ld_live_...
| Tool | Description |
|---|---|
list_workspaces | Espaces de travail accessibles |
list_diagrams | Diagrammes d’un espace de travail/dossier |
get_diagram | Diagramme + scène |
create_diagram | Créer un diagramme à partir d’un tableau d’éléments (format LetDraw ou Excalidraw, détecté automatiquement) |
update_diagram | Mettre à jour le nom/les éléments |
delete_diagram | Supprimer un diagramme |
diagram_from_code | compose, kubernetes, dot, plantuml, terraform, helm, sql -> diagramme |
export_to_code | Diagramme -> Mermaid/D2 |
share_diagram | Créer un lien public |
unshare_diagram | Supprimer le lien public |
generate_from_prompt | Diagramme à partir de langage naturel (IA) |
Configuration des clients
Section intitulée « Configuration des clients »Vous pouvez copier des blocs de configuration prêts à l’emploi contenant votre
propre jeton depuis la page Settings -> Developer. Remplacez ld_live_...
ci-dessous par votre propre jeton.
~/.cursor/mcp.json (global) ou .cursor/mcp.json à la racine du projet :
{ "mcpServers": { "letdraw": { "url": "https://api.letdraw.com/mcp", "headers": { "Authorization": "Bearer ld_live_..." } } }}Claude Desktop
Section intitulée « Claude Desktop »Claude Desktop se connecte au serveur HTTP distant via le pont mcp-remote
(Node.js requis). Fichier de configuration :
- 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_..." ] } }}Redémarrez le client après l’enregistrement. Exemples d’invites :
- « List my LetDraw workspaces. »
- « Turn this docker-compose into a diagram in letdraw: … »
- « Export diagram
as Mermaid. » - « Generate an OAuth login flow diagram. »
- « Draw this cloud architecture in letdraw: … » (composition libre)
Demander à l’IA de « le dessiner dans LetDraw »
Section intitulée « Demander à l’IA de « le dessiner dans LetDraw » »create_diagram et update_diagram acceptent le tableau d’éléments dans deux
formats : le schéma d’éléments propre à LetDraw ou le format Excalidraw. Le
format est détecté automatiquement, et les éléments Excalidraw sont convertis en
éléments LetDraw côté serveur (y compris les conteneurs imbriqués colorés, les
étiquettes liées aux formes, les flèches avec liaisons, le texte et les cadres).
Ce que cela signifie : lorsque vous demandez à ChatGPT, Gemini ou Claude de « dessiner cette architecture dans LetDraw », le modèle produit le JSON Excalidraw qu’il connaît déjà très bien grâce à ses données d’entraînement et l’envoie via MCP ; LetDraw en dessine l’équivalent exact. Quelle que soit la qualité de mise en page du modèle, c’est ce que vous obtenez dans LetDraw.
Intégrer un diagramme (render.svg)
Section intitulée « Intégrer un diagramme (render.svg) »Vous pouvez intégrer un diagramme partagé publiquement au format SVG à des
endroits comme un README ou Notion. Obtenez d’abord un jeton de partage avec
share_diagram (ou l’endpoint REST .../share), puis :
https://api.letdraw.com/render-svg?token=<share-token>Cet endpoint renvoie image/svg+xml et ne nécessite aucun jeton d’API (seuls les
diagrammes partagés sont rendus), vous pouvez donc l’utiliser directement dans
<img src="...">.