aura-components-mcp 1.5.2

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/flow/app.js ADDED
@@ -0,0 +1,40 @@
1
+ (function(){
2
+ 'use strict';
3
+ var root=document.documentElement;
4
+ try{var s=localStorage.getItem('acm-theme');if(s==='dark'||s==='light')root.setAttribute('data-theme',s);else root.setAttribute('data-theme','dark');}catch(e){root.setAttribute('data-theme','dark');}
5
+ var t=document.getElementById('themeBtn');
6
+ function paint(){if(t)t.textContent=root.getAttribute('data-theme')==='dark'?'\u263E':'\u2600';}
7
+ if(t)t.addEventListener('click',function(){var n=root.getAttribute('data-theme')==='dark'?'light':'dark';root.setAttribute('data-theme',n);try{localStorage.setItem('acm-theme',n);}catch(e){}paint();});
8
+ paint();
9
+ var here=(location.pathname.split('/').pop()||'index.html').toLowerCase().split('?')[0].split('#')[0];
10
+ Array.prototype.forEach.call(document.querySelectorAll('.tabs a'),function(a){var h=(a.getAttribute('href')||'').toLowerCase().split('?')[0].split('#')[0].replace('./','');a.classList.toggle('on',h===here||(here===''&&h==='index.html'));});
11
+ var nodes=[document.getElementById('n0'),document.getElementById('n1'),document.getElementById('n2')];
12
+ var ni=0;function tick(){nodes.forEach(function(n,k){if(n)n.classList.toggle('live',k===ni%3);});ni++;}
13
+ if(nodes[0]){tick();setInterval(tick,1600);}
14
+ var io=null;
15
+ function reveal(){var els=document.querySelectorAll('.reveal');if(!('IntersectionObserver' in window)){Array.prototype.forEach.call(els,function(e){e.classList.add('in');});return;}io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:.12});Array.prototype.forEach.call(els,function(e){io.observe(e);});}
16
+ if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',reveal);else reveal();
17
+ var cv=document.querySelector('canvas.gl');
18
+ if(cv&&!matchMedia('(prefers-reduced-motion: reduce)').matches){
19
+ (function(){
20
+ var gl=cv.getContext('webgl',{antialias:false,alpha:true});
21
+ if(!gl)return;
22
+ function sh(t,src){var s=gl.createShader(t);gl.shaderSource(s,src);gl.compileShader(s);return gl.getShaderParameter(s,gl.COMPILE_STATUS)?s:null;}
23
+ var vs=sh(gl.VERTEX_SHADER,'attribute vec2 p;void main(){gl_Position=vec4(p,0.,1.);}');
24
+ var fs=sh(gl.FRAGMENT_SHADER,'precision highp float;uniform vec2 R;uniform float T;void main(){vec2 uv=gl_FragCoord.xy/R;vec2 p=uv*2.-1.;p.x*=R.x/R.y;p.y+=.8;float r=length(p);float a=atan(p.y,p.x);float dist=abs(r-1.6);float warp=sin(r*4.-T*.5)*.3;float lines=sin((a+warp)*80.+T*2.);lines=smoothstep(.85,1.,lines);float mask=smoothstep(.5,0.,dist);float glow=.05/(dist*dist+.05);vec3 c1=vec3(0.,.4,1.);vec3 c2=vec3(.8,.1,.9);vec3 base=mix(c1,c2,sin(a*2.+T*.5)*.5+.5);vec3 line=mix(base,vec3(1.),.4);vec3 col=line*lines*mask*2.5+base*glow*1.5;col*=smoothstep(1.5,-.5,p.y);col*=smoothstep(3.,1.,r);gl_FragColor=vec4(col,1.);}');
25
+ if(!vs||!fs)return;
26
+ var pr=gl.createProgram();gl.attachShader(pr,vs);gl.attachShader(pr,fs);gl.linkProgram(pr);
27
+ if(!gl.getProgramParameter(pr,gl.LINK_STATUS))return;
28
+ var buf=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,buf);
29
+ gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,1,1,1,-1,-1,1,-1]),gl.STATIC_DRAW);
30
+ var loc=gl.getAttribLocation(pr,'p');var uR=gl.getUniformLocation(pr,'R');var uT=gl.getUniformLocation(pr,'T');
31
+ function fit(){var d=Math.min(devicePixelRatio||1,1.5);var w=cv.clientWidth*d|0,h=cv.clientHeight*d|0;if(cv.width!==w||cv.height!==h){cv.width=w;cv.height=h;gl.viewport(0,0,w,h);}}
32
+ var run=true;
33
+ new IntersectionObserver(function(es){run=es[0].isIntersecting;},{threshold:0}).observe(cv);
34
+ document.addEventListener('visibilitychange',function(){fit();});
35
+ addEventListener('resize',fit,{passive:true});fit();
36
+ function frame(t){requestAnimationFrame(frame);if(!run||document.hidden)return;gl.clearColor(0,0,0,0);gl.clear(gl.COLOR_BUFFER_BIT);gl.useProgram(pr);gl.bindBuffer(gl.ARRAY_BUFFER,buf);gl.vertexAttribPointer(loc,2,gl.FLOAT,false,0,0);gl.enableVertexAttribArray(loc);gl.uniform2f(uR,cv.width,cv.height);gl.uniform1f(uT,t*.001);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);}
37
+ requestAnimationFrame(frame);
38
+ })();
39
+ }
40
+ })();
@@ -0,0 +1 @@
1
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>compare</div><h2>This MCP vs the official one.</h2><table class='cmp reveal'><tr><th></th><th>aura-components-mcp</th><th>official aura mcp</th></tr><tr><td>Reads</td><td class='yes'>Public catalogue: 2,495 / 187 / 30,688 / 725</td><td>Your Canvases, projects, sites</td></tr><tr><td>Login</td><td class='yes'>None</td><td class='no'>Aura account + OAuth</td></tr><tr><td>Price</td><td class='yes'>Free, MIT</td><td class='no'>Aura tiers</td></tr><tr><td>Install plans</td><td class='yes'>install_* + tokens</td><td class='no'>Source only</td></tr><tr><td>Publish</td><td class='no'>Not included</td><td class='yes'>Validate + publish</td></tr><tr><td>Transport</td><td>stdio, 48KB, zero deps</td><td>Streamable HTTP</td></tr></table></section></div>
@@ -0,0 +1 @@
1
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>docs</div><h2>The four-step loop.</h2><div class='doc'><h3>What is this?</h3><p>An MCP server: a program your agent launches over stdio (<code>initialize</code>, <code>tools/list</code>, <code>tools/call</code>). Ours exposes the free Aura catalogue as 19 tools.</p><h3>Loop</h3><ol><li><b>Status</b> (<code>aura_status</code>), <b>search</b> (<code>aura_search_all</code>), <b>fetch</b> (<code>aura_get_*</code>), <b>install</b> (<code>aura_install_*</code>).</li></ol><h3>Free-only</h3><p>Queries filter <code>private=false + premium=false</code>. Pro refused with explanation.</p><h3>Fast</h3><p>48KB bundle, 60s LRU, coalescing, bounded payloads.</p></div></section></div>
@@ -0,0 +1 @@
1
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>the loop</div><h2>Four steps, every time.</h2><div class='flow reveal'><div class='fnode' id='n0'><span class='fdot'></span><h3>1 &middot; Agent asks</h3><small>plain words, any client</small></div><div class='wire'><span class='pkt'></span></div><div class='fnode' id='n1'><span class='fdot'></span><h3>2 &middot; MCP searches</h3><small>4 tables in parallel</small></div><div class='wire'><span class='pkt p2'></span></div><div class='fnode' id='n2'><span class='fdot'></span><h3>3 &middot; Agent pastes</h3><small>guide + tokens + files</small></div></div><div class='note'>Beginner rule: status, then search-all, then get-one, then install-one. Never fetch everything up front.</div></section></div>
@@ -0,0 +1 @@
1
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>start</div><h2>Begin in three clicks.</h2><p class='center muted'><a href='./docs.html'>How it works, slowly</a> &middot; <a href='./tools.html'>Every tool, grouped</a> &middot; <a href='./compare.html'>This vs official</a> &middot; <a href='./setup.html'>Setup in a minute</a></p></section></div>
@@ -0,0 +1,4 @@
1
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>setup</div><h2>Three commands.</h2><div class='doc'><h3>1 &middot; Clone + build</h3><pre>git clone https://github.com/swastiksingh-dev/Aura-Components-MCP.git
2
+ cd Aura-Components-MCP
3
+ npm run build
4
+ node ./dist/server.js</pre><p>If it prints <code>listening on stdio</code>, it works. Ctrl+C, then register:</p><h3>2 &middot; Register</h3><p><b>Claude Code:</b> <code>claude mcp add aura-components -- node ./dist/server.js</code></p><p><b>OpenCode</b> (<code>opencode.json</code>): <code>{ mcp: { aura-components: { type: local, command: [node, dist/server.js] } } }</code></p><p><b>Cursor / Windsurf:</b> command <code>node</code>, args <code>[dist/server.js]</code></p><p><b>Codex / Cline / Roo:</b> same stdio pair.</p><h3>3 &middot; First prompt</h3><p><code>Check aura_status. Then recommend a starter kit for a dark cinematic portfolio (free only).</code></p><div class='note'>Trouble? <code>npm run verify</code> runs 18 live checks. Zero tools = path not absolute or client needs restart.</div></div></section></div>
@@ -0,0 +1 @@
1
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>tools</div><h2>Grouped, not dumped.</h2><h3>Find</h3><div class='tgrid'><div class='tcard reveal'><code>aura_status</code><p>Health + live free counts. Start here.</p></div><div class='tcard reveal'><code>aura_search_all</code><p>All four surfaces in parallel.</p></div><div class='tcard reveal'><code>aura_recommend</code><p>Starter kit for a goal sentence.</p></div><div class='tcard new reveal'><code>aura_trending</code><p>Last-7-days leaders, one call.</p></div><div class='tcard new reveal'><code>aura_categories</code><p>13 categories, live free counts.</p></div></div><h3>Components</h3><div class='tgrid'><div class='tcard reveal'><code>aura_search_components</code><p>By text, category, theme, sort.</p></div><div class='tcard reveal'><code>aura_get_component</code><p>Full markup, style, preview.</p></div><div class='tcard new reveal'><code>aura_install_component</code><p>Paste plan: scripts, fonts, steps.</p></div></div><h3>Skills</h3><div class='tgrid'><div class='tcard reveal'><code>aura_search_skills</code><p>Metadata: title, source, views.</p></div><div class='tcard reveal'><code>aura_get_skill</code><p>The whole SKILL.md body.</p></div><div class='tcard new reveal'><code>aura_install_skill</code><p>Where to save SKILL.md.</p></div></div><h3>Assets + systems</h3><div class='tgrid'><div class='tcard reveal'><code>aura_search_assets</code><p>Images and clips by keyword.</p></div><div class='tcard reveal'><code>aura_install_asset</code><p>Legal drop-in plan + license flag.</p></div><div class='tcard reveal'><code>aura_search_design_systems</code><p>DESIGN.md metadata first.</p></div><div class='tcard reveal'><code>aura_get_design_system</code><p>Full DESIGN.md plus preview.</p></div><div class='tcard new reveal'><code>aura_use_design_system</code><p>Token starter CSS + copy order.</p></div></div><h3>One-turn builds</h3><div class='tgrid'><div class='tcard new reveal'><code>aura_bundle</code><p>Bulk-fetch up to 8 details.</p></div><div class='tcard new reveal'><code>aura_scaffold_page</code><p>Tokens + system + markup, ordered.</p></div><div class='tcard new reveal'><code>aura_related</code><p>More-like-this, never dead-ends.</p></div></div></section></div>
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>Compare — aura-components-mcp vs official</title>
7
+ <meta name='description' content='Free MCP server for the Aura public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.'>
8
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
9
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
10
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
11
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
12
+ <link rel='stylesheet' href='./styles.css'>
13
+ </head>
14
+ <body>
15
+ <nav class='nav'><div class='nav-in'>
16
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
17
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
18
+ <div class='tabs'><a href='./index.html'>Home</a><a href='./how.html'>How it works</a><a href='./tools.html'>Tools</a><a href='./compare.html' class='on'>Compare</a><a href='./setup.html'>Setup</a><a href='./docs.html'>Docs</a></div>
19
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
20
+ </div></nav>
21
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>compare</div><h1>Same family.<br>Different jobs.</h1><p class='lede'>Use both: catalogue here, account there. This page says which is which.</p><div class='cta'></div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
22
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>compare</div><h2>This MCP vs the official one.</h2><table class='cmp reveal'><tr><th></th><th>aura-components-mcp</th><th>official aura mcp</th></tr><tr><td>Reads</td><td class='yes'>Public catalogue: 2,495 / 187 / 30,688 / 725</td><td>Your Canvases, projects, sites</td></tr><tr><td>Login</td><td class='yes'>None</td><td class='no'>Aura account + OAuth</td></tr><tr><td>Price</td><td class='yes'>Free, MIT</td><td class='no'>Aura tiers</td></tr><tr><td>Install plans</td><td class='yes'>install_* + tokens</td><td class='no'>Source only</td></tr><tr><td>Publish</td><td class='no'>Not included</td><td class='yes'>Validate + publish</td></tr><tr><td>Transport</td><td>stdio, 48KB, zero deps</td><td>Streamable HTTP</td></tr></table></section></div>
23
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
24
+ <script src='./app.js'></script>
25
+ </body>
26
+ </html>
package/flow/docs.html ADDED
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>Docs — how aura-components-mcp works</title>
7
+ <meta name='description' content='Free MCP server for the Aura public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.'>
8
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
9
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
10
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
11
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
12
+ <link rel='stylesheet' href='./styles.css'>
13
+ </head>
14
+ <body>
15
+ <nav class='nav'><div class='nav-in'>
16
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
17
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
18
+ <div class='tabs'><a href='./index.html'>Home</a><a href='./how.html'>How it works</a><a href='./tools.html'>Tools</a><a href='./compare.html'>Compare</a><a href='./setup.html'>Setup</a><a href='./docs.html' class='on'>Docs</a></div>
19
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
20
+ </div></nav>
21
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>docs</div><h1>How it works,<br>slowly.</h1><p class='lede'>New to MCP? Five minutes, top to bottom.</p><div class='cta'></div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
22
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>docs</div><h2>The four-step loop.</h2><div class='doc'><h3>What is this?</h3><p>An MCP server: a program your agent launches over stdio (<code>initialize</code>, <code>tools/list</code>, <code>tools/call</code>). Ours exposes the free Aura catalogue as 19 tools.</p><h3>Loop</h3><ol><li><b>Status</b> (<code>aura_status</code>), <b>search</b> (<code>aura_search_all</code>), <b>fetch</b> (<code>aura_get_*</code>), <b>install</b> (<code>aura_install_*</code>).</li></ol><h3>Free-only</h3><p>Queries filter <code>private=false + premium=false</code>. Pro refused with explanation.</p><h3>Fast</h3><p>48KB bundle, 60s LRU, coalescing, bounded payloads.</p></div></section></div>
23
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
24
+ <script src='./app.js'></script>
25
+ </body>
26
+ </html>
@@ -0,0 +1 @@
1
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>__EYE__</div><h1>__H1__</h1><p class='lede'>__LEDE__</p><div class='cta'>__CTA__</div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
package/flow/how.html ADDED
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>How it works — aura-components-mcp</title>
7
+ <meta name='description' content='Free MCP server for the Aura public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.'>
8
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
9
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
10
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
11
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
12
+ <link rel='stylesheet' href='./styles.css'>
13
+ </head>
14
+ <body>
15
+ <nav class='nav'><div class='nav-in'>
16
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
17
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
18
+ <div class='tabs'><a href='./index.html'>Home</a><a href='./how.html' class='on'>How it works</a><a href='./tools.html'>Tools</a><a href='./compare.html'>Compare</a><a href='./setup.html'>Setup</a><a href='./docs.html'>Docs</a></div>
19
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
20
+ </div></nav>
21
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>how it works</div><h1>Search small. Fetch full.<br>Paste clean.</h1><p class='lede'>Lists stay tiny, details load only for finalists, and the guide turns winners into paste-ready answers.</p><div class='cta'><a class='pill dark' href='./tools.html'>Browse the tools</a><a class='pill ghost' href='./docs.html'>Beginner docs</a></div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
22
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>the loop</div><h2>Four steps, every time.</h2><div class='flow reveal'><div class='fnode' id='n0'><span class='fdot'></span><h3>1 &middot; Agent asks</h3><small>plain words, any client</small></div><div class='wire'><span class='pkt'></span></div><div class='fnode' id='n1'><span class='fdot'></span><h3>2 &middot; MCP searches</h3><small>4 tables in parallel</small></div><div class='wire'><span class='pkt p2'></span></div><div class='fnode' id='n2'><span class='fdot'></span><h3>3 &middot; Agent pastes</h3><small>guide + tokens + files</small></div></div><div class='note'>Beginner rule: status, then search-all, then get-one, then install-one. Never fetch everything up front.</div></section></div>
23
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
24
+ <script src='./app.js'></script>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>aura-components-mcp — free Aura catalogue for every AI agent</title>
7
+ <meta name='description' content='Free MCP server for the Aura public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.'>
8
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
9
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
10
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
11
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
12
+ <link rel='stylesheet' href='./styles.css'>
13
+ </head>
14
+ <body>
15
+ <nav class='nav'><div class='nav-in'>
16
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
17
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
18
+ <div class='tabs'><a href='./index.html' class='on'>Home</a><a href='./how.html'>How it works</a><a href='./tools.html'>Tools</a><a href='./compare.html'>Compare</a><a href='./setup.html'>Setup</a><a href='./docs.html'>Docs</a></div>
19
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
20
+ </div></nav>
21
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>mcp server &middot; stdio &middot; zero dependencies</div><h1>Every free thing on Aura,<br>one call away.</h1><p class='lede'>The whole free Aura catalogue behind 19 tools your agent already knows how to call. No account, no key, no browser tabs.</p><div class='cta'><a class='pill dark' href='./setup.html'>Set up in a minute</a><a class='pill ghost' href='./how.html'>See how it works</a></div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
22
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>start</div><h2>Begin in three clicks.</h2><p class='center muted'><a href='./docs.html'>How it works, slowly</a> &middot; <a href='./tools.html'>Every tool, grouped</a> &middot; <a href='./compare.html'>This vs official</a> &middot; <a href='./setup.html'>Setup in a minute</a></p></section></div>
23
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
24
+ <script src='./app.js'></script>
25
+ </body>
26
+ </html>
@@ -0,0 +1 @@
1
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
@@ -0,0 +1,29 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>Setup — aura-components-mcp in a minute</title>
7
+ <meta name='description' content='Free MCP server for the Aura public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.'>
8
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
9
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
10
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
11
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
12
+ <link rel='stylesheet' href='./styles.css'>
13
+ </head>
14
+ <body>
15
+ <nav class='nav'><div class='nav-in'>
16
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
17
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
18
+ <div class='tabs'><a href='./index.html'>Home</a><a href='./how.html'>How it works</a><a href='./tools.html'>Tools</a><a href='./compare.html'>Compare</a><a href='./setup.html' class='on'>Setup</a><a href='./docs.html'>Docs</a></div>
19
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
20
+ </div></nav>
21
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>setup</div><h1>In your agent<br>in a minute.</h1><p class='lede'>Clone, build, point any client at one file. Nothing to sign up for.</p><div class='cta'></div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
22
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>setup</div><h2>Three commands.</h2><div class='doc'><h3>1 &middot; Clone + build</h3><pre>git clone https://github.com/swastiksingh-dev/Aura-Components-MCP.git
23
+ cd Aura-Components-MCP
24
+ npm run build
25
+ node ./dist/server.js</pre><p>If it prints <code>listening on stdio</code>, it works. Ctrl+C, then register:</p><h3>2 &middot; Register</h3><p><b>Claude Code:</b> <code>claude mcp add aura-components -- node ./dist/server.js</code></p><p><b>OpenCode</b> (<code>opencode.json</code>): <code>{ mcp: { aura-components: { type: local, command: [node, dist/server.js] } } }</code></p><p><b>Cursor / Windsurf:</b> command <code>node</code>, args <code>[dist/server.js]</code></p><p><b>Codex / Cline / Roo:</b> same stdio pair.</p><h3>3 &middot; First prompt</h3><p><code>Check aura_status. Then recommend a starter kit for a dark cinematic portfolio (free only).</code></p><div class='note'>Trouble? <code>npm run verify</code> runs 18 live checks. Zero tools = path not absolute or client needs restart.</div></div></section></div>
26
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
27
+ <script src='./app.js'></script>
28
+ </body>
29
+ </html>
@@ -0,0 +1,7 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>__TITLE__</title>
7
+ <meta name='description' content='__DESC__'>
@@ -0,0 +1,7 @@
1
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
2
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
3
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
4
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
5
+ <link rel='stylesheet' href='./styles.css'>
6
+ </head>
7
+ <body>
@@ -0,0 +1,12 @@
1
+ <nav class='nav'><div class='nav-in'>
2
+ __LOGO__
3
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
4
+ <div class='tabs'>__TABS__</div>
5
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
6
+ </div></nav>
7
+ __HERO__
8
+ __BODY__
9
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
10
+ <script src='./app.js'></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,87 @@
1
+ /* Aether theme part 1: tokens, base, nav */
2
+ *{box-sizing:border-box;margin:0;padding:0}
3
+ :root{--ink:#f4f4f5;--body:#a1a1aa;--mute:#71717a;--hair:rgba(255,255,255,.08);--soft:rgba(255,255,255,.05);--canvas:#050505;--card:#0a0a0a;--link:#818cf8;--nav:rgba(5,5,5,.82);--codebg:#131316;--codeink:#f4f4f5;--acc:#6366f1;--acc2:#a855f7}
4
+ html[data-theme='light']{--ink:#171717;--body:#4d4d4d;--mute:#8f8f8f;--hair:#ebebeb;--soft:#f2f2f2;--canvas:#fafafa;--card:#fff;--link:#4f46e5;--nav:rgba(250,250,250,.88);--codebg:#171717;--codeink:#f4f4f5;--acc:#4f46e5;--acc2:#7c3aed}
5
+ html{scroll-behavior:smooth}
6
+ body{background:var(--canvas);color:var(--ink);font-family:Inter,system-ui,Arial,sans-serif;-webkit-font-smoothing:antialiased}
7
+ .wrap{max-width:1000px;margin:0 auto;padding:0 24px}
8
+ .nav{position:sticky;top:0;z-index:30;background:var(--nav);border-bottom:1px solid var(--hair)}
9
+ .nav-in{max-width:1000px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:12px}
10
+ .mlogo{width:32px;height:32px;flex:none;border-radius:8px}
11
+ .bname{font-size:14px;font-weight:600;letter-spacing:-.2px}
12
+ .bname small{display:block;font-weight:400;color:var(--mute);font-size:12px}
13
+ .tabs{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap}
14
+ .tabs a{color:var(--body);font-size:13px;font-weight:500;padding:8px 11px;border-radius:8px;text-decoration:none}
15
+ .tabs a.on,.tabs a:hover{background:var(--soft);color:var(--ink)}
16
+ .iconbtn{font-size:15px;border:1px solid var(--hair);background:var(--card);color:var(--ink);border-radius:8px;width:36px;height:36px;cursor:pointer;flex:none}
17
+ /* Aether theme part 2: hero, WebGL canvas, stats */
18
+ .hero{position:relative;overflow:hidden;background:#050505;color:#fff}
19
+ .gl{position:absolute;inset:0;width:100%;height:100%;display:block}
20
+ .hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.25),rgba(5,5,5,.78));pointer-events:none}
21
+ .hero-in{position:relative;max-width:1000px;margin:0 auto;padding:96px 24px 72px;text-align:center}
22
+ .eyebrow{font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.65)}
23
+ .sec .eyebrow{color:var(--mute)}
24
+ .hero h1{font-size:clamp(38px,7vw,72px);font-weight:500;line-height:1.02;letter-spacing:-.03em;margin:18px 0;background:linear-gradient(180deg,#fff,#c7d2fe 130%);-webkit-background-clip:text;background-clip:text;color:transparent}
25
+ .lede{font-size:16px;line-height:26px;color:rgba(255,255,255,.72);max-width:560px;margin:0 auto}
26
+ .cta{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
27
+ .pill{font-size:14px;font-weight:500;border-radius:100px;padding:12px 26px;text-decoration:none;font-family:inherit;border:1px solid transparent;cursor:pointer;transition:transform .2s}
28
+ .pill:hover{transform:scale(1.04)}
29
+ .pill.dark{background:#fff;color:#000}
30
+ .pill.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.14)}
31
+ .stats{display:flex;max-width:680px;margin:36px auto 0;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.05);overflow:hidden}
32
+ .stat{flex:1;padding:16px 8px;border-left:1px solid rgba(255,255,255,.1)}
33
+ .stat:first-child{border-left:0}
34
+ .stat b{font-size:20px;display:block}
35
+ .stat span{font-size:12px;color:rgba(255,255,255,.6)}
36
+ /* Aether theme part 3: flow, cards, setup, compare, footer, responsive */
37
+ .sec{padding:72px 0 8px}
38
+ .sec h2{font-size:clamp(26px,4vw,34px);font-weight:600;letter-spacing:-.02em;text-align:center;margin:12px 0 6px}
39
+ .sec h3{font-size:16px;margin:30px 0 4px}
40
+ .center{text-align:center}
41
+ .muted{color:var(--body);font-size:14px;text-align:center;margin-top:10px;line-height:22px}
42
+ .muted a,.doc a{color:var(--link)}
43
+ .flow{display:flex;align-items:stretch;margin:36px 0 8px}
44
+ .fnode{flex:1;background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:22px 14px;text-align:center;position:relative}
45
+ .fnode.live{border-color:var(--acc)}
46
+ .fdot{width:9px;height:9px;border-radius:50%;background:var(--acc);margin:0 auto 10px;animation:pulse 1.8s ease-out infinite}
47
+ @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(99,102,241,.55)}100%{box-shadow:0 0 0 12px transparent}}
48
+ .fnode h3{font-size:14px;margin-bottom:4px}
49
+ .fnode small{font-size:12px;color:var(--mute)}
50
+ .wire{flex:0 0 44px;height:2px;background:var(--hair);position:relative;align-self:center}
51
+ .pkt{position:absolute;top:50%;left:0;width:8px;height:8px;border-radius:50%;background:var(--acc2);transform:translate(-50%,-50%);animation:go 1.6s linear infinite}
52
+ .pkt.p2{animation-delay:.5s}
53
+ @keyframes go{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}
54
+ .tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
55
+ .tcard{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:20px;animation:cardin .5s ease both;transition:transform .2s,border-color .2s}
56
+ .tcard:hover{transform:translateY(-3px);border-color:var(--acc)}
57
+ .tcard:nth-child(3n+2){animation-delay:.05s}
58
+ .tcard:nth-child(3n){animation-delay:.1s}
59
+ @keyframes cardin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
60
+ .tcard code{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--link)}
61
+ .tcard p{font-size:13px;color:var(--body);margin-top:6px;line-height:19px}
62
+ .tcard.new{border-top:3px solid var(--acc)}
63
+ .tcard.new::after{content:'beyond official';font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--mute);display:block;margin-top:10px;text-transform:uppercase;letter-spacing:.06em}
64
+ .sgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
65
+ .scard{border:1px solid var(--hair);border-radius:16px;background:var(--card);padding:20px}
66
+ .scard h3{font-size:14px;margin:0 0 10px}
67
+ .scard pre,.doc pre{background:var(--codebg);color:var(--codeink);border-radius:12px;padding:16px;font-size:12.5px;line-height:20px;overflow-x:auto;font-family:'JetBrains Mono',monospace;white-space:pre-wrap;margin-top:12px}
68
+ .doc h3{font-size:16px}
69
+ .doc p,.doc li{font-size:14px;color:var(--body);line-height:22px}
70
+ .doc ol,.doc ul{margin:10px 0 0 20px;display:grid;gap:6px}
71
+ .doc code{font-family:'JetBrains Mono',monospace;font-size:12px;background:var(--soft);border:1px solid var(--hair);border-radius:6px;padding:1px 7px}
72
+ .note{border:1px solid var(--hair);border-left:4px solid var(--acc);border-radius:8px;background:var(--card);padding:14px 16px;margin-top:16px;font-size:13px;color:var(--body);line-height:20px}
73
+ .cmp{width:100%;border-collapse:collapse;margin-top:24px;font-size:13px;background:var(--card);border:1px solid var(--hair);border-radius:12px;overflow:hidden}
74
+ .cmp th,.cmp td{padding:12px 14px;border-bottom:1px solid var(--hair);text-align:left;vertical-align:top}
75
+ .cmp th{font-size:11px;font-family:'JetBrains Mono',monospace;text-transform:uppercase;color:var(--mute)}
76
+ .cmp tr:last-child td{border-bottom:0}
77
+ .cmp td.yes{color:#4ade80;font-weight:600}
78
+ .cmp td.no{color:var(--mute)}
79
+ footer{border-top:1px solid var(--hair);margin-top:72px}
80
+ .foot-in{max-width:1000px;margin:0 auto;padding:32px 24px;display:flex;gap:20px;font-size:14px;color:var(--body);flex-wrap:wrap}
81
+ .foot-in a{color:var(--body);text-decoration:none}
82
+ .foot-in .sp{margin-left:auto}
83
+ .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
84
+ .reveal.in{opacity:1;transform:none}
85
+ @media(max-width:820px){.hero-in{padding:72px 20px 56px}.flow{flex-direction:column;gap:12px}.fnode{width:100%}.wire{width:2px;height:36px;flex:none;margin:0 auto}.pkt{top:0;left:50%;animation-name:godown}@keyframes godown{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:100%;opacity:0}}.tgrid,.sgrid{grid-template-columns:1fr}.tabs a{padding:8px 8px;font-size:12px}.stats{flex-wrap:wrap}.stat{flex:1 1 40%}.stat:nth-child(3){border-left:0}}
86
+ @media(prefers-reduced-motion:reduce){.pkt,.fdot,.tcard,.reveal{animation:none;transition:none}.reveal{opacity:1;transform:none}}
87
+ .logo-anim .lg-n{transform-box:fill-box;transform-origin:center;animation:lgpulse 2.2s ease-in-out infinite}.logo-anim .lg-n2{animation-delay:.3s}.logo-anim .lg-n3{animation-delay:.6s}.logo-anim .lg-n4{animation-delay:.9s}@keyframes lgpulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.75}}.logo-anim .lg-bar{stroke-dasharray:160;stroke-dashoffset:160;animation:lgdraw 2.4s ease forwards}@keyframes lgdraw{to{stroke-dashoffset:0}}.logo-anim .lg-a{opacity:0;animation:lgfade .8s ease .2s forwards}@keyframes lgfade{to{opacity:.95}}@media(prefers-reduced-motion:reduce){.logo-anim .lg-n,.logo-anim .lg-bar,.logo-anim .lg-a{animation:none}}
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html lang='en' data-theme='dark'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>Tools — aura-components-mcp</title>
7
+ <meta name='description' content='Free MCP server for the Aura public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.'>
8
+ <link rel='icon' href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Crect width='500' height='500' rx='110' fill='%2309090b'/%3E%3Cpath d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='%23a855f7'/%3E%3Cpath d='M 180 290 L 320 290' stroke='%2338bdf8' stroke-width='14' stroke-linecap='round'/%3E%3Ccircle cx='250' cy='110' r='16' fill='white'/%3E%3Ccircle cx='130' cy='330' r='16' fill='%236366f1'/%3E%3Ccircle cx='370' cy='330' r='16' fill='%23ec4899'/%3E%3Ccircle cx='250' cy='290' r='11' fill='%2338bdf8'/%3E%3C/svg%3E">
9
+ <link rel='preconnect' href='https://fonts.googleapis.com'>
10
+ <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
11
+ <link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' rel='stylesheet'>
12
+ <link rel='stylesheet' href='./styles.css'>
13
+ </head>
14
+ <body>
15
+ <nav class='nav'><div class='nav-in'>
16
+ <svg class='mlogo logo-anim' viewBox='0 0 500 500' role='img' aria-label='AURA.MCP logo'><defs><radialGradient id='lg_bg' cx='50%' cy='50%' r='50%'><stop offset='0%' stop-color='#1e1b4b' stop-opacity='.6'/><stop offset='100%' stop-color='#09090b' stop-opacity='1'/></radialGradient><linearGradient id='lg_aura' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#6366f1'/><stop offset='50%' stop-color='#a855f7'/><stop offset='100%' stop-color='#ec4899'/></linearGradient><linearGradient id='lg_node' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' stop-color='#38bdf8'/><stop offset='100%' stop-color='#818cf8'/></linearGradient></defs><rect width='500' height='500' rx='110' fill='url(#lg_bg)'/><path class='lg-a' d='M 250 110 L 370 330 L 310 330 L 250 210 L 190 330 L 130 330 Z' fill='url(#lg_aura)' opacity='.95'/><path class='lg-bar' d='M 180 290 L 320 290' stroke='url(#lg_node)' stroke-width='14' stroke-linecap='round' fill='none'/><circle class='lg-n lg-n1' cx='250' cy='110' r='16' fill='#fff'/><circle class='lg-n lg-n2' cx='130' cy='330' r='16' fill='#6366f1'/><circle class='lg-n lg-n3' cx='370' cy='330' r='16' fill='#ec4899'/><circle class='lg-n lg-n4' cx='250' cy='290' r='11' fill='#38bdf8'/><text x='250' y='415' font-family='Inter,Arial,sans-serif' font-size='34' font-weight='700' fill='#fff' text-anchor='middle'>AURA<tspan fill='#a855f7'>.MCP</tspan></text></svg>
17
+ <div class='bname'>aura-components-mcp<small>by swastiksingh-dev &middot; free only &middot; no login</small></div>
18
+ <div class='tabs'><a href='./index.html'>Home</a><a href='./how.html'>How it works</a><a href='./tools.html' class='on'>Tools</a><a href='./compare.html'>Compare</a><a href='./setup.html'>Setup</a><a href='./docs.html'>Docs</a></div>
19
+ <button class='iconbtn' id='themeBtn' title='Toggle dark mode'>&#9788;</button>
20
+ </div></nav>
21
+ <header class='hero'><canvas class='gl' aria-hidden='true'></canvas><div class='hero-shade'></div><div class='hero-in'><div class='eyebrow'>19 tools</div><h1>Every tool. Grouped by job.</h1><p class='lede'>Start at Find. Drill into one surface. Install only the winner. New badge = goes past reading.</p><div class='cta'></div><div class='stats'><div class='stat'><b>2,495</b><span>components</span></div><div class='stat'><b>187</b><span>skills</span></div><div class='stat'><b>30,688</b><span>assets</span></div><div class='stat'><b>725</b><span>systems</span></div></div></div></header>
22
+ <div class='wrap'><section class='sec'><div class='eyebrow center'>tools</div><h2>Grouped, not dumped.</h2><h3>Find</h3><div class='tgrid'><div class='tcard reveal'><code>aura_status</code><p>Health + live free counts. Start here.</p></div><div class='tcard reveal'><code>aura_search_all</code><p>All four surfaces in parallel.</p></div><div class='tcard reveal'><code>aura_recommend</code><p>Starter kit for a goal sentence.</p></div><div class='tcard new reveal'><code>aura_trending</code><p>Last-7-days leaders, one call.</p></div><div class='tcard new reveal'><code>aura_categories</code><p>13 categories, live free counts.</p></div></div><h3>Components</h3><div class='tgrid'><div class='tcard reveal'><code>aura_search_components</code><p>By text, category, theme, sort.</p></div><div class='tcard reveal'><code>aura_get_component</code><p>Full markup, style, preview.</p></div><div class='tcard new reveal'><code>aura_install_component</code><p>Paste plan: scripts, fonts, steps.</p></div></div><h3>Skills</h3><div class='tgrid'><div class='tcard reveal'><code>aura_search_skills</code><p>Metadata: title, source, views.</p></div><div class='tcard reveal'><code>aura_get_skill</code><p>The whole SKILL.md body.</p></div><div class='tcard new reveal'><code>aura_install_skill</code><p>Where to save SKILL.md.</p></div></div><h3>Assets + systems</h3><div class='tgrid'><div class='tcard reveal'><code>aura_search_assets</code><p>Images and clips by keyword.</p></div><div class='tcard reveal'><code>aura_install_asset</code><p>Legal drop-in plan + license flag.</p></div><div class='tcard reveal'><code>aura_search_design_systems</code><p>DESIGN.md metadata first.</p></div><div class='tcard reveal'><code>aura_get_design_system</code><p>Full DESIGN.md plus preview.</p></div><div class='tcard new reveal'><code>aura_use_design_system</code><p>Token starter CSS + copy order.</p></div></div><h3>One-turn builds</h3><div class='tgrid'><div class='tcard new reveal'><code>aura_bundle</code><p>Bulk-fetch up to 8 details.</p></div><div class='tcard new reveal'><code>aura_scaffold_page</code><p>Tokens + system + markup, ordered.</p></div><div class='tcard new reveal'><code>aura_related</code><p>More-like-this, never dead-ends.</p></div></div></section></div>
23
+ <footer><div class='foot-in'><span><b>aura-components-mcp</b> by swastiksingh-dev</span><span class='sp'></span><a href='https://github.com/swastiksingh-dev/Aura-Components-MCP'>GitHub</a><a href='https://www.aura.build/components'>Aura</a></div></footer>
24
+ <script src='./app.js'></script>
25
+ </body>
26
+ </html>
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "aura-components-mcp",
3
+ "version": "1.5.2",
4
+ "description": "Free-only MCP server for the Aura (aura.build) public catalogue: 2,495 components, 187 skills, 30,688 assets, 725 design systems. No login. Built by swastiksingh-dev.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "swastiksingh-dev",
8
+ "bin": {
9
+ "aura-components-mcp": "dist/server.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "flow",
14
+ "README.md",
15
+ "SETUP.md",
16
+ "LICENSE"
17
+ ],
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/swastiksingh-dev/aura-components-mcp.git"
21
+ },
22
+ "homepage": "https://github.com/swastiksingh-dev/aura-components-mcp",
23
+ "bugs": {
24
+ "url": "https://github.com/swastiksingh-dev/Aura-Components-MCP/issues"
25
+ },
26
+ "scripts": {
27
+ "build": "node ./scripts/build.mjs",
28
+ "start": "node ./dist/server.js",
29
+ "test": "node --test ./test/*.test.mjs",
30
+ "verify": "node ./scripts/verify.mjs"
31
+ },
32
+ "engines": {
33
+ "node": ">=18"
34
+ },
35
+ "keywords": [
36
+ "mcp",
37
+ "model-context-protocol",
38
+ "model-context-protocol-server",
39
+ "mcp-server",
40
+ "aura",
41
+ "aura.build",
42
+ "components",
43
+ "tailwind",
44
+ "tailwindcss",
45
+ "skills",
46
+ "ai-agents",
47
+ "claude-code",
48
+ "cursor",
49
+ "opencode",
50
+ "design-system",
51
+ "landing-page"
52
+ ]
53
+ }