Excalidraw MCP Server
MCP-сервер Excalidraw
Генерируйте красивые диаграммы Excalidraw на основе естественного языка — полностью локально, без необходимости в облачном API.
Вы описываете, что хотите («нарисуй архитектуру микросервисов для приложения электронной коммерции»), а MCP-сервер обращается к вашей локальной LLM llama.cpp для создания корректного файла .excalidraw, который вы можете мгновенно открыть.
Как это работает
You (Claude Desktop / Cursor)
↓ natural language description
MCP Server (this project)
↓ structured prompt + Excalidraw JSON spec
llama.cpp (localhost:8080)
↓ raw Excalidraw JSON
MCP Server → validates + saves → ~/excalidraw_diagrams/my-diagram.excalidraw
↓
Open in ExcalidrawПредварительные требования
Требование | Версия | Примечания |
Python | ≥ 3.11 |
|
uv | последняя |
|
llama.cpp | последняя | см. Шаг 1 |
Модель GGUF | рекомендуется 7B+ | см. Шаг 2 |
Excalidraw | веб или локально | см. Шаг 5 |
Настройка
Шаг 1 — Сборка llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build -j$(nproc)На macOS с Apple Silicon добавьте
-DLLAMA_METAL=ONдля ускорения на GPU.
Шаг 2 — Загрузка модели GGUF
Рекомендуемые модели (лучшее качество вывода JSON):
Модель | Размер | Путь HuggingFace |
Qwen2.5-7B-Instruct (рекомендуется) | ~4.5 ГБ |
|
Llama-3.1-8B-Instruct | ~4.7 ГБ |
|
Mistral-7B-Instruct-v0.3 | ~4.1 ГБ |
|
# Inside the llama.cpp directory:
mkdir models
# Download with huggingface-cli (pip install huggingface_hub):
huggingface-cli download Qwen/Qwen2.5-7B-Instruct-GGUF \
qwen2.5-7b-instruct-q4_k_m.gguf \
--local-dir models/Шаг 3 — Запуск сервера llama.cpp
# From inside the llama.cpp directory:
./build/bin/llama-server \
-m models/qwen2.5-7b-instruct-q4_k_m.gguf \
--port 8080 \
-c 8192 \
--host 0.0.0.0Проверьте, что он запущен:
curl http://localhost:8080/health
# → {"status":"ok"}Шаг 4 — Установка MCP-сервера
# Clone this repo
git clone <repo-url>
cd exclalidraw_mcp
# Install with uv (recommended)
uv sync
# Or with pip
pip install -e .Проверьте, что точка входа CLI работает:
excalidraw-mcp --helpШаг 5 — Настройка вашего MCP-клиента
Claude Desktop (Linux)
Отредактируйте ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"excalidraw": {
"command": "excalidraw-mcp"
}
}
}Если используете
uv, замените"command": "excalidraw-mcp"на:"command": "uv", "args": ["--directory", "/absolute/path/to/exclalidraw_mcp", "run", "excalidraw-mcp"]
Claude Desktop (macOS)
Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json, добавив то же содержимое.
Cursor / VS Code
Добавьте в настройки MCP с той же конфигурацией сервера, что указана выше.
Перезапустите приложение после редактирования конфигурации.
Шаг 6 — Запуск Excalidraw локально (опционально)
Вы всегда можете бесплатно использовать excalidraw.com. Но чтобы запустить его полностью локально:
docker run -p 5000:80 excalidraw/excalidraw:latest
# Open http://localhost:5000Или через Node:
npx excalidrawИспользование
После подключения MCP-сервера попросите своего ИИ-клиента:
Generate a flowchart for a user login system with OAuthDraw a microservices architecture for an e-commerce platform with cart, payment, and inventory servicesCreate a mind map about machine learning: supervised, unsupervised, reinforcement learningMake a sequence diagram showing a REST API request from browser to server to database and backDraw an ER diagram for a blog: users, posts, comments, tagsДоступные инструменты MCP
Инструмент | Описание |
| Основной инструмент — генерация диаграммы из текста |
| Проверка работы llama.cpp |
| Список всех сохраненных диаграмм |
Параметры generate_diagram
Параметр | Тип | По умолчанию | Описание |
| string | обязательно | Что должна отображать диаграмма |
| string |
|
|
| string |
| Имя выходного файла (расширение не требуется) |
Открытие созданной диаграммы
Диаграммы сохраняются в ~/excalidraw_diagrams/.
Откройте excalidraw.com или ваш локальный экземпляр
Нажмите на значок папки (слева вверху) → Открыть
Выберите ваш файл
.excalidraw
Запуск тестов
# Install test dependencies
uv add --dev pytest pytest-anyio respx
# Run all tests
pytest tests/ -vУстранение неполадок
"llama.cpp server is not running"
Выполните curl http://localhost:8080/health. Если команда не удалась, запустите сервер (Шаг 3).
"Could not parse LLM output as valid Excalidraw JSON"
LLM вернула некорректный JSON. Попробуйте:
Использовать более качественную модель (Qwen2.5-7B или больше)
Убедиться, что llama.cpp запущена с параметром
-c 8192(достаточный контекст)Сначала попробовать более простое описание, чтобы убедиться, что конвейер работает
"Diagram looks wrong / missing elements"
Будьте более конкретны в описании
Явно укажите
diagram_type(например,"flowchart", а не"freeform")Более крупные модели (13B+) создают значительно лучшую компоновку
Инструмент не появляется в Claude Desktop
Убедитесь, что в
claude_desktop_config.jsonнет синтаксических ошибок JSONПолностью перезапустите Claude Desktop
Проверьте логи:
~/.config/claude/logs/(Linux) или~/Library/Logs/Claude/(macOS)
Структура проекта
exclalidraw_mcp/
├── src/excalidraw_mcp/
│ ├── server.py ← MCP server + tool definitions
│ ├── llm_client.py ← llama.cpp HTTP client
│ ├── generator.py ← Prompt building + JSON parsing + validation
│ └── schema.py ← Excalidraw element dataclasses
├── prompts/
│ └── examples/ ← Few-shot example diagrams (flowchart, mindmap, sequence)
├── examples/
│ └── sample.excalidraw ← Reference diagram you can open immediately
├── tests/
│ ├── test_generator.py
│ └── test_llm_client.py
├── pyproject.toml
└── README.mdСоветы для создания лучших диаграмм
Будьте конкретны: "поток входа с email/паролем, JWT-токеном и хранилищем сессий" лучше, чем просто "поток входа"
Именуйте элементы: "блоки с метками A, B, C, соединенные стрелками" — Excalidraw следует вашим именам
Указывайте цвета: "используй синий для сервисов, желтый для баз данных"
Сосредоточьтесь: одна логическая концепция на диаграмму работает лучше, чем попытка показать всё сразу
Пересоздавайте свободно: если первый результат не идеален, попросите снова с другим именем файла — это происходит мгновенно
Лицензия
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jeel00dev/exclalidraw_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server