Model Context Protocol server for AI agents to create and manipulate Excalidraw diagrams. Provides tools for drawing shapes, arrows, text, managing elements, and running an interview-driven diagram agent.
Server has 25 tools with complete schemas and descriptions, but quality is inconsistent. Most tool descriptions are adequate (50-150 chars) and parameters have types. However, many descriptions lack actionable context for LLM selection (e.g., 'Create a rectangle shape' doesn't explain when to use it vs other shapes). Parameter descriptions are generic ('X coordinate of the rectangle' repeated across 10+ tools). No output schemas documented. Error handling guidance absent. Naming is verb-first and clear, but composition issues exist: create_rectangle, create_ellipse, create_diamond, create_line, create_arrow are near-duplicates that could be unified into create_shape with a type parameter. batch_create_elements exists but single-element tools don't accept arrays, forcing sequential calls. No idempotency guarantees stated. Security: no mention of permission checks or audit logging for destructive operations (delete_element, clear_canvas).
Align multiple elements horizontally or vertically
Create multiple elements at once on the canvas
Clear all elements from the canvas
Create an arrow connecting two elements or points on the canvas
Create a diamond shape on the canvas
Create an ellipse/circle shape on the canvas
Create a line on the canvas
Create a rectangle shape on the canvas
Shape creation tools (create_rectangle, create_ellipse, create_diamond, create_line, create_arrow) are near-duplicates with identical parameter sets. Should be unified into a single create_shape(type, ...) tool to reduce cognitive load and prevent LLM confusion about which tool to select.
Destructive operations (delete_element, clear_canvas) lack confirmation/dry-run support and no error recovery guidance. Descriptions do not warn of irreversibility. No audit logging mentioned for compliance.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does get_element return? Does it include element_id for chaining to update_element?). Breaks tool composition.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Create a text element on the canvas
Delete an element from the canvas
Distribute multiple elements evenly in horizontal or vertical direction
Export the current scene to a file (PNG, SVG, or JSON format)
Retrieve details of a specific element by ID
Get the current canvas theme
Get the current canvas viewport settings
Group multiple elements together
Import a scene from a file (JSON format)
List all elements on the canvas, optionally filtered by type or bounding box
Read the Excalidraw diagram design guide with color palette, typography, and layout recommendations
Run a single turn of the diagram agent to generate or modify diagrams based on user input
Generate adaptive interview questions to refine diagram requirements
Set the canvas theme (light or dark)
Set the canvas viewport (pan and zoom)
Ungroup a group of elements
Update properties of an existing element on the canvas
Parameter descriptions are generic and repetitive ('X coordinate of the rectangle' appears in 10+ tools). Lack actionable context: no mention of valid ranges, coordinate system origin, or units. LLMs cannot validate inputs without explicit constraints.
Tool descriptions lack selection context. 'Create a rectangle shape' doesn't explain when to use it vs create_diamond or create_line. No guidance on roughness, opacity, or locked parameters. LLMs must guess intent.