# Excalidraw MCP
> Enables AI agents to programmatically generate, edit, and view Excalidraw diagrams with real-time browser synchronization. It provides a suite of tools for adding shapes, text, and arrows to diagrams through natural language interactions.
Canonical: https://www.mcpfolio.com/servers/excalidraw-mcp-server
Last updated: 2026-10-28
## Catalog record

- Publisher: Scofieldfree
- Categories: development, design

## Repository

https://github.com/Scofieldfree/excalidraw-mcp

## Transports

stdio

## Authentication

No credentials were configured; the tested read-only tool “list_sessions” succeeded in an isolated environment. Other tools may have additional requirements.

## Tools

- **start_session**: Start browser preview and open Excalidraw editor interface.

Multi-session support:
- No sessionId: Uses default session (default)
- sessionId specified: Open/Create specific session
- Multiple sessions can be opened simultaneously for different diagrams

After calling this tool:
1. Browser window opens automatically
2. Excalidraw editor loads
3. WebSocket realtime connection is established

Please pass the same sessionId when using tools like add_elements, update_element subsequently.
- **list_sessions**: List all currently active Excalidraw sessions.
- **create_diagram**: Create a new diagram or clear an existing session.

This action will:
1. If a sessionId is specified, clear all elements in that session.
2. If no sessionId is specified, create a new session.
3. Reset the application state.

Usage scenarios:
• Starting a new project (no sessionId specified)
• Clearing an existing diagram (sessionId specified)
• Creating multiple independent diagrams (specify different sessionIds each time)
- **delete_diagram**: Delete the specified diagram session.

Note: This will completely delete the session and all its elements, and cannot be undone.
If you only want to clear elements but keep the session, use create_diagram and specify the sessionId.
- **add_elements**: Add multiple Excalidraw elements to the canvas.

Supported element types:
- rectangle
- ellipse
- diamond
- arrow
- text
- line
- freedraw
- image
- frame/magicframe
- iframe/embeddable

Style options:
- strokeColor: e.g. #1e1e1e
- backgroundColor: e.g. #D97706
- fillStyle: solid/hachure/cross-hatch
- strokeWidth: 1-4
- roughness: 0=architect, 1=artist, 2=cartoonist

Advanced options:
- label: Auto-create bound text inside shape/arrow containers
- start/end: Arrow endpoint binding to new or existing elements
- containerId: DEPRECATED (use label instead)

Multi-session support: Specify sessionId to target a specific session.
- **create_from_mermaid**: Create diagram elements from Mermaid syntax.

Converts Mermaid text to Excalidraw elements through connected browser client.
If browser is not connected yet, request is queued and sent after websocket ready.
Returns clear errors for timeout and mermaid syntax problems.
- **add_template_architecture**: Add a built-in architecture diagram template to the canvas.

This template visualizes the MCP server architecture with grouped layers and connected arrows.
By default it resets the current session before adding template elements.
- **update_element**: Update attributes of an existing element.

Updatable attributes:
- x, y: Position coordinates
- width, height: Dimensions
- strokeColor: Stroke color
- backgroundColor: Background color
- fillStyle: Fill style
- strokeWidth: Stroke width
- roughness: Roughness
- opacity: Opacity
- text: Text content (only for text type)

Multi-session support: Specify sessionId to target a specific session.
- **delete_element**: Delete a specific element from the canvas.

Usage scenarios:
- Remove unwanted elements
- Clean up temporary elements
- Delete erroneously added elements

Multi-session support: Specify sessionId to target a specific session.
- **get_scene**: Retrieve complete information about the current diagram scene.

Returns:
- List of all elements
- Application state
- Version number
- Session ID

Usage scenarios:
- Viewing current diagram content
- Analyzing scene structure
- Obtaining element IDs for updates/deletion

Multi-session support: Specify sessionId to query a specific session.
- **export_diagram**: Export the current diagram to a PNG, SVG, or JSON file.

Notes:
- JSON format is saved directly by the server.
- PNG/SVG are generated by the browser and sent back to the server to save.
- Requires start_session to be called first and the browser to be connected.

Multi-session support: Specify sessionId to target a specific session.

## Sources

- [MCP.Directory public profile](https://mcp.directory/servers/excalidraw-mcp-server)
- [Linked publisher repository](https://github.com/Scofieldfree/excalidraw-mcp)
- [npm registry metadata](https://registry.npmjs.org/%40scofieldfree%2Fexcalidraw-mcp)
- [maintainer_or_vendor_documentation](https://github.com/excalidraw/excalidraw-mcp)

## Setup

Use the interactive setup panel on [the detail page](https://www.mcpfolio.com/servers/excalidraw-mcp-server) to view instructions for each supported client.