Skip to main content
Glama

Excalidraw Boards

Self-hosted Excalidraw with boards in folders, and an MCP server so your AI agent can draw on them.

CI License: MIT

Excalidraw with a Boards sidebar of folders and boards

The Excalidraw editor you know, plus the two things it does not do on its own:

  • Boards. As many boards as you like, in nested folders, saved on your server as plain .excalidraw files. Nothing lives in browser storage, and there is nothing to export.

  • MCP. An endpoint that lets Claude Code, Cursor, VS Code or any other MCP client read and draw on your boards. A board you have open updates live while the agent draws.

Quick start

git clone https://github.com/yashagw/excalidraw-boards.git
cd excalidraw-boards
docker compose up -d

The first start builds the image, which takes a minute or two. Then open http://localhost:3779 and start drawing. Boards are saved in ./data/boards.

WARNING

There is no login. Anyone who can reach the port can read and edit every board. Keep it on your machine or a private network (Tailscale, WireGuard, a VPN). Seeself-hosting.

Node.js 22 or newer:

npm install
npm run build
npm start            # http://localhost:3779, boards in ./data

Related MCP server: Excalidraw MCP Server

Boards

  • Boards sidebar (top right): create boards and folders, double-click to rename, drag onto a folder to move, search by name. Deleted boards go to data/trash/, not into the void.

  • Autosave half a second after you stop drawing. Every board has its own URL, like /b/Work/Architecture.

  • Plain files. data/boards/Work/Architecture.excalidraw is exactly what Excalidraw's "Save to disk" writes: open it on excalidraw.com, keep it in git, back it up with rsync.

  • Safe to share. Two tabs, or you and an agent, can edit the same board: changes merge per element. A save can never drop elements, and earlier versions are kept in data/history/.

  • Your shape library is stored on the server too, so it follows you to every device.

More in docs/boards.md.

Let your agent draw

An agent draws a checkout flow on an open board, then adds a cache and recolours a box

Add the MCP server to your client. For Claude Code:

claude mcp add --transport http excalidraw http://localhost:3779/mcp

For Cursor, VS Code and others, see docs/mcp.md. Then ask:

Draw our checkout flow on a new board "Architecture/Checkout flow".

Tools

What they do

list_boards, read_board

See which boards exist and what is on one

create_board, add_elements

Draw: shapes with labels, arrows that attach to shapes

update_elements, delete_elements

Move, restyle, relabel or remove elements

search_library

Find icons in your library (AWS, system design, …) to place by name

move_board, drawing_guide

Rename or move a board; the format guide agents read first

Agents send ordinary Excalidraw elements with two shortcuts: a label on any shape, and arrows that name the shapes they connect. The server routes and binds them, using Excalidraw's own converter:

[
  { "type": "rectangle", "id": "api", "x": 0, "y": 0, "width": 180, "height": 80, "label": "Orders API" },
  { "type": "ellipse", "id": "db", "x": 300, "y": 0, "width": 160, "height": 80, "label": "Postgres" },
  { "type": "arrow", "start": { "id": "api" }, "end": { "id": "db" }, "label": "insert" }
]

More in docs/mcp.md.

Docs

  • Boards: folders, autosave, merging, history, trash and the library

  • MCP: connecting clients, the tools, the element format, library icons

  • Self-hosting: Docker, reverse proxies, security, backups, configuration

  • Development: how the code is laid out, running it locally, tests

Contributing

Issues and pull requests are welcome; see CONTRIBUTING.md. Please report security problems privately (SECURITY.md).

Credits

Built on Excalidraw: the editor is the official @excalidraw/excalidraw package, not a fork. The drawing guide agents read is adapted from the official excalidraw-mcp. Both are MIT licensed, and so is this project (LICENSE).

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to programmatically control a live Excalidraw canvas through element-level CRUD operations and real-time synchronization. It allows agents to iteratively build, inspect, and refine diagrams while providing visual feedback via screenshots and scene descriptions.
    3,070 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to programmatically control a live Excalidraw canvas with element-level CRUD operations and real-time synchronization. It supports iterative diagramming through scene descriptions, screenshots, and advanced layout tools for collaborative AI-human workflows.
    3,070 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to create, modify, and share diagrams on a live Excalidraw canvas through MCP tools, supporting shapes, text, arrows, batch operations, and export to shareable links with images.
    3,070 npm
    8
    MIT