home / mcp / excalidraw mcp server
Provides an API to create, modify, query, group, align, and save Excalidraw drawings via MCP.
Configuration
View docs{
"mcpServers": {
"abdullah007bajwa-mcp_excalidraw": {
"command": "node",
"args": [
"/absolute/path/to/mcp_excalidraw/src/index.js"
],
"env": {
"DEBUG": "false",
"LOG_LEVEL": "info",
"DEFAULT_THEME": "light"
}
}
}
}This MCP server gives large language models a powerful interface to create, modify, query, and manage Excalidraw drawings. It exposes a structured set of operations for working with elements, scenes, and assets, making it easy to build AI-assisted drawing workflows or integrate Excalidraw into conversational assistants.
You connect to the Excalidraw MCP server through your MCP client and invoke operations to create, update, delete, or query drawing elements, as well as manage scene state and export the current drawing. You can group and align elements, lock or unlock edits, and save the scene to disk. The server is designed to work with Claude Desktop, Cursor, or any other MCP-enabled platform, and supports a Docker deployment for convenience.
Choose one of the deployment methods below and follow the steps to get the Excalidraw MCP server up and running.
Prerequisites you should have installed on your system before starting:
- Node.js and npm (for local stdio server) or Docker (for containerized deployment).
# Install dependencies
npm install
# Run development server
npm startBuild and run the Docker image to start the MCP server in a container.
docker build -t mcp/excalidraw .
docker run -i --rm mcp/excalidrawIf you prefer to connect via an explicit MCP command, use the following standard stdio configurations. These show how to run the server directly with Node and how to use the Docker-based approach.
Create a new Excalidraw element with properties such as type, position, size, colors, text, locking, and geometry.
Modify properties of an existing element by its id and update its version.
Remove an element from the scene by its id.
List elements matching type and filter criteria to retrieve specific elements.
Retrieve scene, library, theme, or elements data as requested.
Group multiple elements into a single group and manage its composition.
Split a group back into its individual elements.
Align multiple elements to a specified edge or center.
Evenly space elements horizontally or vertically.
Lock a set of elements to prevent editing.
Unlock a set of elements to allow editing.
Export the current scene (elements + appState) to an .excalidraw file on disk.