mcp-excalidraw is a local drawing toolkit that lets AI agents create, inspect, edit, and export Excalidraw diagrams through a CLI, MCP server, or REST API. It is for generating architecture diagrams and flowcharts programmatically while keeping the resulting files in a code repository. Its catalogue add-on is an agent skill for operating the Excalidraw canvas.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add yctimlin/mcp_excalidraw --skill excalidraw-skillgit clone --depth 1 https://github.com/yctimlin/mcp_excalidrawWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yctimlin/mcp_excalidraw/excalidraw-skill)<a href="https://agentmods.dev/skills/yctimlin/mcp_excalidraw/excalidraw-skill"><img src="https://agentmods.dev/badge/skills/yctimlin/mcp_excalidraw/excalidraw-skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yctimlin/mcp_excalidraw/excalidraw-skill"><img src="https://agentmods.dev/badge/skills/yctimlin/mcp_excalidraw/excalidraw-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 7 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 3 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 15 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 145 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 148 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 228 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 246 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 247 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00155 | $0.04743 |
| Opus 5 | $0.00077 | $0.02371 |
| Sonnet 5 | $0.00031 | $0.00949 |
| Haiku 4.5 | $0.00015 | $0.00474 |
Grade A, and why
excalidraw-skill scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 277 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Excalidraw Skill
Step 0: Pick an Interface
Three interfaces drive the same live canvas. Pick the first one that applies:
- MCP tools — if
excalidraw/*tools (e.g.batch_create_elements) are in your tool list, prefer them: results land directly in your context, and screenshots come back as images without touching disk. - CLI (default when no MCP tools are present):
No setup needed — any canvas-touching command auto-starts the canvas server onnpx -y mcp-excalidraw-server <command>http://127.0.0.1:3000(firstnpxrun downloads the package). If the CLI is installed globally (npm i -g mcp-excalidraw-server), the shorter aliasexcalidraw-canvas <command>works too. - REST API (last resort, e.g. from application code): HTTP endpoints on
http://127.0.0.1:3000— seereferences/cheatsheet.mdfor payloads. The server must already be running.
The canvas URL comes from EXPRESS_SERVER_URL (default http://127.0.0.1:3000). Remind the user to open that URL in a browser — screenshots, image export, mermaid conversion, and viewport control need an open tab (CLI exits with code 4 when it's missing).
CLI Quick Reference
Results are JSON on stdout — except describe (plain text) and raw-content output when --out is omitted (export scene JSON, screenshot --format svg). Diagnostics on stderr. Exit codes: 0 ok, 1 error, 2 usage, 3 canvas unreachable, 4 browser tab required.
| Task | Command |
|---|---|
| Start / stop / inspect server | start, stop, status |
| Create elements (batch) | add elements.json or echo '[...]' | add or add --one '{...}' |
| Multi-op patch in one call | apply patch.json — {"create":[...],"update":[{"id":"a","set":{...}}],"delete":[...]} |
| Read one / query many | get <id>, query [--type t] [--bbox x0,y0,x1,y1] [--filter k=v] [--filter-json '{...}'] |
| Update / delete | update <id> --set '{...}', delete <id> [...] |
| Understand the scene | describe (plain-text summary: ids, positions, labels, connections) |
| See the scene | screenshot [--out f.png] (PNG without --out → temp file path in JSON; SVG without --out → raw SVG) |
| Layout operations | arrange align|distribute|group|ungroup|lock|unlock|duplicate --ids a,b,c [--to left|horizontal|...] |
| Scene files | export [--out scene.excalidraw], `import [scene.excalidraw |
| Mermaid → canvas | `mermaid [diagram.mmd |
| Snapshots | snapshot save|list|restore <name> |
| Share link | share (encrypted upload → excalidraw.com URL) |
| Wipe canvas | clear --yes |
| Install / upgrade this skill | install-skill --dir <skills-root> (agent chooses project/global root) |
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 277 lines · 155 tokens per session scan A 046e3ae66b21
excalidraw-skill is a skill published in the GitHub repository yctimlin/mcp_excalidraw (2,413 stars, last pushed 3d ago), licensed MIT. It adds 155 tokens to every session and 4,743 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
html-ppt-hermes-cyber-terminal
OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.
html-ppt-taste-brutalist
16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).
visual-ralph
Visual Ralph orchestration for frontend UI from generated references, static references, or live URL targets, using $ultragoal with built-in visual verdict and pixel-diff evidence until the implementation matches and leaves a reproducible design system.
accessibility
Consolidated accessibility skill entrypoint for WCAG 2.2, ARIA Authoring Practices, cognitive accessibility, Section 508, EN 301 549, design intent verification, and the Accessibility Planner workflow.
make-resume
A Chinese-language tool for creating editable HTML resumes that can be changed in a browser and printed to PDF. It uses available resume templates when they are installed and otherwise provides a simpler fallback.