aura-components-mcp 1.6.2 → 1.6.3
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 +87 -27
- package/SETUP.md +17 -8
- package/dist/server.js +1262 -978
- package/flow/compare.html +67 -62
- package/flow/docs.html +78 -73
- package/flow/how.html +68 -63
- package/flow/index.html +94 -89
- package/flow/setup.html +82 -77
- package/flow/tools.html +84 -79
- package/package.json +53 -53
package/README.md
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/aura-components-mcp) [](https://www.npmjs.com/package/aura-components-mcp) [](./LICENSE) [](./package.json) [](./dist/server.js)
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="./flow/index.html"><img src="https://raw.githubusercontent.com/swastiksingh-dev/Aura-Components-MCP/main/assets/site-tour.gif" alt="aura-components-mcp demo: dark WebGL hero,
|
|
6
|
+
<a href="./flow/index.html"><img src="https://raw.githubusercontent.com/swastiksingh-dev/Aura-Components-MCP/main/assets/site-tour.gif" alt="aura-components-mcp demo: dark WebGL hero, 20 grouped tools, one-minute setup" width="100%"></a>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
> 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
10
|
|
|
11
|
-
> **v1.6.
|
|
11
|
+
> **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
12
|
|
|
13
13
|
Point any MCP client at `dist/server.js` and your agent can search 2,495 free components, read 187 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
14
|
|
|
@@ -20,7 +20,7 @@ Aura already ships an official MCP at `https://mcp.aura.build/mcp`. It is good a
|
|
|
20
20
|
|
|
21
21
|
- `aura_install_component` tells the agent exactly how to paste a component: which CDN scripts it needs, which fonts it references, which file to put it in.
|
|
22
22
|
- `aura_use_design_system` hands back a `:root` token starter plus the copy order (tokens first, markup second).
|
|
23
|
-
- `
|
|
23
|
+
- `aura_categories` shows where the free catalogue is deepest, with live counts; per-surface `sort:'trending'` shows what is new.
|
|
24
24
|
- `aura_recommend` builds a starter kit across all four surfaces in one parallel call.
|
|
25
25
|
- Everything defaults to free. Pro rows never sneak into results.
|
|
26
26
|
|
|
@@ -30,21 +30,35 @@ Aura already ships an official MCP at `https://mcp.aura.build/mcp`. It is good a
|
|
|
30
30
|
- 187 agent skills with full SKILL.md bodies (GSAP, Tailwind v4, Anime.js, copywriting, and more)
|
|
31
31
|
- 30,688 images and clips with direct CDN URLs at multiple widths
|
|
32
32
|
- 725 DESIGN.md systems with tokens, type rules, layout notes, and preview HTML
|
|
33
|
-
- 20 tools over stdio, one
|
|
34
|
-
-
|
|
35
|
-
- Agent accelerators: `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)
|
|
33
|
+
- 20 tools over stdio, one bundle, 60-second LRU cache (300 keys) with request coalescing, author memo, category-count cache, retries with jittered backoff
|
|
34
|
+
- 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
|
+
- 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
36
|
- Faceted lists: every component carries `facets { theme, weight, code_chars, needsTailwind, needsIcons, fonts }`; filter `theme: dark|light` server-side
|
|
37
37
|
|
|
38
38
|
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
39
|
|
|
40
40
|
## Install
|
|
41
41
|
|
|
42
|
-
Needs Node 18 or newer. No other dependency.
|
|
42
|
+
Needs Node 18 or newer. No other dependency. Pick one:
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
# Option A — from source (GitHub)
|
|
46
|
+
git clone https://github.com/swastiksingh-dev/Aura-Components-MCP.git
|
|
47
|
+
cd Aura-Components-MCP
|
|
48
|
+
npm install
|
|
47
49
|
npm run build
|
|
50
|
+
node ./dist/server.js
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Option B — npm (once published)
|
|
55
|
+
npm i -g aura-components-mcp
|
|
56
|
+
aura-components-mcp
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Option C — npx, no install
|
|
61
|
+
npx -y aura-components-mcp
|
|
48
62
|
```
|
|
49
63
|
|
|
50
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 — or click through the animated [launch site](./flow/index.html) ([how it works](./flow/how.html) · [tools](./flow/tools.html) · [compare vs official](./flow/compare.html) · [setup](./flow/setup.html) · [docs](./flow/docs.html)). Launch site with animated explainer: open `flow/index.html` in a browser.
|
|
@@ -72,42 +86,86 @@ claude mcp add aura-components -- node ./dist/server.js
|
|
|
72
86
|
|
|
73
87
|

|
|
74
88
|
|
|
75
|
-
*The flow/ launch site: dark WebGL hero,
|
|
89
|
+
*The flow/ launch site: dark WebGL hero, 20 grouped tools, one-minute setup. `aura_prompt` turns one sentence into a confirmed prompt, `aura_recommend` turns it into a starter kit with links. Full clip in [`assets/`](assets/).*
|
|
76
90
|
|
|
77
91
|
## The 20 tools
|
|
78
92
|
|
|
79
93
|
| Tool | What it returns |
|
|
80
94
|
| --- | --- |
|
|
81
95
|
| `aura_status` | Reachability plus live free counts. Call it first. |
|
|
82
|
-
| `aura_search_components` | Free components by text, category, `theme: dark\|light`, sort.
|
|
83
|
-
| `aura_get_component` | One component in full: markup, style block, preview, author, page URL. |
|
|
84
|
-
| `aura_install_component` | The same component plus a paste plan: CDN scripts, fonts, steps, file map
|
|
85
|
-
| `aura_search_skills` | Skill metadata (title, description, source repo, views). |
|
|
96
|
+
| `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
|
+
| `aura_search_skills` | Skill metadata (title, description, source repo, views). `exact_match:true` skips fallbacks. |
|
|
86
100
|
| `aura_get_skill` | The whole SKILL.md body. This is the one agents actually build from. |
|
|
87
101
|
| `aura_install_skill` | Where to save SKILL.md so the agent can load it, plus upstream link. |
|
|
88
|
-
| `aura_search_assets` | Images and clips by keyword, media type filter included. Slim rows (no 4K URLs until install). |
|
|
102
|
+
| `aura_search_assets` | Images and clips by keyword, media type filter included. Slim rows (no 4K URLs until install). `exact_match:true` skips fallbacks. |
|
|
89
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. |
|
|
90
|
-
| `aura_search_design_systems` | DESIGN.md metadata: title, description, views, author. |
|
|
104
|
+
| `aura_search_design_systems` | DESIGN.md metadata: title, description, views, author. `exact_match:true` skips fallbacks. |
|
|
91
105
|
| `aura_get_design_system` | Full DESIGN.md content plus preview HTML. |
|
|
92
106
|
| `aura_use_design_system` | Token starter CSS plus the order to apply things in. |
|
|
93
|
-
| `aura_search_all` | All four surfaces in parallel. Never empties (fallback + suggestions). |
|
|
107
|
+
| `aura_search_all` | All four surfaces in parallel. Never empties (fallback + suggestions). `exact_match:true` for honest empty. |
|
|
94
108
|
| `aura_recommend` | A starter kit for a goal sentence, with links and a short rationale. |
|
|
95
|
-
| `
|
|
96
|
-
| `aura_categories` | The 13 component categories with live free counts. |
|
|
109
|
+
| `aura_categories` | The 13 component categories with live free counts. Counts overlap (see `overlap_note`). |
|
|
97
110
|
| `aura_bundle` / `aura_bulk_fetch` | 2–8 details in one call (components/design_systems/assets). Per-item errors never fail the batch. |
|
|
98
|
-
| `aura_scaffold_page` | One-turn page build: tokens.css + system preview + markup in order, combined deps + files. |
|
|
111
|
+
| `aura_scaffold_page` | One-turn page build: tokens.css + system preview + markup in order, combined deps + files. `components: ["732","1364"]` or `[{id:"732"}]`. |
|
|
99
112
|
| `aura_related` | 3 more-like-this per item. Discovery never dead-ends. |
|
|
113
|
+
| `aura_prompt` | Need-based prompt in 2 passes: draft + 4 questions, then copy-paste final. Confirm with user first. |
|
|
100
114
|
|
|
101
115
|
Every row carries `page_url` (open it to see the design) and `author` where Aura credits one.
|
|
102
116
|
|
|
117
|
+
## Fallback rules (read this once)
|
|
118
|
+
|
|
119
|
+
- **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
|
+
- **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
|
+
- **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
|
+
- **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.
|
|
123
|
+
|
|
124
|
+
## ✨ Prompt for AI agents — start here
|
|
125
|
+
|
|
126
|
+
> The fastest way to a shippable page. Two passes, one confirmation.
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
Pass 1 — agent calls:
|
|
130
|
+
aura_prompt { "goal": "dark SaaS pricing" }
|
|
131
|
+
|
|
132
|
+
Server returns: draft_prompt + 4 questions + next_call.
|
|
133
|
+
Agent MUST ask you (theme / sections / system / assets) via native question UI.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```text
|
|
137
|
+
Pass 2 — agent calls with your answers:
|
|
138
|
+
aura_prompt { "goal": "dark SaaS pricing",
|
|
139
|
+
"answers": { "theme": "dark", "sections": ["hero","pricing"],
|
|
140
|
+
"system": "auto-pick", "assets": "no" } }
|
|
141
|
+
|
|
142
|
+
Server returns: final_prompt (copy-paste) + plan order + suggested calls.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Copy-paste starter you can say to any agent:
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
Check aura_status. Then call aura_prompt with my goal, ask me its 4 questions,
|
|
149
|
+
then call it again with my answers and follow its suggested_calls.
|
|
150
|
+
My goal: dark cinematic portfolio.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Rules baked in: Tailwind `container mx-auto px-4`, hex 50-900, 768px hamburger,
|
|
154
|
+
hover scale 1.05 + shadow, Inter 40-60/28-36/14-16, motion <500ms +
|
|
155
|
+
`prefers-reduced-motion`, tokens first then markup.
|
|
156
|
+
Sources: [tips-for-prompting](https://www.aura.build/learn/tips-for-prompting),
|
|
157
|
+
[introduction](https://www.aura.build/learn/introduction),
|
|
158
|
+
[design-systems](https://www.aura.build/design-systems).
|
|
159
|
+
|
|
103
160
|
## How I use it
|
|
104
161
|
|
|
105
162
|
New landing page, dark cinematic portfolio, SaaS pricing section. The shape is the same each time:
|
|
106
163
|
|
|
107
|
-
1. `
|
|
108
|
-
2. `
|
|
109
|
-
3. `
|
|
110
|
-
4. `
|
|
164
|
+
1. `aura_prompt` with the goal sentence. Answer its 4 questions. Copy the final prompt.
|
|
165
|
+
2. `aura_recommend` with the goal sentence. Skim the starter kit links.
|
|
166
|
+
3. `aura_get_component` on two or three finalists. Read the markup, not just the description.
|
|
167
|
+
4. `aura_install_component` on the winner. Follow the file map.
|
|
168
|
+
5. `aura_use_design_system` once, before any markup, so tokens land first.
|
|
111
169
|
|
|
112
170
|
Prompts that work well are in [SETUP.md](./SETUP.md#prompts-that-work).
|
|
113
171
|
|
|
@@ -120,17 +178,19 @@ Optional tuning (env vars, all with defaults): `AURA_TIMEOUT_MS` (12000), `AURA_
|
|
|
120
178
|
## Develop
|
|
121
179
|
|
|
122
180
|
```bash
|
|
123
|
-
npm test #
|
|
124
|
-
npm run verify #
|
|
181
|
+
npm test # hermetic tests, no network
|
|
182
|
+
npm run verify # 25 live checks against the real catalogue
|
|
125
183
|
npm run build # rebundle src/*.mjs into dist/server.js
|
|
126
184
|
```
|
|
127
185
|
|
|
128
|
-
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. `src/tools.mjs` validates args. `src/protocol.mjs` speaks JSON-RPC. `src/server.mjs` only wires stdio.
|
|
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` (pure 2-pass prompt, same seam for tool + tests + docs). `src/tools.mjs` validates args. `src/protocol.mjs` speaks JSON-RPC. `src/server.mjs` only wires stdio.
|
|
129
187
|
|
|
130
188
|
## Share
|
|
131
189
|
|
|
132
190
|
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.
|
|
133
191
|
|
|
192
|
+
[](https://star-history.com/#swastiksingh-dev/Aura-Components-MCP&Date)
|
|
193
|
+
|
|
134
194
|
```text
|
|
135
195
|
built a free design MCP on aura.build: 2495 components, 187 skills, 30k assets, 20 tools. no login. resources are @MengTo's
|
|
136
196
|
|
package/SETUP.md
CHANGED
|
@@ -5,10 +5,17 @@ One server, every client below. No account, no key, nothing to log into. If Node
|
|
|
5
5
|
Build once:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
git clone https://github.com/swastiksingh-dev/
|
|
9
|
-
cd
|
|
8
|
+
git clone https://github.com/swastiksingh-dev/Aura-Components-MCP.git
|
|
9
|
+
cd Aura-Components-MCP
|
|
10
|
+
npm install
|
|
10
11
|
npm run build
|
|
11
|
-
node ./dist/server.js # prints: aura-components-mcp v1.
|
|
12
|
+
node ./dist/server.js # prints: aura-components-mcp v1.6.3 listening on stdio (Ctrl+C to stop)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Or without cloning:
|
|
17
|
+
npm i -g aura-components-mcp
|
|
18
|
+
npx -y aura-components-mcp
|
|
12
19
|
```
|
|
13
20
|
|
|
14
21
|
If that last line prints, the server works. Everything below just points a client at the same file.
|
|
@@ -62,11 +69,11 @@ Restart Windsurf, open Cascade, allow the server when asked.
|
|
|
62
69
|
|
|
63
70
|
1. Open Cline settings, MCP Servers section.
|
|
64
71
|
2. Add server: command `node`, arg `/absolute/path/to/aura-components-mcp/dist/server.js`, name `aura-components`.
|
|
65
|
-
3. It lists
|
|
72
|
+
3. It lists 20 tools starting with `aura_`. Approve them once.
|
|
66
73
|
|
|
67
74
|
## Roo Code (VS Code)
|
|
68
75
|
|
|
69
|
-
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 20 `aura_` tools in its tool list after reload.
|
|
70
77
|
|
|
71
78
|
## DeepSeek Harness
|
|
72
79
|
|
|
@@ -76,7 +83,7 @@ This repo was built inside it. Register the server the same stdio way:
|
|
|
76
83
|
node ./dist/server.js
|
|
77
84
|
```
|
|
78
85
|
|
|
79
|
-
as a stdio MCP entry (command `node`, args `dist/server.js`), or run `npm run verify` first to watch all
|
|
86
|
+
as a stdio MCP entry (command `node`, args `dist/server.js`), or run `npm run verify` first to watch all 25 live checks pass before wiring it in.
|
|
80
87
|
|
|
81
88
|
## OpenCode
|
|
82
89
|
|
|
@@ -95,7 +102,7 @@ Add to `opencode.json` (or `opencode.jsonc`) in your project root or `~/.config/
|
|
|
95
102
|
}
|
|
96
103
|
```
|
|
97
104
|
|
|
98
|
-
Restart OpenCode (or run `/mcp` to reload). The
|
|
105
|
+
Restart OpenCode (or run `/mcp` to reload). The 20 `aura_*` tools show up in the TUI. Same first prompt as Claude Code above. A copy-paste file lives at `examples/opencode.json`.
|
|
99
106
|
|
|
100
107
|
## Any other MCP client
|
|
101
108
|
|
|
@@ -103,11 +110,13 @@ Transport is stdio, no auth. Command `node`, args `["/absolute/path/to/aura-comp
|
|
|
103
110
|
|
|
104
111
|
## Prompts that work
|
|
105
112
|
|
|
113
|
+
- `Check aura_status. Then call aura_prompt with "dark SaaS pricing", ask me its 4 questions, then call it again with my answers.`
|
|
106
114
|
- `Check aura_status. Then recommend a starter kit for a dark cinematic portfolio (free only).`
|
|
107
115
|
- `Search free pricing components, get the top two in full, and tell me which pastes cleaner into Tailwind.`
|
|
108
116
|
- `Which skill covers GSAP ScrollTrigger pin and scrub? Fetch it in full and apply the pinned-section recipe.`
|
|
109
|
-
- `
|
|
117
|
+
- `Recommend a starter kit for a dark SaaS pricing page (free only) — it auto-retries once via suggested queries, then fills from editorial picks if the goal matches nothing.`
|
|
110
118
|
- `List categories with counts, then search the deepest free one for a landing page hero.`
|
|
119
|
+
- `Scaffold a dark SaaS pricing page: aura_scaffold_page { "goal": "dark SaaS pricing", "components": ["732","1364"] } (object refs like [{ "id": "732" }] work too).`
|
|
111
120
|
|
|
112
121
|
## Troubleshooting
|
|
113
122
|
|