Excalidraw MCP Server

Excalidraw canvas access for AI agents to create, view, and save diagrams locally.

Data last scanned today · Reviewed yesterday

532 dangerous tools45 tools2,174TypeScriptMIT

Overview

The Excalidraw MCP Server provides a bridge between AI agents and Excalidraw, allowing agents to generate architecture diagrams and flowcharts programmatically. Agents can interact with a live canvas to refine layouts, fix overlaps, and iterate on visual designs before exporting the results as native .excalidraw files for repository integration. Designed for flexibility, the server offers 26 tools via stdio, a CLI, and a REST API. It handles rendering locally without requiring API keys, and includes the ability to perform screen captures so agents can visually assess their own work during the drawing process.

Our verdict

With a security score of 38/100, this tool carries a high risk level. It lacks any authentication method, meaning anyone with configuration access can execute commands, and it defaults to full write access without a read-only mode. It is best suited for experienced developers working in isolated environments who can manage these risks manually.

  • Supports 26 tools for granular canvas manipulation
  • Enables AI to self-correct layouts via screenshots
  • Operates fully local with no API keys required
  • Lacks authentication, allowing unauthorized command execution
  • Provides full write access to the filesystem by default
  • Maintained by community contributors rather than the official vendor

Setup

Claude Desktop
{
  "mcpServers": {
    "mcp-excalidraw": {
      "args": [
        "-y",
        "mcp-excalidraw-server"
      ],
      "command": "npx"
    }
  }
}

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.

  • No read-only mode — running this grants full read/write access.
  • No built-in authentication — anyone with access to this config can invoke every tool it exposes.

Tools

ToolDescriptionRisk
startStart the canvas server.medium
stopStop the canvas server.medium
statusReport current canvas server state.low
addBatch-create elements from a JSON array.medium
applyExecute a multi-op patch of create, update, or delete operations.medium
getRead elements by ID.low
deleteRemove elements by ID.medium
updateUpdate an element.medium
queryQuery elements using types, bounding boxes, or filters.low
describeProvide an AI-readable scene summary.low
screenshotTake a screenshot of the canvas.low
exportExport the scene file.low
importImport elements from a file.medium
mermaidConvert Mermaid diagrams to canvas elements.medium
snapshotSave, list, or restore named canvas snapshots.medium
arrangePerform layout operations like align, distribute, group, ungroup, lock, unlock, or duplicate.medium
shareUpload a scene to generate a shareable excalidraw.com URL.medium
clearWipe the canvas.high
install-skillInstall the portable agent skill.medium
create_elementCreate an element on the canvas.medium
get_elementRetrieve a specific element by its ID.low
update_elementUpdate an existing element on the canvas.medium
delete_elementDelete an element from the canvas.medium
query_elementsQuery elements on the canvas based on criteria.low
batch_create_elementsCreate multiple elements on the canvas in a single operation.medium
duplicate_elementsDuplicate existing elements on the canvas.medium
align_elementsAlign multiple elements on the canvas.medium
distribute_elementsDistribute elements evenly on the canvas.medium
group_elementsGroup multiple elements together.medium
ungroup_elementsUngroup a group of elements.medium
lock_elementsLock elements to prevent accidental modification.medium
unlock_elementsUnlock locked elements.medium
describe_sceneGet a structured text summary of the current scene.low
get_canvas_screenshotCapture a screenshot of the current canvas.low
export_sceneExport the current scene to a file.low
import_sceneImport a scene from a file.medium
export_to_imageExport the scene to an image format.low
export_to_excalidraw_urlExport the scene to a shareable Excalidraw URL.low
create_from_mermaidCreate elements on the canvas from a Mermaid string.medium
clear_canvasWipe the canvas.high
snapshot_sceneCreate a snapshot of the current scene for persistence.medium
restore_snapshotRestore the scene from a previously created snapshot.medium
set_viewportAdjust the viewport view of the canvas.medium
read_diagram_guideRead the design guide for creating diagrams.low
get_resourceRetrieve a resource from the server.low

Compatibility

ClientLocalDockerRemoteRead-only
ChatGPT
Claude Desktop
Cursor
VS Code
Windsurf

Frequently asked questions

What are the system requirements for running the Excalidraw MCP server?

The server requires Node.js version 18 or higher.

Does this MCP server require any external API keys to function?

No, the core drawing functionality runs fully locally and does not require any API keys.

How does the server handle the canvas process?

The canvas server defaults to http://127.0.0.1:3000 and will automatically start when the CLI or MCP server launches, provided no other instance is listening.

Is it possible to disable the automatic startup of the canvas server?

Yes, you can opt out of the auto-start behavior by setting the environment variable EXCALIDRAW_NO_AUTOSTART=1.

Is the Excalidraw content ever uploaded to external servers?

Sharing is optional; if you choose to use the share feature, the tool uploads an encrypted scene to excalidraw.com.

Alternatives

Badge

Excalidraw MCP Server security score, rated on RepoAI

Maintain this server? Add the live badge to your README.