aura-components-mcp 1.6.3 → 1.7.1
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/LICENSE +21 -21
- package/README.md +152 -44
- package/SETUP.md +8 -8
- package/dist/server.js +1958 -1374
- package/package.json +3 -4
- package/flow/app.js +0 -178
- package/flow/compare.html +0 -67
- package/flow/docs.html +0 -78
- package/flow/how.html +0 -68
- package/flow/index.html +0 -94
- package/flow/setup.html +0 -82
- package/flow/styles.css +0 -378
- package/flow/tools.html +0 -84
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 swastiksingh-dev
|
|
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 all
|
|
13
|
-
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 THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 swastiksingh-dev
|
|
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 all
|
|
13
|
+
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 THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,20 +1,59 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">Aura Components MCP</h1>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center"><sub>FREE MCP SERVER · STDIO · ZERO DEPS · MIT</sub></p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="
|
|
6
|
+
<a href="https://www.npmjs.com/package/aura-components-mcp"><img src="https://img.shields.io/npm/v/aura-components-mcp" alt="npm version"></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/aura-components-mcp"><img src="https://img.shields.io/npm/dm/aura-components-mcp" alt="npm downloads"></a>
|
|
8
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="license: MIT"></a>
|
|
9
|
+
<a href="./package.json"><img src="https://img.shields.io/badge/node-%3E%3D22-brightgreen" alt="node >= 22"></a>
|
|
10
|
+
<a href="./dist/server.js"><img src="https://img.shields.io/badge/MCP-stdio-blue" alt="MCP stdio"></a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p align="center"><i>Every free thing on Aura, one call away — no account, no key, no browser.</i></p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://raw.githubusercontent.com/swastiksingh-dev/Aura-Components-MCP/main/assets/heart-demo.mp4"><b>▲ WATCH THE 10-SECOND TOUR (MP4) ▲</b></a>
|
|
7
17
|
</p>
|
|
8
18
|
|
|
9
19
|
> I got tired of opening twenty Aura tabs every time I started a landing page. So I built the MCP server I wanted: every free thing on aura.build, one stdio call away, no account, no key, no browser.
|
|
10
20
|
|
|
21
|
+
<p align="center">
|
|
22
|
+
<b>2,495</b> free components · <b>192</b> skills · <b>30,688</b> assets · <b>725</b> design systems<br>
|
|
23
|
+
<b>29</b> tools · <b>0</b> dependencies · <b>112</b> hermetic tests + <b>38</b> live checks green · version-checked hourly against npm
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
- [Why not the official MCP](#why-i-built-this-instead-of-using-the-official-mcp)
|
|
30
|
+
- [What is inside](#what-is-inside)
|
|
31
|
+
- [Install](#install)
|
|
32
|
+
- [Demo](#demo)
|
|
33
|
+
- [The 29 tools](#the-29-tools)
|
|
34
|
+
- [Fallback rules](#fallback-rules-read-this-once)
|
|
35
|
+
- [Prompt for AI agents](#-prompt-for-ai-agents--start-here)
|
|
36
|
+
- [Free only, no login](#free-only-no-login)
|
|
37
|
+
- [Develop](#develop)
|
|
38
|
+
- [Credits](#credits)
|
|
39
|
+
|
|
40
|
+
> **v1.7.1** — bug-fix release, no new tools. Central free-only enforcement: Pro components/assets by direct ID are now refused (`-32602`, fail-closed on ambiguous entitlement) instead of returned in full — search, install, bundle, scaffold, and related all inherit it. Search cache isolates explicit `theme` (dark/light no longer share entries). Bundles honor all 8 refs end-to-end with `dropped_refs` disclosure. New `min_views_filtered_out` count (`total` stays upstream). Full icon outages surface as upstream errors, not misses. Upstream hardening: malformed rows disclosed via `malformed_dropped` (single fetch fails loud), non-429 4xx never retried. Node floor raised to maintained releases (engines `>=22`, CI matrix 22.x/24.x). Dead code removed, scaffold merge extracted, verify extended.
|
|
41
|
+
|
|
42
|
+
> **v1.7.0** — 29 tools: 5 pure `aura_inspo_*` mappers (recommend/components/reference/system/compare) bridge Inspo evidence to Aura calls with zero extra deps — strict macro gate (`need_macro`), palette priority brand > Inspo > Aura, enforced tokens-first, mandated image srcset plan, fast preview-URL look gate — plus 2 pure `aura_docs_*` helpers (plan/check) wiring Context7 fresh docs for tailwind/gsap/lenis/iconify, with `docs_stamp` on every install/scaffold and a look-preserving conflict rule (fresh API wins, look stays identical) — plus live `aura_icon` (Font Awesome Free + HackerNoon pixel SVGs, auto-fallback, CC BY 4.0 credit always) — plus `aura_version` (hourly npm check, prefer-latest notice, verdict inside every `aura_status`). `aura_prompt` now asks 6 questions (+macrostructure, +vibe) and leads Pass 2 with `inspo.recommend`. `aura_scaffold_page` refuses explicit Pro ids (`pro_filtered_out`). Build hardened for CRLF checkouts.
|
|
43
|
+
|
|
44
|
+
<details>
|
|
45
|
+
<summary><b>v1.6.3 changelog (20 tools)</b> — click to expand</summary>
|
|
46
|
+
|
|
11
47
|
> **v1.6.3** — 20 tools. New `aura_prompt`: need-based prompt in 2 passes (draft + 4 questions, ask user, then copy-paste final). Honest search: zero-overlap fallbacks return `total:0` + `no_match` + `refused_fallback` + suggestions instead of masked popular rows; `exact_match:true` skips fallbacks; recommend auto-retries once then fills from editorial picks; theme reorder-not-drop; design-systems index content/preview_html; kind-aware skill recall; slim lists by default (`slim:false` opts out); `full:true` one-shot bodies; scaffold takes `["732","1364"]` / `[{id}]`; `status.freshness` per surface; per-surface `sort:'trending'` (no dead trending tool). Search facets equal detail facets, skills deduped, token starter + preview-mode warnings, legal asset plans, scoped CSS + chunk `concat` plans, bulk-fetch, one-turn scaffold builds.
|
|
12
48
|
|
|
13
|
-
|
|
49
|
+
</details>
|
|
50
|
+
|
|
51
|
+
Point any MCP client at `dist/server.js` and your agent can search 2,495 free components, read 192 agent skills in full, pull 30,688 assets, and apply 725 DESIGN.md systems. It answers in seconds because there is nothing to log into and almost nothing to download: one bundled JS file, zero dependencies.
|
|
14
52
|
|
|
15
53
|
Built by [swastiksingh-dev](https://github.com/swastiksingh-dev). Catalogue content belongs to Aura (aura.build, by Meng To / DesignCode). This project is not affiliated with Aura.
|
|
16
54
|
|
|
17
|
-
|
|
55
|
+
---
|
|
56
|
+
|
|
18
57
|
|
|
19
58
|
Aura already ships an official MCP at `https://mcp.aura.build/mcp`. It is good at what it does: your Canvases, your projects, publishing, all behind OAuth. This server does the other half. It covers the public catalogue, and it skips the parts that slow an agent down: no OAuth dance, no account, no per-project scopes. A few things the official one does not do:
|
|
20
59
|
|
|
@@ -24,22 +63,24 @@ Aura already ships an official MCP at `https://mcp.aura.build/mcp`. It is good a
|
|
|
24
63
|
- `aura_recommend` builds a starter kit across all four surfaces in one parallel call.
|
|
25
64
|
- Everything defaults to free. Pro rows never sneak into results.
|
|
26
65
|
|
|
27
|
-
|
|
66
|
+
---
|
|
67
|
+
|
|
28
68
|
|
|
29
69
|
- 2,495 free components with HTML/Tailwind source, preview images, tags, and author credit
|
|
30
|
-
-
|
|
70
|
+
- 192 agent skills with full SKILL.md bodies (GSAP, Tailwind v4, Anime.js, copywriting, and more)
|
|
31
71
|
- 30,688 images and clips with direct CDN URLs at multiple widths
|
|
32
72
|
- 725 DESIGN.md systems with tokens, type rules, layout notes, and preview HTML
|
|
33
|
-
-
|
|
73
|
+
- 29 tools over stdio, one bundle, 60-second LRU cache (300 keys) with request coalescing, author memo, category-count cache, retries with jittered backoff
|
|
34
74
|
- Honest search: AND-phrase misses retry as OR-tokens (2 passes) plus a labeled safety net — but zero title-overlap fallbacks are refused as `total:0` + `no_match` + `suggested_queries` instead of masking with popular rows; `exact_match:true` skips fallbacks entirely
|
|
35
75
|
- Agent accelerators: `aura_prompt` (2-pass prompt with user confirmation), `aura_bulk_fetch`/`aura_bundle` (8 details/turn, any of 3 kinds), `aura_scaffold_page` (tokens + system + markup in dependency order), `aura_related`, `aura_install_asset` (license-aware)
|
|
36
76
|
- Faceted lists: every component carries `facets { theme, weight, code_chars, needsTailwind, needsIcons, fonts }`; filter `theme: dark|light` server-side
|
|
37
77
|
|
|
38
78
|
Start with `aura_status`, then `aura_search_all`. That order matters: status confirms the catalogue is reachable, search_all shows which surface has the best match before you spend calls on details.
|
|
39
79
|
|
|
40
|
-
|
|
80
|
+
---
|
|
41
81
|
|
|
42
|
-
|
|
82
|
+
|
|
83
|
+
Needs Node 22 or newer. No other dependency. Pick one:
|
|
43
84
|
|
|
44
85
|
```bash
|
|
45
86
|
# Option A — from source (GitHub)
|
|
@@ -58,10 +99,10 @@ aura-components-mcp
|
|
|
58
99
|
|
|
59
100
|
```bash
|
|
60
101
|
# Option C — npx, no install
|
|
61
|
-
npx -y aura-components-mcp
|
|
102
|
+
npx -y aura-components-mcp@latest
|
|
62
103
|
```
|
|
63
104
|
|
|
64
|
-
Then register it in your client. Full per-client steps live in [SETUP.md](./SETUP.md) — Claude Code, Cursor, Codex, Windsurf, OpenCode, Cline, Roo Code, DeepSeek Harness, generic stdio
|
|
105
|
+
Then register it in your client. Full per-client steps live in [SETUP.md](./SETUP.md) — Claude Code, Cursor, Codex, Windsurf, OpenCode, Cline, Roo Code, DeepSeek Harness, generic stdio.
|
|
65
106
|
|
|
66
107
|
```bash
|
|
67
108
|
# Claude Code
|
|
@@ -78,50 +119,83 @@ claude mcp add aura-components -- node ./dist/server.js
|
|
|
78
119
|
{ "$schema": "https://opencode.ai/config.json", "mcp": { "aura-components": { "type": "local", "command": ["node", "./dist/server.js"], "enabled": true } } }
|
|
79
120
|
```
|
|
80
121
|
|
|
81
|
-
|
|
122
|
+
---
|
|
123
|
+
|
|
82
124
|
|
|
125
|
+
<p align="center">
|
|
126
|
+
<a href="https://raw.githubusercontent.com/swastiksingh-dev/Aura-Components-MCP/main/assets/heart-demo.mp4"><b>▲ CLICK TO WATCH THE 10-SECOND FLOW TOUR (MP4) ▲</b></a>
|
|
127
|
+
<br><em>Same file as <a href="./assets/heart-demo.mp4">assets/heart-demo.mp4</a></em>
|
|
128
|
+
</p>
|
|
83
129
|
|
|
130
|
+
*`aura_prompt` turns one sentence into a confirmed prompt, `aura_recommend` turns it into a starter kit with links. Full clip in [`assets/`](assets/).*
|
|
84
131
|
|
|
85
|
-
|
|
132
|
+
---
|
|
86
133
|
|
|
87
|
-

|
|
88
134
|
|
|
89
|
-
|
|
135
|
+
Start with `aura_status`, then `aura_search_all`. That order matters: status confirms the catalogue is reachable, search_all shows which surface has the best match before you spend calls on details.
|
|
90
136
|
|
|
91
|
-
|
|
137
|
+
### Find
|
|
92
138
|
|
|
93
139
|
| Tool | What it returns |
|
|
94
140
|
| --- | --- |
|
|
95
141
|
| `aura_status` | Reachability plus live free counts. Call it first. |
|
|
96
142
|
| `aura_search_components` | Free components by text, category, `theme: dark\|light`, sort. Slim rows by default (excerpt + `full_fetch`, no 12KB code dump; `slim:false` for full). `exact_match:true` skips fallbacks (honest empty). |
|
|
97
|
-
| `aura_get_component` | One component in full: markup, style block, preview, author, page URL. `full:true` ignores `chunk` for the full body. |
|
|
98
|
-
| `aura_install_component` | The same component plus a paste plan: CDN scripts, fonts, steps, file map, chunk `concat` plan when truncated, `css_scope_how`. |
|
|
99
143
|
| `aura_search_skills` | Skill metadata (title, description, source repo, views). `exact_match:true` skips fallbacks. |
|
|
100
|
-
| `aura_get_skill` | The whole SKILL.md body. This is the one agents actually build from. |
|
|
101
|
-
| `aura_install_skill` | Where to save SKILL.md so the agent can load it, plus upstream link. |
|
|
102
144
|
| `aura_search_assets` | Images and clips by keyword, media type filter included. Slim rows (no 4K URLs until install). `exact_match:true` skips fallbacks. |
|
|
103
|
-
| `aura_install_asset` | Legal drop-in: download + preview URLs, license (all-rights-reserved per [Aura Terms §4](https://www.aura.build/terms)), file path. |
|
|
104
145
|
| `aura_search_design_systems` | DESIGN.md metadata: title, description, views, author. `exact_match:true` skips fallbacks. |
|
|
105
|
-
| `aura_get_design_system` | Full DESIGN.md content plus preview HTML. |
|
|
106
|
-
| `aura_use_design_system` | Token starter CSS plus the order to apply things in. |
|
|
107
146
|
| `aura_search_all` | All four surfaces in parallel. Never empties (fallback + suggestions). `exact_match:true` for honest empty. |
|
|
108
147
|
| `aura_recommend` | A starter kit for a goal sentence, with links and a short rationale. |
|
|
109
148
|
| `aura_categories` | The 13 component categories with live free counts. Counts overlap (see `overlap_note`). |
|
|
149
|
+
| `aura_related` | 3 more-like-this per item. Discovery never dead-ends. |
|
|
150
|
+
|
|
151
|
+
### Fetch (full bodies)
|
|
152
|
+
|
|
153
|
+
| Tool | What it returns |
|
|
154
|
+
| --- | --- |
|
|
155
|
+
| `aura_get_component` | One component in full: markup, style block, preview, author, page URL. `full:true` ignores `chunk` for the full body. |
|
|
156
|
+
| `aura_get_skill` | The whole SKILL.md body. This is the one agents actually build from. |
|
|
157
|
+
| `aura_get_design_system` | Full DESIGN.md content plus preview HTML. |
|
|
110
158
|
| `aura_bundle` / `aura_bulk_fetch` | 2–8 details in one call (components/design_systems/assets). Per-item errors never fail the batch. |
|
|
159
|
+
|
|
160
|
+
### Install & build (tokens first, then markup)
|
|
161
|
+
|
|
162
|
+
| Tool | What it returns |
|
|
163
|
+
| --- | --- |
|
|
164
|
+
| `aura_install_component` | The same component plus a paste plan: CDN scripts, fonts, steps, file map, chunk `concat` plan when truncated, `css_scope_how`. |
|
|
165
|
+
| `aura_install_skill` | Where to save SKILL.md so the agent can load it, plus upstream link. |
|
|
166
|
+
| `aura_install_asset` | Legal drop-in: download + preview URLs, license (all-rights-reserved per [Aura Terms §4](https://www.aura.build/terms)), file path. |
|
|
167
|
+
| `aura_use_design_system` | Token starter CSS plus the order to apply things in. |
|
|
111
168
|
| `aura_scaffold_page` | One-turn page build: tokens.css + system preview + markup in order, combined deps + files. `components: ["732","1364"]` or `[{id:"732"}]`. |
|
|
112
|
-
| `
|
|
113
|
-
|
|
169
|
+
| `aura_prompt` | Need-based prompt in 2 passes: draft + 6 questions (theme, sections, system, assets, macrostructure, vibe), then copy-paste final. Confirm with user first. Pass 2 leads with `inspo.recommend` + `aura_inspo_recommend`. |
|
|
170
|
+
|
|
171
|
+
### Bridge (Inspo · fresh docs · icons)
|
|
172
|
+
|
|
173
|
+
| Tool | What it returns |
|
|
174
|
+
| --- | --- |
|
|
175
|
+
| `aura_inspo_recommend` | Brief → Inspo + Aura call plan (pure, no fetch). Strict macro gate: no `macrostructure` returns `need_macro:true`. Palette priority brand > Inspo > Aura. |
|
|
176
|
+
| `aura_inspo_components` | Inspo component filter → Aura category search + scaffold hint (tokens first, weight s\|m). |
|
|
177
|
+
| `aura_inspo_reference` | One Inspo JSX + one Aura component → scoped adapt plan (token swaps, css scope, files). |
|
|
178
|
+
| `aura_inspo_system` | Inspo tokens vs Aura DESIGN system → A/B/blend + one `system_choice` question + contrast warning. |
|
|
179
|
+
| `aura_inspo_compare` | 2–4 slim Inspo sites → house style + closest Aura system/component queries. |
|
|
180
|
+
| `aura_docs_plan` | Fresh-docs lookup plan (pure): library + need → Context7 resolve/query plan (trusted: tailwind, gsap, lenis, iconify) + Aura apply steps. |
|
|
181
|
+
| `aura_docs_check` | Pasted code vs fresh docs (pure): verdict current\|needs-update, look-preserving fixes, pin checks. |
|
|
182
|
+
| `aura_icon` | One free icon as ready SVG (live): FA Free + HackerNoon pixel lib, auto-fallback, license + credit always, font alternative, 24h cache. |
|
|
183
|
+
| `aura_version` | Running vs npm-published version (live, hourly cache). `update_available` + prefer-latest notice. `aura_status` carries the verdict on every call. |
|
|
184
|
+
| `aura_version` | Running vs npm-published version (live, hourly cache). `update_available` + prefer-latest notice. `aura_status` carries the verdict on every call. |
|
|
114
185
|
|
|
115
186
|
Every row carries `page_url` (open it to see the design) and `author` where Aura credits one.
|
|
116
187
|
|
|
117
|
-
|
|
188
|
+
---
|
|
189
|
+
|
|
118
190
|
|
|
119
191
|
- **Per surface, not global.** `aura_search_all` fans out to four independent pipelines (phrase → OR-tokens → safety net → kind-aware refusal). Mixed outcomes are normal and correct: skills may return `fallback:or-tokens:...` while components return `total:0, no_match:true`. Read `isFallback` / `no_match` on each surface — never assume one flag covers all four.
|
|
120
192
|
- **Recommend fills the kit.** If components come back `no_match`, `aura_recommend` auto-retries once with `suggested_queries[0]` (`retried:true, retried_from:<query>`), then falls back to human-grade editorial picks (`editorial_fallback:true`). The starter kit is never left empty on a text goal.
|
|
121
193
|
- **Big code in one call.** Search rows are slim excerpts by design. Skip the 3-chunk manual concat: `aura_get_component {id, full:true}` and `aura_scaffold_page {goal, full:true}` return complete bodies (33,897-char component verified in one call). Default stays chunked to protect context.
|
|
122
194
|
- **Counts are live upstream.** `aura_status` counts mirror the Aura catalogue right now; `freshness` shows max `updated_at` per surface. Counts only grow when Aura publishes — a freshness bump with flat counts means metadata moved, not new components.
|
|
195
|
+
- **`total` means upstream matches** (for limit/offset paging), not post-filter rows. Local drops are disclosed, never silent: `min_views_filtered_out`, `negative_theme_filtered_out`, `deduped`, bundle `dropped_refs`.
|
|
196
|
+
|
|
197
|
+
---
|
|
123
198
|
|
|
124
|
-
## ✨ Prompt for AI agents — start here
|
|
125
199
|
|
|
126
200
|
> The fastest way to a shippable page. Two passes, one confirmation.
|
|
127
201
|
|
|
@@ -129,8 +203,8 @@ Every row carries `page_url` (open it to see the design) and `author` where Aura
|
|
|
129
203
|
Pass 1 — agent calls:
|
|
130
204
|
aura_prompt { "goal": "dark SaaS pricing" }
|
|
131
205
|
|
|
132
|
-
Server returns: draft_prompt +
|
|
133
|
-
Agent MUST ask you (theme / sections / system / assets) via native question UI.
|
|
206
|
+
Server returns: draft_prompt + 6 questions + next_call.
|
|
207
|
+
Agent MUST ask you (theme / sections / system / assets / macrostructure / vibe) via native question UI.
|
|
134
208
|
```
|
|
135
209
|
|
|
136
210
|
```text
|
|
@@ -145,7 +219,7 @@ Server returns: final_prompt (copy-paste) + plan order + suggested calls.
|
|
|
145
219
|
Copy-paste starter you can say to any agent:
|
|
146
220
|
|
|
147
221
|
```text
|
|
148
|
-
Check aura_status. Then call aura_prompt with my goal, ask me its
|
|
222
|
+
Check aura_status. Then call aura_prompt with my goal, ask me its 6 questions,
|
|
149
223
|
then call it again with my answers and follow its suggested_calls.
|
|
150
224
|
My goal: dark cinematic portfolio.
|
|
151
225
|
```
|
|
@@ -157,11 +231,12 @@ Sources: [tips-for-prompting](https://www.aura.build/learn/tips-for-prompting),
|
|
|
157
231
|
[introduction](https://www.aura.build/learn/introduction),
|
|
158
232
|
[design-systems](https://www.aura.build/design-systems).
|
|
159
233
|
|
|
160
|
-
|
|
234
|
+
---
|
|
235
|
+
|
|
161
236
|
|
|
162
237
|
New landing page, dark cinematic portfolio, SaaS pricing section. The shape is the same each time:
|
|
163
238
|
|
|
164
|
-
1. `aura_prompt` with the goal sentence. Answer its
|
|
239
|
+
1. `aura_prompt` with the goal sentence. Answer its 6 questions. Copy the final prompt.
|
|
165
240
|
2. `aura_recommend` with the goal sentence. Skim the starter kit links.
|
|
166
241
|
3. `aura_get_component` on two or three finalists. Read the markup, not just the description.
|
|
167
242
|
4. `aura_install_component` on the winner. Follow the file map.
|
|
@@ -169,35 +244,68 @@ New landing page, dark cinematic portfolio, SaaS pricing section. The shape is t
|
|
|
169
244
|
|
|
170
245
|
Prompts that work well are in [SETUP.md](./SETUP.md#prompts-that-work).
|
|
171
246
|
|
|
172
|
-
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
There is no auth in this server. No OAuth, no API key to paste, no account to create. Reads go to the same public catalogue endpoints the Aura website uses. The `premium` flag stays on every component row, free-only is the default, and Pro rows are refused everywhere — search filters them, and direct ID lookup, install, bundle, and scaffold refuse them (`-32602`, fail-closed) instead of guessing. If Aura rotates its public key, set `AURA_SUPABASE_ANON_KEY` and rebuild; nothing else changes.
|
|
251
|
+
|
|
252
|
+
Optional tuning (all with defaults):
|
|
253
|
+
|
|
254
|
+
<details>
|
|
255
|
+
<summary><b>Environment variables</b> — click to expand</summary>
|
|
173
256
|
|
|
174
|
-
|
|
257
|
+
| Var | Default | Meaning |
|
|
258
|
+
| --- | --- | --- |
|
|
259
|
+
| `AURA_TIMEOUT_MS` | 12000 | Upstream timeout |
|
|
260
|
+
| `AURA_RETRIES` | 2 | Retry budget for 429/5xx with jittered backoff |
|
|
261
|
+
| `AURA_CACHE_TTL_MS` | 60000 | LRU cache TTL (`0` disables) |
|
|
262
|
+
| `AURA_DEFAULT_LIMIT` / `AURA_MAX_LIMIT` | 10 / 25 | Pagination defaults and ceiling |
|
|
263
|
+
| `AURA_CODE_CHARS` / `AURA_CONTENT_CHARS` | 12000 | Chunk sizes for code/content paging |
|
|
264
|
+
| `AURA_FREE_ONLY_DEFAULT` | true | Keep free-only default |
|
|
175
265
|
|
|
176
|
-
|
|
266
|
+
</details>
|
|
267
|
+
|
|
268
|
+
---
|
|
177
269
|
|
|
178
|
-
## Develop
|
|
179
270
|
|
|
180
271
|
```bash
|
|
181
272
|
npm test # hermetic tests, no network
|
|
182
|
-
npm run verify #
|
|
273
|
+
npm run verify # 35 live checks against the real catalogue
|
|
183
274
|
npm run build # rebundle src/*.mjs into dist/server.js
|
|
184
275
|
```
|
|
185
276
|
|
|
186
|
-
Layout: `src/config.mjs` holds env parsing. `src/http.mjs` hides timeouts and retries behind an injectable fetch. `src/catalog.mjs` is the deep module (queries, cache, shaping, counts). `src/guide.mjs` turns rows into install plans plus `buildPrompt`
|
|
277
|
+
Layout: `src/config.mjs` holds env parsing. `src/http.mjs` hides timeouts and retries behind an injectable fetch. `src/catalog.mjs` is the deep module (queries, cache, shaping, counts). `src/icons.mjs` fetches free icons (FA + pixel lib) with its own 24h cache. `src/guide.mjs` turns rows into install plans plus pure mappers (`buildPrompt`, `combineScaffold`, `buildInspo*`, `buildDocs*` — same seam for tools + tests + docs). `src/tools.mjs` validates args. `src/protocol.mjs` speaks JSON-RPC. `src/server.mjs` only wires stdio.
|
|
278
|
+
|
|
279
|
+
---
|
|
187
280
|
|
|
188
|
-
## Share
|
|
189
281
|
|
|
190
282
|
Star it if it saved you a tab or twenty: [github.com/swastiksingh-dev/Aura-Components-MCP](https://github.com/swastiksingh-dev/Aura-Components-MCP). Reposits welcome — see [DIRECTION.md](./DIRECTION.md) for where this is headed.
|
|
191
283
|
|
|
192
284
|
[](https://star-history.com/#swastiksingh-dev/Aura-Components-MCP&Date)
|
|
193
285
|
|
|
194
286
|
```text
|
|
195
|
-
built a free design MCP on aura.build: 2495 components,
|
|
287
|
+
built a free design MCP on aura.build: 2495 components, 192 skills, 30k assets, 29 tools. no login. resources are @MengTo's
|
|
196
288
|
|
|
197
|
-
npx -y aura-components-mcp
|
|
289
|
+
npx -y aura-components-mcp@latest
|
|
198
290
|
https://github.com/swastiksingh-dev/Aura-Components-MCP
|
|
199
291
|
```
|
|
200
292
|
|
|
201
|
-
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
Server code by [swastiksingh-dev](https://github.com/swastiksingh-dev), MIT. Free to fork, use, and sell with. If you fork this, keep the credit line and point people at the original repo.
|
|
297
|
+
|
|
298
|
+
| Source | Used for | License / terms |
|
|
299
|
+
| --- | --- | --- |
|
|
300
|
+
| [Aura](https://www.aura.build) (Meng To / DesignCode) | The entire catalogue: components, skills, assets, design systems | Belongs to Aura and credited authors; assets all-rights-reserved per [Aura Terms §4](https://www.aura.build/terms) |
|
|
301
|
+
| [Official Aura MCP](https://www.aura.build/mcp) | Comparison only (account projects/publishing over OAuth — the half this server skips) | Aura's terms |
|
|
302
|
+
| Inspo design-reference MCP | Real-site evidence behind `aura_inspo_*` (`recommend`, `find_components`, `get_reference_jsx`, `compare`) | Reference JSX belongs to its authors — adapt tokens, don't ship verbatim |
|
|
303
|
+
| [Context7](https://context7.com) | Fresh library docs behind `aura_docs_*` (trusted: Tailwind CSS, GSAP, Lenis, Iconify) | Docs belong to their projects |
|
|
304
|
+
| [Font Awesome Free](https://fontawesome.com) | Icons via `aura_icon` (served from jsDelivr + cdnjs) | [CC BY 4.0](https://fontawesome.com/license/free) — credit on every hit, enforced by the tool |
|
|
305
|
+
| [HackerNoon Pixel Icon Library](https://github.com/hackernoon/pixel-icon-library) ([site](https://pixeliconlibrary.com)) | Pixel icons via `aura_icon` (served from jsDelivr) | Icons CC BY 4.0, other files MIT — credit on every hit, enforced by the tool |
|
|
306
|
+
| Upstream libraries (Tailwind CSS, GSAP, Lenis, Iconify) | The code this server's guides point at | Each project's own license — check before shipping |
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
202
310
|
|
|
203
|
-
|
|
311
|
+
MIT — see [LICENSE](./LICENSE).
|
package/SETUP.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Setup
|
|
2
2
|
|
|
3
|
-
One server, every client below. No account, no key, nothing to log into. If Node
|
|
3
|
+
One server, every client below. No account, no key, nothing to log into. If Node 22+ runs `node ./dist/server.js`, the client can use this.
|
|
4
4
|
|
|
5
5
|
Build once:
|
|
6
6
|
|
|
@@ -9,13 +9,13 @@ git clone https://github.com/swastiksingh-dev/Aura-Components-MCP.git
|
|
|
9
9
|
cd Aura-Components-MCP
|
|
10
10
|
npm install
|
|
11
11
|
npm run build
|
|
12
|
-
node ./dist/server.js # prints: aura-components-mcp v1.
|
|
12
|
+
node ./dist/server.js # prints: aura-components-mcp v1.7.0 listening on stdio (Ctrl+C to stop)
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
# Or without cloning:
|
|
17
17
|
npm i -g aura-components-mcp
|
|
18
|
-
npx -y aura-components-mcp
|
|
18
|
+
npx -y aura-components-mcp@latest
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
If that last line prints, the server works. Everything below just points a client at the same file.
|
|
@@ -69,11 +69,11 @@ Restart Windsurf, open Cascade, allow the server when asked.
|
|
|
69
69
|
|
|
70
70
|
1. Open Cline settings, MCP Servers section.
|
|
71
71
|
2. Add server: command `node`, arg `/absolute/path/to/aura-components-mcp/dist/server.js`, name `aura-components`.
|
|
72
|
-
3. It lists
|
|
72
|
+
3. It lists 29 tools starting with `aura_`. Approve them once.
|
|
73
73
|
|
|
74
74
|
## Roo Code (VS Code)
|
|
75
75
|
|
|
76
|
-
Same as Cline: Add MCP server, command `node`, args `["/absolute/path/to/aura-components-mcp/dist/server.js"]`. Roo shows the
|
|
76
|
+
Same as Cline: Add MCP server, command `node`, args `["/absolute/path/to/aura-components-mcp/dist/server.js"]`. Roo shows the 29 `aura_` tools in its tool list after reload.
|
|
77
77
|
|
|
78
78
|
## DeepSeek Harness
|
|
79
79
|
|
|
@@ -102,7 +102,7 @@ Add to `opencode.json` (or `opencode.jsonc`) in your project root or `~/.config/
|
|
|
102
102
|
}
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
Restart OpenCode (or run `/mcp` to reload). The
|
|
105
|
+
Restart OpenCode (or run `/mcp` to reload). The 29 `aura_*` tools show up in the TUI. Same first prompt as Claude Code above. A copy-paste file lives at `examples/opencode.json`.
|
|
106
106
|
|
|
107
107
|
## Any other MCP client
|
|
108
108
|
|
|
@@ -110,7 +110,7 @@ Transport is stdio, no auth. Command `node`, args `["/absolute/path/to/aura-comp
|
|
|
110
110
|
|
|
111
111
|
## Prompts that work
|
|
112
112
|
|
|
113
|
-
- `Check aura_status. Then call aura_prompt with "dark SaaS pricing", ask me its
|
|
113
|
+
- `Check aura_status. Then call aura_prompt with "dark SaaS pricing", ask me its 6 questions, then call it again with my answers.`
|
|
114
114
|
- `Check aura_status. Then recommend a starter kit for a dark cinematic portfolio (free only).`
|
|
115
115
|
- `Search free pricing components, get the top two in full, and tell me which pastes cleaner into Tailwind.`
|
|
116
116
|
- `Which skill covers GSAP ScrollTrigger pin and scrub? Fetch it in full and apply the pinned-section recipe.`
|
|
@@ -120,7 +120,7 @@ Transport is stdio, no auth. Command `node`, args `["/absolute/path/to/aura-comp
|
|
|
120
120
|
|
|
121
121
|
## Troubleshooting
|
|
122
122
|
|
|
123
|
-
- Server exits instantly: check `node --version` (needs
|
|
123
|
+
- Server exits instantly: check `node --version` (needs 22+), then `npm run build` again.
|
|
124
124
|
- Client shows 0 tools: absolute path wrong, or the client needs a restart after config edit.
|
|
125
125
|
- `upstream` errors on every call: outbound network blocked. `npm run verify` from the same machine tells you in seconds.
|
|
126
126
|
- Counts look stale: 60-second cache. Wait a minute or set `AURA_CACHE_TTL_MS=0`.
|