excalidraw-diagram-agent
Generates editable Excalidraw diagrams from system descriptions, producing .excalidraw files with bound text labels and arrows that remain attached when elements are moved.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Built as a portfolio project proving MCP breadth beyond data-query tools: this server takes a described system and produces a real, editable diagram file — not a data lookup, a generative/creative tool exposed the same way as the data-query MCP server in this portfolio.
excalidraw-diagram-agent
An MCP server that turns a described system into a real, editable
.excalidraw diagram file. Describe an architecture in Claude Desktop
("draw me a diagram of a client talking to an API gateway, which routes to
an auth service and an order service, both writing to Postgres") and get
back a file you can open and keep editing in Excalidraw.
What's here
layout.py— a simple layered graph layout (no external graph library): positions nodes left-to-right by distance from a root, stacked vertically within each layer.excalidraw_gen.py— builds valid.excalidrawJSON: rectangles with properly bound text labels (they move together in the editor) and arrows with realstartBinding/endBinding(they stay attached when you drag a box) — not just static lines dropped at fixed coordinates.server.py— the MCP server, one tool:generate_diagram(title, nodes, edges).requirements.txt— one dependency, pinned.
Related MCP server: Excalidraw Architect MCP
1. Setup
cd excalidraw-diagram-agent
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt2. Test it standalone (no Claude needed yet)
python3 -c "
from server import generate_diagram
print(generate_diagram(
title='Order Processing System',
nodes=[
{'id': 'client', 'label': 'Web Client'},
{'id': 'gateway', 'label': 'API Gateway'},
{'id': 'auth', 'label': 'Auth Service'},
{'id': 'orders', 'label': 'Order Service'},
{'id': 'db', 'label': 'Postgres DB'},
],
edges=[
{'from': 'client', 'to': 'gateway'},
{'from': 'gateway', 'to': 'auth'},
{'from': 'gateway', 'to': 'orders'},
{'from': 'auth', 'to': 'db'},
{'from': 'orders', 'to': 'db'},
],
))
"Should print a confirmation with the file path. Open the generated file at
excalidraw.com (File > Open, or just drag the .excalidraw file onto
the page) to see the actual diagram.
3. Connect it to Claude Desktop
Same pattern as the rental-data MCP server (project 1) — add a second
entry to the same config file, ~/Library/Application Support/Claude/claude_desktop_config.json,
alongside your existing mcpServers block:
"diagram-agent": {
"command": "/absolute/path/to/excalidraw-diagram-agent/venv/bin/python3",
"args": ["/absolute/path/to/excalidraw-diagram-agent/server.py"]
}(Both servers can live in the same mcpServers object — don't replace
rental-data, add diagram-agent next to it.) Fully quit and reopen
Claude Desktop, then check Settings > Developer to confirm both show as
running.
4. Demo prompts
"Draw me a diagram of a typical 3-tier web app: client, API server, database"
"Diagram a CI/CD pipeline: developer pushes to Git, triggers a build, runs tests, then deploys to staging and production"
"Show me an event-driven architecture with a producer, a message queue, and two consumers"
Claude will figure out the nodes and edges from your description and call the tool — you're not writing the JSON yourself, that's the point. Open the resulting file at excalidraw.com to show it's a real, editable diagram, not a static image.
Architecture notes
Why a real Excalidraw file, not just a picture: an LLM could describe a diagram in words, or even generate an SVG. Producing an actual
.excalidrawfile with correct element bindings means the output is a genuine editable artifact — drag a box, the arrows and label follow. That's a meaningfully different (and harder) target than a static image.Layout: intentionally simple (layered left-to-right) rather than a general-purpose graph layout library — sufficient for the kind of system/architecture diagrams this tool is aimed at, and keeps the dependency list at just the MCP SDK.
Validation:
server.pychecks that every edge references a real node id before generating anything, returning a clear error instead of producing a broken file.
Repo structure
excalidraw-diagram-agent/
├── README.md
├── requirements.txt
├── layout.py
├── excalidraw_gen.py
├── server.py
└── outputs/ (generated .excalidraw files, gitignored)Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate cloud architecture diagrams, flowcharts, and sequence diagrams.
Create and edit architecture diagrams from your AI agent; get an SVG and a live editable canvas.
Create, edit and organize hand-drawn diagrams (flowcharts, ER, architecture) from any AI agent.
Create and edit collaborative architecture diagrams with any AI assistant using the Trident 2D DSL.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to turn plain-language descriptions of systems, flows, and data into 25 kinds of fully laid-out, hand-drawn Excalidraw diagrams — architecture, sequence, ER, swimlane, Gantt, charts and more — with auto-styling for 50+ technologies and revision in natural language. Runs fully offline, exports to SVG and PNG without a browser or Node.js, and can optionally persist the architecture as a queryable knowledge graph.-
- FlicenseNot gradedqualityAmaintenanceEnables users to generate and revise 25 types of hand-drawn Excalidraw diagrams—including architecture, flowcharts, sequence, ER, Gantt, and charts—from natural-language specs without managing coordinates. It can also persist architecture as a queryable, version-controlled knowledge graph and export offline to SVG or PNG.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to generate auto-laid-out, hand-drawn-style Excalidraw diagrams across 25 diagram types from natural-language structure descriptions, with SVG/PNG export and natural-language revision. Runs fully offline without API keys and can persist the described system as a queryable architecture knowledge graph.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to turn natural-language descriptions of systems, flows, and data into 25 types of hand-drawn Excalidraw diagrams with automatic layout and architecture-aware styling, then revise them conversationally and export to SVG or PNG. It can also persist a system as a version-controlled, queryable architecture knowledge graph, running fully offline without API keys.-