home / mcp / excalidraw mcp server

Excalidraw MCP Server

Provides an API to create, modify, query, group, align, and save Excalidraw drawings via MCP.

Installation
Add the following to your MCP client configuration file.

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.

How to use

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.

How to install

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 and run locally with Node.js

# Install dependencies
npm install

# Run development server
npm start

Run with Docker

Build and run the Docker image to start the MCP server in a container.

docker build -t mcp/excalidraw .

docker run -i --rm mcp/excalidraw

MCP configurations for clients

If 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.

Available tools

create_element

Create a new Excalidraw element with properties such as type, position, size, colors, text, locking, and geometry.

update_element

Modify properties of an existing element by its id and update its version.

delete_element

Remove an element from the scene by its id.

query_elements

List elements matching type and filter criteria to retrieve specific elements.

get_resource

Retrieve scene, library, theme, or elements data as requested.

group_elements

Group multiple elements into a single group and manage its composition.

ungroup_elements

Split a group back into its individual elements.

align_elements

Align multiple elements to a specified edge or center.

distribute_elements

Evenly space elements horizontally or vertically.

lock_elements

Lock a set of elements to prevent editing.

unlock_elements

Unlock a set of elements to allow editing.

save_scene

Export the current scene (elements + appState) to an .excalidraw file on disk.

Excalidraw MCP Server - abdullah007bajwa/mcp_excalidraw