Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log level: debug, info, warn, error | info |
| CANVAS_HOST | No | Canvas server bind address | 127.0.0.1 |
| CANVAS_PORT | No | Canvas server port | 3000 |
| MAX_ELEMENTS | No | Maximum elements on canvas | 10000 |
| MAX_BATCH_SIZE | No | Maximum elements per batch create | 100 |
| PERSISTENCE_DIR | No | Directory for persistent storage | ./data |
| STANDALONE_MODE | No | Use in-process store (no canvas server needed) | true |
| AUDIT_LOG_ENABLED | No | Enable audit logging | true |
| CANVAS_SERVER_URL | No | URL the MCP server uses to reach the canvas. Required for connected mode. | http://127.0.0.1:3000 |
| EXCALIDRAW_API_KEY | No | API key for auth (min 32 chars). Required for connected mode. | |
| PERSISTENCE_ENABLED | No | Enable file-based persistence | false |
| CORS_ALLOWED_ORIGINS | No | Comma-separated origin allowlist | http://localhost:3000,http://127.0.0.1:3000 |
| RATE_LIMIT_WINDOW_MS | No | Rate limit window in milliseconds | 60000 |
| RATE_LIMIT_MAX_REQUESTS | No | Max requests per window (standard tier) | 100 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_view | Render Excalidraw elements as an interactive inline diagram. Pass an array of elements with type, x, y coordinates and optional styling. The diagram streams in progressively as elements are generated. Use read_me first to see available element types and color palettes. |
| read_me | Get the Excalidraw element reference: types, colors, sizing, and tips. Call this before creating diagrams. |
| create_element | Create a single Excalidraw element on the canvas |
| update_element | Update an existing Excalidraw element by ID |
| delete_element | Delete an Excalidraw element by ID |
| query_elements | Search for elements by type, locked status, or group ID |
| get_resource | Get scene state, elements, theme, or library |
| batch_create_elements | Create multiple elements at once (max 100) |
| group_elements | Group multiple elements together |
| ungroup_elements | Remove elements from a group by group ID |
| align_elements | Align elements (left, center, right, top, middle, bottom) |
| distribute_elements | Distribute elements evenly (horizontal or vertical) |
| lock_elements | Lock elements to prevent modification |
| unlock_elements | Unlock elements to allow modification |
| create_from_mermaid | Convert a Mermaid diagram to Excalidraw elements |
| export_scene | Export the canvas as PNG or SVG |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Excalidraw Canvas | Interactive Excalidraw canvas widget for inline diagram rendering |