@iflow-mcp/0xartex-excalidraw
v2.0.0
Published
Hosted MCP server for Excalidraw - create diagrams with AI and get shareable links
Readme
Excalidraw MCP Server & Agent Skill
Let your AI agent run a live Excalidraw canvas and draw diagrams. This repo provides:
- MCP Server: Connect via Model Context Protocol (Claude Desktop, Cursor, Claude Code, etc.)
- Agent Skill: Portable skill for OpenClaw agents and other skill-enabled agents
Built on top of mcp_excalidraw by @yctimlin. Added shareable links, image export, agent skill, and a hosted API.
Demo
Hosted Instance
A public instance is running at https://excalidraw-mcp.up.railway.app — no setup needed.
{
"mcpServers": {
"excalidraw": {
"url": "https://excalidraw-mcp.up.railway.app/mcp"
}
}
}Self-Hosting
Local
git clone https://github.com/0xArtex/excalidraw-mcp.git
cd excalidraw-mcp
npm install
npm run build
npm run canvasServer starts at http://localhost:3000.
Docker
docker build -f Dockerfile.canvas -t excalidraw-mcp .
docker run -p 3000:3000 -e PUBLIC_URL=https://your-domain.com excalidraw-mcpEnvironment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| PORT | 3000 | Server port |
| PUBLIC_URL | auto-detected | Public URL for edit links |
| CANVAS_BASE_URL | http://localhost:3000 | Internal URL for renderer (auto-resolved) |
| RATE_LIMIT_RPM | 10 | Rate limit per IP per minute |
| MAX_ELEMENTS | 2000 | Max elements per render request |
| RENDER_TIMEOUT_MS | 300000 | Render timeout (5 min) |
Configure MCP Clients
The MCP server can be connected via Streamable HTTP (hosted) or stdio (local).
Claude Desktop
Hosted:
{
"mcpServers": {
"excalidraw": {
"url": "https://excalidraw-mcp.up.railway.app/mcp"
}
}
}Local (node):
{
"mcpServers": {
"excalidraw": {
"command": "node",
"args": ["/path/to/excalidraw-mcp/dist/index.js"],
"env": {
"EXPRESS_SERVER_URL": "http://localhost:3000"
}
}
}
}Claude Code
claude mcp add excalidraw --scope user \
-e EXPRESS_SERVER_URL=http://localhost:3000 \
-- node /path/to/excalidraw-mcp/dist/index.jsCursor
Config location: .cursor/mcp.json
{
"mcpServers": {
"excalidraw": {
"url": "https://excalidraw-mcp.up.railway.app/mcp"
}
}
}Agent Skill
For OpenClaw and other skill-enabled agents, install the skill to render diagrams with a single API call — no MCP client needed.
The skill is available at skills/excalidraw-canvas/ or can be installed from ClawhHub.
See SKILL.md for usage — it's a single curl call.
MCP Tools
| Tool | Description |
|------|-------------|
| start_diagram | Start a new diagram session, returns live canvas URL |
| create_element | Create a shape (rectangle, ellipse, diamond, arrow, text, line) |
| batch_create_elements | Create multiple elements at once |
| delete_element | Remove an element |
| finish_diagram | Finalize and get shareable link with image |
Development
npm run dev # Watch + hot reload
npm run build # Build everything
npm run type-check # TypeScript checkLicense
MIT
Acknowledgments
- @yctimlin - Original mcp_excalidraw project
- Excalidraw - The drawing library
- Model Context Protocol - The MCP specification
