Рисование с помощью AI
Эта страница является справочником по тому, как AI-клиент (ChatGPT, Claude, Gemini, Cursor, …) рисует профессиональные диаграммы в LetDraw через API и MCP. Модели не нужно угадывать схему letdraw: всё, что ниже, также предоставляется модели в момент вызова, поэтому подключённая модель может прочитать это и нарисовать правильно с первой попытки.
Как модель узнаёт LetDraw
Заголовок раздела «Как модель узнаёт LetDraw»Вы не переобучаете модель; вы даёте ей контекст в момент вызова. LetDraw раскрывает все свои знания о рисовании через сервер MCP и REST API:
| Что | MCP | REST |
|---|---|---|
| Как рисовать (это руководство, машиночитаемое) | resource letdraw://capabilities | GET /capabilities |
| Каждая библиотека иконок + все подписи элементов | resource letdraw://libraries | GET /libraries?items=1 |
| Идентификаторы библиотек + счётчики | tool list_shape_libraries | GET /libraries |
| Найти иконку для компонента | tool search_icons | GET /icons?query=… |
| Создать / обновить диаграмму | tools create_diagram / update_diagram | POST / PATCH /documents |
Правильно ведущий себя клиент один раз читает ресурсы letdraw://capabilities и
letdraw://libraries, а затем рисует. Направьте свой AI на конечную точку MCP (см. API
и MCP); остальное он обнаружит сам.
Золотые правила профессионального результата
Заголовок раздела «Золотые правила профессионального результата»- Используйте настоящие иконки, не рисуйте их. Вызовите
search_icons(например,"postgres","redis","kubernetes pod","load balancer") и поместите возвращённое значениеrefв полеiconRefблока (например,"databases/PostgreSQL"). Сервер штампует именно эту иконку и размещает подпись под ней. - Держите контейнеры чистыми. Большие группирующие блоки (Kubernetes Cluster, VPC,
полоса подсети) должны быть широкими (> 420px) или
frame. Иконки штампуются только на блоки размером с узел (шириной 60-420px, высотой 40-260px). Размещайте заголовок контейнера как отдельный текст над ним, а не как привязанную подпись. - Вкладывайте осознанно. Внешний цветной контейнер к блокам размером с узел внутри, каждый со своей иконкой. Лучше всего читаются два или три уровня (Cluster к Worker Node к Pod).
- Прокладывайте стрелки аккуратно. Для прямоугольных / многоизломных соединений
отправляйте стрелку с 3+
points; привязывайте концы к фигурам, чтобы они оставались прикреплёнными. - Кодируйте цветом по роли и сохраняйте единообразные отступы.
Отправка сцены
Заголовок раздела «Отправка сцены»create_diagram / update_diagram принимают elements как либо нативные элементы
LetDraw, либо стандартный Excalidraw JSON (автоопределяется и преобразуется на
сервере). Создание Excalidraw JSON это самый простой путь к высокому качеству; нативный
LetDraw даёт вам специфичные для LetDraw возможности, описанные ниже.
Общие поля элемента
Заголовок раздела «Общие поля элемента»id, type, x, y, width, height плюс стиль: strokeColor (hex), fillColor
(hex или "transparent"), fillStyle (hachure | cross-hatch | solid | dots | zigzag | dashed | zigzag-line), strokeWidth (1-8), strokeStyle
(solid | dashed | dotted), roughness (clean | sketch | scribble), bowing
(straight | curved | wavy), corner (sharp | rounded | beveled), opacity
(0-100), seed. Необязательные: text, fontSize, fontFamily
(hand | normal | code), textAlign, groupIds, angle (в радианах), link,
shadow (none | soft | hard) и расширение LetDraw iconRef.
Типы фигур
Заголовок раздела «Типы фигур»rectangle, ellipse, diamond, triangle, right-triangle, parallelogram, trapezoid, star, hexagon, heptagon, octagon, cross, cloud, cylinder, speech-bubble, document, manual-input, display, terminator, data-storage, preparation, блочные
стрелки (arrow-right/left/up/down), плюс text, image (dataURL), frame
(подписанный пунктирный раздел; задайте name), embed (url), math (LaTeX в text),
code (исходник в text, language). Фигура несёт свою подпись с text
внутри (в формате Excalidraw, через текстовый элемент с containerId).
Стрелки
Заголовок раздела «Стрелки»type: "arrow" и:
arrowShape:straight | curved | elbow | s-curve | smart | multipoint | multipoint-curved.smartавтоматически прокладывает маршрут вокруг других фигур.multipointэто острая многосегментная ломаная;multipoint-curvedеё сглаженная версия; обе читают свои углы изpoints.points:{x, y}[]в абсолютных мировых координатах (от первого к последнему). 2 точки = прямая, 3 = излом (один изгиб), 4+ = проложенная ломаная. Прямоугольное соединение:points: [{x1,y1},{x2,y1},{x2,y2}].controlPoint/controlPoint2: манипуляторы Безье для curved / s-curve / elbow.startArrowhead/endArrowhead:none | arrow | triangle | triangle-outline | circle | diamond | diamond-outline | bar | crows-foot | crows-foot-bar | double-bar | circle-bar | circle-crows-foot. Используйте UML-наконечники (triangle-outline= обобщение,diamond= композиция) и ER-наконечники «воронья лапа» для кардинальности.startBinding/endBinding:{elementId, focus:{x,y}}: привяжите конец к фигуре (focusэто точка 0..1 в bbox фигуры), чтобы стрелка следовала за ней.
В формате Excalidraw отправляйте стрелку с points + startArrowhead/endArrowhead;
преобразователь сопоставляет 2 / 3 / 4+ точек с straight / elbow / s-curve и пересчитывает
привязки.
type: "line" и lineShape: straight | multipoint | multipoint-curved.
Многоточечные линии несут points (как у стрелок, без наконечника). Также
freedraw (points[]) и highlight (полупрозрачный маркер).
Иконки: процесс iconRef
Заголовок раздела «Иконки: процесс iconRef»search_icons({ query })создаёт ранжированный[{ library, label, ref }].- Задайте
iconRef: "<library>/<Item Label>"(или{ library, label }) на целевом блоке. create_diagramштампует эту иконку сверху по центру и перемещает подпись под неё.
Явный iconRef всегда имеет приоритет; затем любой оставшийся подписанный узел без иконки
автоматически получает наиболее подходящую по ключевому слову иконку. В облачной сцене
укажите вендора (kubernetes / aws / azure / gcp), чтобы предпочитались наборы
иконок этого вендора. Просматривайте идентификаторы с list_shape_libraries; полный
каталог подписей находится в letdraw://libraries (или GET /libraries?items=1).
Продукты баз данных разрешаются в библиотеку Databases: реальные логотипы там, где это позволяет политика бренда (PostgreSQL, MariaDB, Cassandra, DynamoDB, …), иначе подходящие для БД обобщённые иконки (MySQL, Redis, MongoDB, …).
Небольшой пример в формате Excalidraw
Заголовок раздела «Небольшой пример в формате Excalidraw»[ { "id": "db", "type": "rectangle", "x": 0, "y": 0, "width": 200, "height": 90, "backgroundColor": "#eef2ff", "strokeColor": "#334155", "roundness": { "type": 3 }, "iconRef": "databases/PostgreSQL", "boundElements": [{ "type": "text", "id": "dbt" }] }, { "id": "dbt", "type": "text", "x": 10, "y": 30, "text": "Orders DB", "containerId": "db" }, { "id": "a1", "type": "arrow", "x": 200, "y": 45, "points": [[0, 0], [80, 0], [80, 120]], "endArrowhead": "triangle", "startBinding": { "elementId": "db" } }]Другие инструменты
Заголовок раздела «Другие инструменты»diagram_from_code: отправьте docker-compose / манифест Kubernetes / Graphviz DOT / PlantUML / Terraform / Helm values / SQL DDL; LetDraw автоопределяет формат и раскладывает его.export_to_code: диаграмму в Mermaid или D2.generate_from_prompt: естественный язык в диаграмму, с использованием собственного AI-ключа вашей учётной записи.
По вопросам аутентификации, конечных точек, областей действия и настройки клиента см. API и MCP.