@saastemly/undraw-mcp
v1.0.0
Published
Offline unDraw MCP server — 698 open-source scene illustrations with keyword search, brand recolor & resize. Zero-config via npx, fully local.
Maintainers
Readme
@saastemly/undraw-mcp
A local, fully-offline MCP server that gives AI agents the 698 open-source unDraw scene illustrations (MIT) with keyword search, on-the-fly brand recolor, and resize — for heroes, empty states, onboarding, 404s, pricing, and section art.
It ships a prebuilt SQLite + FTS5 index of every illustration inside the
package and serves them in-process. No network. No API key. After the one-time
npx download it works completely offline.
Runs on plain Node ≥20 — no Bun, no Python, no build step required.
Quick start (npx)
Add it to any MCP client. The first run downloads the package (which includes all illustrations) and the native SQLite dependency; every run after that is offline.
Claude Desktop / Claude Code (claude_desktop_config.json or .mcp.json):
{
"mcpServers": {
"undraw": {
"command": "npx",
"args": ["-y", "@saastemly/undraw-mcp"]
}
}
}Claude Code CLI:
claude mcp add undraw -- npx -y @saastemly/undraw-mcpCursor / Windsurf / any MCP client — same idea: command npx, args
["-y", "@saastemly/undraw-mcp"].
Prefer a pinned global install? npm i -g @saastemly/undraw-mcp then use the
undraw-mcp command directly.
Requirements: Node ≥ 20. The bundled index is small (~6 MB), so the first
npxfetch is quick.
Tools
| Tool | What it's for |
|---|---|
| search_illustrations | Keyword search over illustrations by slug/title. Returns matching slugs + titles. |
| get_illustration | Return one illustration as an SVG string. Recolor its accent (#6c63ff) to your brand with color; resize with width (height auto-scales). Suggests alternatives on a miss. |
| get_illustrations | Batch-fetch several illustrations (optionally recolored/resized). Returns slug→SVG and a not_found list. |
| list_illustrations | Paginated browse of all illustrations, with an optional substring filter on slug/title. |
Design notes
- Every unDraw illustration has ONE accent color (
#6c63ff). Passcolorto any tool to recolor that accent to your brand — the rest of the scene stays neutral, so illustrations drop into any palette. - Slugs are lowercase with underscores (e.g.
data_report,empty_cart,page_not_found). - SVGs are returned inline as strings, ready to write to a file or embed.
Licensing
This server is MIT-licensed. The unDraw illustrations are also open-source and
free (including for commercial use) under unDraw's license — see
UNDRAW_LICENSE.txt and https://undraw.co/license.
