Skip to main content
mcpSource-backedReview first Safety Privacy

Excalidraw Canvas MCP Server

MCP server and live Excalidraw canvas toolkit that lets Claude create, inspect, update, export, snapshot, and iteratively refine diagrams.

by yctimlin·added 2026-06-05·
Claude CodeClaude Desktop
HarnessClaude CodeClaude Desktop
Review first review before installing

Open the source and read safety notes before installing.

Safety notes

  • The canvas server has no built-in authentication; keep it bound to localhost unless network access controls are in place.
  • MCP tools can create, update, duplicate, group, delete, clear, import, export, snapshot, and restore diagram content.
  • File import and export should stay inside an approved export directory; review `EXCALIDRAW_EXPORT_DIR` before enabling file workflows.
  • The URL export tool can upload a scene to Excalidraw hosted sharing, so review the scene before sharing.
  • In-memory canvas state can be lost on restart unless diagrams are exported or snapshots are preserved.

Privacy notes

  • Diagrams may reveal infrastructure topology, unreleased product plans, customer names, credentials accidentally included as labels, or incident context.
  • Screenshots, exported images, Excalidraw JSON files, snapshots, and share URLs may be visible to the MCP client, browser, logs, and model provider.
  • Avoid exposing the local REST/WebSocket canvas API to shared networks without authentication or a trusted network boundary.
  • Treat imported diagrams from untrusted sources as prompt-injection and data-exposure risks before asking a model to summarize them.

Prerequisites

  • Node.js 18 or newer and npm for local setup, or Docker for the container path.
  • A running canvas server, started locally with `PORT=3000 npm run canvas` or through the canvas container image.
  • The MCP server configured with `EXPRESS_SERVER_URL` pointing to the canvas server.
  • Browser access to the canvas UI when using screenshot, viewport, or image export workflows.

Schema details

Install type
cli
Troubleshooting
No
Source repository stats
Scope
Source repo
Collection metadata
Estimated setup
15 minutes
Difficulty
intermediate
Full copyable content
{
  "mcpServers": {
    "excalidraw": {
      "command": "node",
      "args": ["PATH_TO_MCP_EXCALIDRAW/dist/index.js"],
      "env": {
        "EXPRESS_SERVER_URL": "LOCAL_CANVAS_URL",
        "ENABLE_CANVAS_SYNC": "true"
      }
    }
  }
}

About this resource

Content

Excalidraw Canvas MCP Server gives Claude-compatible MCP clients programmatic control over a live Excalidraw canvas. The repository separates the canvas server from the stdio MCP server: the canvas provides the web UI, REST API, and WebSocket sync, while the MCP server exposes tools that create, inspect, update, export, snapshot, and refine scene elements.

The upstream README positions this project as different from the official Excalidraw MCP: instead of a one-shot prompt-to-diagram generator, it provides element-level CRUD, scene awareness, screenshots, file import/export, snapshots, Mermaid conversion, and real-time canvas sync for iterative diagram work.

Source Review

These sources were reviewed on 2026-06-05. Prefer the live repository, README, package metadata, server source, skill file, Docker files, and npm registry metadata for current setup commands, transport behavior, and tool list.

Features

  • Create, read, update, delete, query, batch create, and duplicate Excalidraw elements.
  • Align, distribute, group, ungroup, lock, and unlock elements.
  • Describe the current scene as structured text.
  • Capture a canvas screenshot when the browser-backed canvas is available.
  • Import and export .excalidraw JSON scenes.
  • Export images and shareable Excalidraw URLs.
  • Convert Mermaid diagrams into Excalidraw scenes.
  • Save and restore named snapshots.
  • Set viewport behavior, including zoom-to-content workflows.
  • Use an optional agent skill fallback for REST API mode.

Installation

For local setup, clone the repository, install dependencies, and build:

npm ci
npm run build

Start the canvas server in one terminal:

PORT=3000 npm run canvas

Then configure the MCP client to launch the stdio server:

{
  "mcpServers": {
    "excalidraw": {
      "command": "node",
      "args": ["PATH_TO_MCP_EXCALIDRAW/dist/index.js"],
      "env": {
        "EXPRESS_SERVER_URL": "LOCAL_CANVAS_URL",
        "ENABLE_CANVAS_SYNC": "true"
      }
    }
  }
}

For Docker users, the upstream README documents separate images for the canvas and MCP server. Start the canvas first, then point the MCP server at the canvas URL.

Use Cases

  • Ask Claude to create an architecture diagram on a live Excalidraw canvas.
  • Iterate on a diagram by describing the scene, taking a screenshot, and fixing layout issues.
  • Convert an existing Mermaid diagram into Excalidraw and then refine it element by element.
  • Export .excalidraw JSON or image artifacts after human review.
  • Snapshot a canvas before trying alternative layouts.
  • Share a reviewed scene through an Excalidraw URL when hosted sharing is acceptable.

Safety and Privacy

Keep the canvas server local by default. The README notes that binding beyond localhost requires network-level access controls because the canvas API has no built-in authentication. Treat the REST and WebSocket canvas surfaces as trusted local tools, not public endpoints.

Diagram content can include sensitive architecture, roadmap, customer, or incident details. Review any scene before exporting images, uploading a share URL, or including screenshots in prompts. Use EXCALIDRAW_EXPORT_DIR to keep file import/export operations inside an approved directory and avoid importing untrusted diagrams without review.

Duplicate Check

No yctimlin/mcp_excalidraw, mcp-excalidraw-server, or matching Excalidraw canvas source URL was found in content/mcp. The README also distinguishes this project from the official Excalidraw MCP by emphasizing a persistent live canvas and element-level editing workflow.

#excalidraw#diagrams#canvas#visualization#mermaid

Source citations

Signals

Loading live community signals…

More like this, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.