Un diagramme fait partie de ces artefacts qui devraient se mettre à jour tout seuls. L'architecture change à chaque merge, la page de documentation a une release de retard, et quelqu'un finit par ouvrir un outil de dessin pour corriger à la main. LetDraw dispose d'une API et d'un serveur MCP pour qu'un script ou un agent IA fasse ce travail à votre place, et continue de le faire chaque fois que la source change.
Si vous générez déjà des diagrammes à partir d'un fichier Compose ou d'une spécification, l'étape suivante est d'arrêter d'appuyer vous-même sur le bouton. Un jeton d'API personnel transforme cette même génération en un appel que n'importe quelle machine peut effectuer : une étape de build, une tâche nocturne, ou un assistant qui lit votre demande et dessine le résultat. Le jeton ne porte que les permissions que vous lui accordez, si bien que l'automatisation respecte le moindre privilège par défaut.
Jetons d'API personnels et portées
Vous créez un jeton dans les paramètres Développeur, vous lui donnez un nom et vous choisissez ses portées. C'est toute la configuration. Le nom sert à distinguer les jetons plus tard ; appelez-en un « Script CI » et un autre du nom de l'assistant qui le détiendra, et un jeton révoqué ne coupe qu'un seul appelant, rien d'autre.
Les portées permettent à un jeton de respecter le moindre privilège. Plutôt qu'une clé toute-puissante, chaque jeton reçoit uniquement les capacités dont sa tâche a besoin :
- Lire les diagrammes pour une tâche qui récupère seulement l'état actuel d'un dessin
- Créer et modifier des diagrammes pour une automatisation qui produit ou met à jour des canevas
- Exporter en Mermaid ou D2 pour un pipeline de documentation qui a besoin d'un fichier à commiter
- Générer à partir d'un prompt pour le chemin IA, où une demande devient un diagramme
Un jeton, une tâche, un nom que vous pouvez révoquer. C'est la différence entre une automatisation de confiance et une clé que vous avez peur de confier.
Appelez-la depuis la CI ou un cron
La REST API est un simple point de terminaison HTTP. Authentifiez-vous avec un jeton bearer, envoyez un corps JSON et récupérez un diagramme. Voici le chemin de génération à partir d'un prompt, le type d'appel que vous placeriez dans une étape de build pour que l'architecture soit dessinée à partir d'une spécification à chaque push :
# $LD_TOKEN holds a token with the "generate" and "export" scopes # 1) prompt to diagram (uses the AI key stored on your account) curl https://api.letdraw.com/api-v1/documents/generate \ -H "Authorization: Bearer $LD_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "prompt": "web -> api -> postgres, redis cache on api", "name": "Architecture" }' # 2) export it as text to commit next to the code (format=mermaid or d2) curl "https://api.letdraw.com/api-v1/documents/$DOC_ID/export?format=mermaid" \ -H "Authorization: Bearer $LD_TOKEN"
Placez cela derrière une tâche cron et le diagramme de documentation obsolète cesse tout simplement d'exister. La tâche s'exécute, le diagramme se régénère à partir de ce que dit l'entrée aujourd'hui, et l'image qu'ouvrent vos collègues est celle qui correspond à la réalité. Le premier appel renvoie le nouveau document avec son id ; l'appel d'export le transforme en texte mermaid ou d2 que vous pouvez commiter à côté du code.
Un pipeline qui reste à jour
Le principe est le même, que le déclencheur soit un merge ou une planification : quelque chose change, le pipeline appelle l'API et le diagramme est reconstruit. Personne n'a à penser à réexporter quoi que ce soit, car il n'y a rien à retenir.
Branchez-la à un assistant IA avec MCP
Les mêmes capacités sont exposées via le Model Context Protocol, si bien qu'un assistant IA peut dessiner et modifier des diagrammes pour vous au fil de la conversation. Vous enregistrez LetDraw une fois comme serveur MCP, vous lui fournissez un jeton, et l'assistant obtient les outils que ses portées autorisent : il peut créer un canevas, modifier ce qui s'y trouve, exporter en Mermaid ou D2, ou générer un diagramme à partir d'une description rédigée en langage courant.
{
"mcpServers": {
"letdraw": {
"url": "https://api.letdraw.com/mcp",
"headers": {
"Authorization": "Bearer $LD_TOKEN"
}
}
}
}
Comme l'assistant ne détient jamais que le jeton que vous lui avez donné, sa portée est plafonnée aux portées de ce jeton. Donnez à un assistant de rédaction la création et la modification ainsi que la génération, et il pourra construire et réviser des diagrammes toute la journée ; donnez à un assistant de relecture uniquement la lecture et l'export, et il pourra consulter et produire un fichier sans jamais modifier votre canevas. Nommez le jeton d'après le client qui le détient, et si vous voulez un jour lui couper l'accès, vous révoquez un seul jeton et cet assistant perd l'accès dès l'appel suivant.
Révoquer, renouveler, recommencer
Chaque jeton est révocable depuis la même page des paramètres Développeur où vous l'avez créé. C'est ce qui rend confortable le fait de confier des jetons à des scripts et à des assistants : rien de ce que vous accordez n'est permanent, et rien n'est imbriqué avec autre chose. Une variable CI qui a fuité, un client que vous n'utilisez plus, une portée accordée trop généreusement : dans chaque cas, la solution consiste à révoquer ce jeton et à en créer un nouveau avec les portées que vous vouliez vraiment.
Au total, c'est une petite surface avec une règle claire. Les machines et les assistants obtiennent des diagrammes de la même façon que vous, via des jetons nommés qui ne portent que les permissions dont leur tâche a besoin, et vous pouvez retirer n'importe lequel d'entre eux dès que vous le souhaitez. Le diagramme n'est plus une chose que vous maintenez, mais une chose que votre pipeline produit.