Excalidraw MCP Server
# Excalidraw MCP Server
This is a Model Context Protocol (MCP) server for Excalidraw, providing API functionality for operating on Excalidraw drawings.
## Features
- Create, read, update, and delete Excalidraw drawings
- Export drawings to SVG, PNG, and JSON formats
- Simple file-based storage system
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/excalidraw-mcp.git
cd excalidraw-mcp
# Install dependencies
npm install
# Build the project
npm run build
```
## Usage
### Starting the Server
```bash
npm start
```
### API Endpoints
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
## Development
### Project Structure
```
excalidraw-mcp/
├── src/
│ ├── common/
│ │ └── errors.ts
│ └── operations/
│ ├── drawings.ts
│ └── export.ts
├── index.ts
├── package.json
├── tsconfig.json
└── README.md
```
### Building
```bash
npm run build
```
### Running in Development Mode
```bash
npm run dev
```
## License
MIT TDQS
Scored across 8 tools
Every tool has a clearly distinct purpose targeting specific actions on drawings: creation, deletion, retrieval, listing, updating, and three distinct export formats. There is no overlap or ambiguity between tools, making it easy for an agent to select the correct one.
All tools follow a consistent verb_noun pattern (e.g., create_drawing, delete_drawing) with no deviations. The naming is predictable and readable throughout the set, enhancing usability and coherence.
With 8 tools, the server is well-scoped for managing Excalidraw drawings, covering core CRUD operations and multiple export options. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool set provides complete CRUD/lifecycle coverage for drawings (create, get, list, update, delete) and includes essential export functionalities (JSON, PNG, SVG). There are no obvious gaps, ensuring agents can handle all typical workflows without dead ends.