Updates to Excalidraw MCP server and documentation (#43)
This commit is contained in:
@@ -34,7 +34,7 @@ Keywords: Excalidraw agent skill, Excalidraw MCP server, AI diagramming, Claude
|
||||
- [OpenCode](#opencode)
|
||||
- [Antigravity (Google)](#antigravity-google)
|
||||
- [Agent Skill (Optional)](#agent-skill-optional)
|
||||
- [MCP Tools (23 Total)](#mcp-tools-23-total)
|
||||
- [MCP Tools (26 Total)](#mcp-tools-26-total)
|
||||
- [Testing](#testing)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Known Issues / TODO](#known-issues--todo)
|
||||
@@ -53,7 +53,7 @@ Excalidraw now has an [official MCP](https://github.com/excalidraw/excalidraw-mc
|
||||
|
||||
| | Official Excalidraw MCP | This Project |
|
||||
|---|---|---|
|
||||
| **Approach** | Prompt in, diagram out (one-shot) | Programmatic element-level control (23 tools) |
|
||||
| **Approach** | Prompt in, diagram out (one-shot) | Programmatic element-level control (26 tools) |
|
||||
| **State** | Stateless — each call is independent | Persistent live canvas with real-time sync |
|
||||
| **Element CRUD** | No | Full create / read / update / delete per element |
|
||||
| **AI sees the canvas** | No | `describe_scene` (structured text) + `get_canvas_screenshot` (image) |
|
||||
@@ -62,8 +62,12 @@ Excalidraw now has an [official MCP](https://github.com/excalidraw/excalidraw-mc
|
||||
| **File I/O** | No | `export_scene` / `import_scene` (.excalidraw JSON) |
|
||||
| **Snapshot & rollback** | No | `snapshot_scene` / `restore_snapshot` |
|
||||
| **Mermaid conversion** | No | `create_from_mermaid` |
|
||||
| **Shareable URLs** | Yes | Yes — `export_to_excalidraw_url` |
|
||||
| **Design guide** | `read_me` cheat sheet | `read_diagram_guide` (colors, sizing, layout, anti-patterns) |
|
||||
| **Viewport control** | Camera animations | `set_viewport` (zoom-to-fit, center on element, manual zoom) |
|
||||
| **Live canvas UI** | Rendered inline in chat | Standalone Excalidraw app synced via WebSocket |
|
||||
| **Multi-agent** | Single user | Multiple agents can draw on the same canvas concurrently |
|
||||
| **Works without MCP** | No | Yes — REST API fallback via agent skill |
|
||||
|
||||
**TL;DR** — The official MCP generates diagrams. We give AI agents a full canvas toolkit to build, inspect, and iteratively refine diagrams — including the ability to see what they drew.
|
||||
|
||||
@@ -71,10 +75,14 @@ Excalidraw now has an [official MCP](https://github.com/excalidraw/excalidraw-mc
|
||||
|
||||
### v2.0 — Canvas Toolkit
|
||||
|
||||
- 10 new MCP tools: `get_element`, `clear_canvas`, `export_scene`, `import_scene`, `export_to_image`, `duplicate_elements`, `snapshot_scene`, `restore_snapshot`, `describe_scene`, `get_canvas_screenshot` (23 tools total)
|
||||
- 13 new MCP tools (26 total): `get_element`, `clear_canvas`, `export_scene`, `import_scene`, `export_to_image`, `duplicate_elements`, `snapshot_scene`, `restore_snapshot`, `describe_scene`, `get_canvas_screenshot`, `read_diagram_guide`, `export_to_excalidraw_url`, `set_viewport`
|
||||
- **Closed feedback loop**: AI can now inspect the canvas (`describe_scene`) and see it (`get_canvas_screenshot` returns an image) — enabling iterative refinement
|
||||
- **Design guide**: `read_diagram_guide` returns best-practice color palettes, sizing rules, layout patterns, and anti-patterns — dramatically improves AI-generated diagram quality
|
||||
- **Shareable URLs**: `export_to_excalidraw_url` encrypts and uploads the scene to excalidraw.com, returns a shareable link anyone can open
|
||||
- **Viewport control**: `set_viewport` with `scrollToContent`, `scrollToElementId`, or manual zoom/offset — agents can auto-fit diagrams after creation
|
||||
- **File I/O**: export/import full `.excalidraw` JSON files
|
||||
- **Snapshots**: save and restore named canvas states
|
||||
- **Skill fallback**: Agent skill auto-detects MCP vs REST API mode, gracefully falls back to HTTP endpoints when MCP server isn't configured
|
||||
- Fixed all previously known issues: `align_elements` / `distribute_elements` fully implemented, points type normalization, removed invalid `label` type, removed HTTP transport dead code, `ungroup_elements` now errors on failure
|
||||
|
||||
### v1.x
|
||||
@@ -413,15 +421,17 @@ EXPRESS_SERVER_URL=http://127.0.0.1:3000 node skills/excalidraw-skill/scripts/im
|
||||
|
||||
See `skills/excalidraw-skill/SKILL.md` and `skills/excalidraw-skill/references/cheatsheet.md`.
|
||||
|
||||
## MCP Tools (23 Total)
|
||||
## MCP Tools (26 Total)
|
||||
|
||||
| Category | Tools |
|
||||
|---|---|
|
||||
| **Element CRUD** | `create_element`, `get_element`, `update_element`, `delete_element`, `query_elements`, `batch_create_elements`, `duplicate_elements` |
|
||||
| **Layout** | `align_elements`, `distribute_elements`, `group_elements`, `ungroup_elements`, `lock_elements`, `unlock_elements` |
|
||||
| **Scene Awareness** | `describe_scene`, `get_canvas_screenshot` |
|
||||
| **File I/O** | `export_scene`, `import_scene`, `export_to_image`, `create_from_mermaid` |
|
||||
| **File I/O** | `export_scene`, `import_scene`, `export_to_image`, `export_to_excalidraw_url`, `create_from_mermaid` |
|
||||
| **State Management** | `clear_canvas`, `snapshot_scene`, `restore_snapshot` |
|
||||
| **Viewport** | `set_viewport` |
|
||||
| **Design Guide** | `read_diagram_guide` |
|
||||
| **Resources** | `get_resource` |
|
||||
|
||||
Full schemas are discoverable via `tools/list` or in `skills/excalidraw-skill/references/cheatsheet.md`.
|
||||
|
||||
Reference in New Issue
Block a user