Skip to main content
Glama
sandraschi

sketchboard-excalidraw-mcp

by sandraschi

# sketchboard-excalidraw-mcp

Excalidraw canvas authorship + headless-render MCP server. Slots next to inkscape-mcp and gimp-mcp as the vector/raster/diagram trio in the fleet.

Status: day 1 scaffold. Server shell, package layout, and fleet standardization are in place. Canvas bridging, headless rendering, Mermaid conversion, and batch rendering are registered as MCP tools but return not_implemented - see docs/DESIGN.md for what's real vs planned.

What this is

A merge of two upstream approaches into one fleet-standard server:

  • Canvas workbench (base: forked from lesleslie/excalidraw-mcp, itself built on yctimlin/mcp_excalidraw): Python FastMCP server + TypeScript canvas server + React frontend for live, interactive diagram authorship.

  • Headless rendering (approach borrowed from bassimeledath/excalidraw-render-mcp, reimplemented in Python/Playwright rather than vendoring a second Node stack): a warm Chromium instance rendering Excalidraw element JSON to SVG/PNG via exportToSvg/exportToBlob, with the excalidraw JS bundle vendored locally instead of loaded from a CDN.

The two modes are deliberately decoupled: headless render tools work without the canvas server running (agent batch mode), while the canvas/Tauri app is for interactive human use. Both talk to the same backend; the desktop app is not a sidecar wrapping the Python server.

Related MCP server: excalidraw-architect-mcp

Fork sources on this machine

Both upstream forks were cloned for reference/cherry-picking, not vendored wholesale:

  • D:\Dev\repos\external\excalidraw-mcp-lesleslie\

  • D:\Dev\repos\external\excalidraw-render-bassimeledath\

Planned extras

  • Mermaid-to-Excalidraw conversion, wrapping the official @excalidraw/mermaid-to-excalidraw npm package rather than reimplementing Mermaid parsing.

  • .excalidrawlib support for reusable fleet-diagram components (server boxes, transport arrows).

  • Batch-render command for the repo-README diagram pipeline across the fleet (~200 repos).

Ports

Port

Service

11107

Backend (FastMCP HTTP /mcp + REST)

11108

Frontend (Vite React canvas)

Registered in mcp-central-docs/operations/WEBAPP_PORTS.md.

License and attribution

MIT, same as both upstream sources. Credit chain: this project builds on lesleslie/excalidraw-mcp (which credits yctimlin/mcp_excalidraw) and borrows the headless-render architecture from bassimeledath/excalidraw-render-mcp. Font licensing (Excalidraw's default hand-drawn fonts ship under SIL OFL, not MIT) is tracked separately in NOTICE.md once the JS bundle is vendored.

Development

uv sync
uv run pytest
just release-dry

See docs/DESIGN.md for the day 1/2/3 build plan and the concrete technical decisions behind this scaffold.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • A MCP server built for developers enabling Git based project management with project and personal…

  • MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sandraschi/sketchboard-excalidraw-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server