Skip to main content
Glama
README.md
# Excalidraw MCP Server

A Model Context Protocol (MCP) server for Excalidraw.

## Features

- Create, read, update, and delete Excalidraw drawings
- Export drawings to SVG, PNG, and JSON formats
- Simple file-based storage system
- Only supports `stdio`

## Usage

The command to use in MCP configs is:

```sh
docker run --rm --interactive --volume "$(pwd)/.excalidraw:/app/storage" andreswebs/excalidraw-mcp
```

Note the `--volume` flag: the `/app/storage` directory from the container must be mounted locally to access the drawings.

Example config for GitHub Copilot / VSCode:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "excalidraw": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--volume",
        "${workspaceFolder}/.excalidraw:/app/storage",
        "andreswebs/excalidraw-mcp"
      ]
    }
  }
}
```

## Tools

The server provides the following tools:

### Drawing Management

- `create_drawing`: Create a new Excalidraw drawing
- `get_drawing`: Get an Excalidraw drawing by ID
- `update_drawing`: Update an Excalidraw drawing by ID
- `delete_drawing`: Delete an Excalidraw drawing by ID
- `list_drawings`: List all Excalidraw drawings

### Export Operations

- `export_to_svg`: Export an Excalidraw drawing to SVG
- `export_to_png`: Export an Excalidraw drawing to PNG
- `export_to_json`: Export an Excalidraw drawing to JSON

## Acknowledgements

This project was originally forked from [i-tozer/excalidraw-mcp](https://github.com/i-tozer/excalidraw-mcp).

It also drew inspiration from [yctimlin/mcp_excalidraw](https://github.com/yctimlin/mcp_excalidraw).

## Authors

**Andre Silva** - [@andreswebs](https://github.com/andreswebs)

## License

This project is licensed under the [Unlicense](UNLICENSE).

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific action (create, delete, export, get, list, update) on a specific resource (drawing), making it easy for an agent to select the correct tool without confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., create_drawing, delete_drawing, export_to_json). The naming is uniform across all eight tools, with no deviations in style or convention.

Tool Count5/5

With 8 tools, this server is well-scoped for managing Excalidraw drawings. Each tool serves a distinct and necessary function, covering core operations without being overly sparse or bloated.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the domain: create, get, list, update, and delete drawings, plus multiple export options. There are no obvious gaps, and agents can perform all essential workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues