@saastemly/undraw-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -0
- package/UNDRAW_LICENSE.txt +21 -0
- package/data/illustrations.db +0 -0
- package/dist/server.js +19727 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# @saastemly/undraw-mcp
|
|
2
|
+
|
|
3
|
+
A **local, fully-offline MCP server** that gives AI agents the **698 open-source
|
|
4
|
+
[unDraw](https://undraw.co) scene illustrations** (MIT) with keyword search,
|
|
5
|
+
on-the-fly **brand recolor**, and resize — for heroes, empty states, onboarding,
|
|
6
|
+
404s, pricing, and section art.
|
|
7
|
+
|
|
8
|
+
It ships a prebuilt **SQLite + FTS5** index of every illustration inside the
|
|
9
|
+
package and serves them in-process. **No network. No API key.** After the one-time
|
|
10
|
+
`npx` download it works completely offline.
|
|
11
|
+
|
|
12
|
+
Runs on plain **Node ≥20** — no Bun, no Python, no build step required.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Quick start (npx)
|
|
17
|
+
|
|
18
|
+
Add it to any MCP client. The first run downloads the package (which includes all
|
|
19
|
+
illustrations) and the native SQLite dependency; every run after that is offline.
|
|
20
|
+
|
|
21
|
+
**Claude Desktop / Claude Code** (`claude_desktop_config.json` or `.mcp.json`):
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"mcpServers": {
|
|
26
|
+
"undraw": {
|
|
27
|
+
"command": "npx",
|
|
28
|
+
"args": ["-y", "@saastemly/undraw-mcp"]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Claude Code CLI:**
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
claude mcp add undraw -- npx -y @saastemly/undraw-mcp
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Cursor / Windsurf / any MCP client** — same idea: command `npx`, args
|
|
41
|
+
`["-y", "@saastemly/undraw-mcp"]`.
|
|
42
|
+
|
|
43
|
+
Prefer a pinned global install? `npm i -g @saastemly/undraw-mcp` then use the
|
|
44
|
+
`undraw-mcp` command directly.
|
|
45
|
+
|
|
46
|
+
> **Requirements:** Node ≥ 20. The bundled index is small (~6 MB), so the first
|
|
47
|
+
> `npx` fetch is quick.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Tools
|
|
52
|
+
|
|
53
|
+
| Tool | What it's for |
|
|
54
|
+
|---|---|
|
|
55
|
+
| **`search_illustrations`** | Keyword search over illustrations by slug/title. Returns matching slugs + titles. |
|
|
56
|
+
| **`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. |
|
|
57
|
+
| **`get_illustrations`** | Batch-fetch several illustrations (optionally recolored/resized). Returns slug→SVG and a not_found list. |
|
|
58
|
+
| **`list_illustrations`** | Paginated browse of all illustrations, with an optional substring filter on slug/title. |
|
|
59
|
+
|
|
60
|
+
### Design notes
|
|
61
|
+
|
|
62
|
+
- **Every unDraw illustration has ONE accent color** (`#6c63ff`). Pass `color` to
|
|
63
|
+
any tool to recolor that accent to your brand — the rest of the scene stays
|
|
64
|
+
neutral, so illustrations drop into any palette.
|
|
65
|
+
- **Slugs are lowercase with underscores** (e.g. `data_report`, `empty_cart`,
|
|
66
|
+
`page_not_found`).
|
|
67
|
+
- SVGs are returned inline as strings, ready to write to a file or embed.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Licensing
|
|
72
|
+
|
|
73
|
+
This server is MIT-licensed. The **unDraw illustrations are also open-source and
|
|
74
|
+
free** (including for commercial use) under unDraw's license — see
|
|
75
|
+
[`UNDRAW_LICENSE.txt`](./UNDRAW_LICENSE.txt) and <https://undraw.co/license>.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Mohd Khairi Mohd Adnan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
|
Binary file
|