Aller au contenu

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.

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. Connectez-vous à LetDraw avec un compte Pro/Enterprise.
  2. Allez dans Settings -> Developer.
  3. Créez un jeton : donnez-lui un nom, choisissez les portées (voir ci-dessous) et, éventuellement, restreignez-le à un seul espace de travail.
  4. 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.
ScopePermission
diagrams:readLire les espaces de travail, les dossiers et les diagrammes
diagrams:writeCréer, mettre à jour, supprimer et partager des diagrammes
exportExporter un diagramme en code Mermaid/D2
ai:generateGénérer un diagramme à partir d’une invite (IA)

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.

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" } }.

MethodPathDescriptionScope
GET/Informations sur l’API (portées, endpoints)any
GET/workspacesVos espaces de travail (avec le rôle)read
GET/folders?workspace=<id>Dossiers d’un espace de travailread
GET/documents?workspace=<id>Diagrammes d’un espace de travail (paginé)read
GET/documents?folder=<id>Diagrammes d’un dossier (paginé)read
POST/documentsCréer un diagrammewrite
GET/documents/:idDiagramme + scène (éléments)read
PATCH/documents/:idMettre à jour le nom et/ou les élémentswrite
DELETE/documents/:idSupprimer un diagrammewrite
POST/documents/from-codeGénérer un diagramme à partir de codewrite
POST/documents/generateGénérer un diagramme à partir d’une invite (IA)ai:generate
GET/documents/:id/export?format=mermaid|d2Exporter un diagramme en codeexport
POST/documents/:id/shareCréer un lien public en lecture seulewrite
DELETE/documents/:id/shareSupprimer le lien publicwrite

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.

120 requêtes par minute par jeton. Le dépassement renvoie 429 rate_limited.

Fenêtre de terminal
# List workspaces
curl -H "Authorization: Bearer ld_live_..." \
https://api.letdraw.com/api-v1/workspaces
# Generate a diagram from a docker-compose
curl -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 Mermaid
curl -H "Authorization: Bearer ld_live_..." \
"https://api.letdraw.com/api-v1/documents/<id>/export?format=mermaid"

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_...
ToolDescription
list_workspacesEspaces de travail accessibles
list_diagramsDiagrammes d’un espace de travail/dossier
get_diagramDiagramme + scène
create_diagramCréer un diagramme à partir d’un tableau d’éléments (format LetDraw ou Excalidraw, détecté automatiquement)
update_diagramMettre à jour le nom/les éléments
delete_diagramSupprimer un diagramme
diagram_from_codecompose, kubernetes, dot, plantuml, terraform, helm, sql -> diagramme
export_to_codeDiagramme -> Mermaid/D2
share_diagramCréer un lien public
unshare_diagramSupprimer le lien public
generate_from_promptDiagramme à partir de langage naturel (IA)

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 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.

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="...">.