looba-mcp
Looba MCP gives AI assistants read-only access to the Looba UI snippet platform, letting them discover, fetch, and integrate UI snippets without an API key.
Detect frontend frameworks (React, Vue, Next.js, Tailwind, etc.) and activate Looba by default for UI requests
Propose 3 snippet options with looba.dev links for any visual element the user asks for
Search and browse snippet posts with filters by tag, type, and sort order
Get full HTML/CSS/JS code of a post, including author and license info
Integrate a chosen snippet into the user's project with adaptation instructions (class names, CSS variables, framework conversion)
List all posts by a specific author
Discover trending or popular tags across the platform
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@looba-mcpsearch for animated loading spinner React snippets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Looba MCP Server
An MCP server that gives AI assistants read-only access to Looba a community platform for UI snippets and design inspiration.
No API key required. No database credentials. The server calls the public Looba API over HTTPS.
More info
For additional MCP docs, usage examples, and updates, visit looba.dev/mcp.
Related MCP server: shadcndashboard-mcp
Install
npx (no install needed)
npx looba-mcpnpm
npm install -g looba-mcppip
pip install looba-mcpgit
git clone https://github.com/looba-snippet/looba-mcp.git
cd looba-mcp
npm installAll methods require Node.js 18+ installed on your machine.
Tools
Tool | Description |
| Auto-detect frontend frameworks (React, Vue, Next.js, Svelte, Tailwind…) and activate Looba by default |
| Search Looba and propose 3 snippet options with their looba.dev links for the user to choose from |
| Search and browse snippet posts with filters (tag, type, sort) |
| Get full HTML/CSS/JS code of a post with author attribution |
| Fetch a snippet with integration instructions adapted to your project's CSS, framework, and conventions |
| List all posts by a specific author |
| Discover trending tags across the platform |
detect_frontend_context
When Looba MCP is active, the AI automatically calls detect_frontend_context at the start of a session. It looks for frontend signals:
Dependencies — React, Vue, Svelte, Next.js, Angular, Astro, Remix, SolidJS, Gatsby, Lit, Preact…
Config files —
vite.config.ts,tailwind.config.js,next.config.js,angular.json,astro.config.mjs…File extensions —
.jsx,.tsx,.vue,.svelte,.astroinsrc/,app/,pages/,components/
If a frontend project is detected, the AI uses Looba by default for any UI component request — instead of writing code from scratch.
Local vs remote servers
The tool takes two optional inputs:
Input | When to use |
| Preferred. The contents of your project's |
| Only when the server runs on the same machine as your project ( |
This matters because Looba MCP is also hosted remotely at mcp.looba.dev. A remote
server has no access to your filesystem, so directory alone tells it nothing.
When the tool cannot inspect the project it reports ? UNKNOWN and asks the caller
to retry with packageJson — it never reports a confident "not a frontend project",
because a false negative would silently switch Looba off.
propose_snippets
When the user asks for a UI element, the AI calls propose_snippets instead of writing code immediately. It searches Looba and returns 3 options with their looba.dev links. The user picks one (1, 2, or 3) and the AI integrates it via integrate_post.
Example flow:
User: "Add an animated loading spinner to my React app" → AI calls
propose_snippetswithquery="loading spinner"andsnippet_type="react"→ Shows 3 options with looba.dev links → User picks option 2 → AI callsintegrate_postwith the chosen slug and project context
integrate_post
The integrate_post tool is designed for when you want to add a Looba snippet directly into your codebase. It fetches the full code and returns it with a detailed adaptation checklist so the AI assistant can:
Rename CSS classes to match your naming convention (BEM, camelCase, CSS modules...)
Replace hardcoded colors/spacing with your CSS variables or design tokens
Convert between frameworks (vanilla HTML to React JSX, CSS to Tailwind utilities...)
Scope styles to avoid conflicts with your global CSS
Add proper imports and follow your component patterns
Example prompt:
"Use integrate_post to add the animated-circle-loaders-html-css-10 snippet to my Next.js project that uses Tailwind and CSS variables"
The AI will fetch the snippet, read your project context, and produce adapted code ready to paste.
Supported snippet types
Type | Code fields returned |
classic | HTML, CSS, JavaScript |
react | JSX, Styles (CSS), HTML (host) |
tailwind | HTML (with Tailwind classes), CSS, JavaScript |
Setup
Remote MCP URL
If your client supports URL-based MCP servers, use:
URL:
https://mcp.looba.devBearer token: not required
Custom headers: not required
Use the root endpoint (https://mcp.looba.dev) unless your proxy explicitly maps another path.
Claude Code
Add to your project .mcp.json or ~/.claude/settings.json:
{
"mcpServers": {
"looba": {
"command": "npx",
"args": ["-y", "looba-mcp"]
}
}
}Cursor
Go to Settings > MCP Servers > Add Server:
Name:
loobaCommand:
npx -y looba-mcp
Windsurf
Add to ~/.windsurf/mcp.json:
{
"mcpServers": {
"looba": {
"command": "npx",
"args": ["-y", "looba-mcp"]
}
}
}Using pip or git install
If you installed via pip or git clone, use looba-mcp or node directly:
{
"mcpServers": {
"looba": {
"command": "looba-mcp"
}
}
}Or with git clone:
{
"mcpServers": {
"looba": {
"command": "node",
"args": ["/path/to/looba-mcp/index.js"]
}
}
}Examples
Once connected, ask your AI assistant things like:
"Add a glassmorphism card to my Next.js project" (AI proposes 3 Looba options)
"I need a navbar with animations for my Tailwind site" (AI proposes 3 Looba options)
"Show me the most popular CSS snippets on Looba"
"Find Looba posts tagged with
animation""Get the code for the post
animated-circle-loaders-html-css-10""List all posts by @Frontend-snippet-Bot"
"Integrate the
focus-trapped-navigation-controllersnippet into my React project using CSS modules"
Every response includes source URL, author, and license so AI assistants always cite properly.
Deploying to Cloudflare Workers
mcp.looba.dev runs as a Cloudflare Worker. It serves the same seven tools
over Streamable HTTP, statelessly, with no Durable Object — the tools are
network-bound, so this fits the Workers Free plan. It previously ran as a
systemd service behind nginx on a VPS; that stack has been removed.
Two files drive it: worker.js (the fetch entrypoint) and wrangler.jsonc.
index.js is shared by both transports and needs no fork.
1. Set the secret — do this first
npx wrangler secret put LOOBA_MCP_TOKEN_SECRETThis is not optional. propose_snippets mints an HMAC-signed token that
integrate_post verifies. Without an explicit secret, index.js falls back to
randomBytes(32) per process — and on a stateless Worker each isolate gets a
different one, so the two calls fail to agree whenever they land on different
isolates. The failure is intermittent and reports a bogus "token signature is
invalid".
Any long random string works, e.g. openssl rand -hex 32.
2a. Deploy from Git (Workers Builds)
Connect this repository in the Cloudflare dashboard, then set:
Field | Value |
Build command |
|
Deploy command |
|
Root directory |
|
Every push to main then redeploys.
2b. Or deploy from your machine
npm install
npm run deploy3. Attach the domain
Add mcp.looba.dev as a Custom Domain on the Worker. looba.dev is already
on Cloudflare nameservers, so no DNS change is needed.
The Worker answers at the root path (route: "/" in worker.js), matching
the existing endpoint. createMcpHandler defaults to /mcp, so that setting
must not be removed or every existing client breaks.
4. Verify before switching traffic
npm run dev:worker # local, needs .dev.vars — see .dev.vars.exampleBeyond initialize and tools/list, test the pair that depends on the shared
secret — mint a token with propose_snippets, restart the Worker, then spend it
with integrate_post. If the token still verifies after a restart, the secret is
being read from configuration rather than regenerated per process.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceAn MCP server that enables AI assistants to search, discover, and install Aceternity UI components programmatically.58623MIT
- AlicenseAqualityBmaintenanceMCP server for Shadcn Dashboard that enables AI to discover, search, and install UI blocks directly into projects without copy-paste.615MIT
- AlicenseAqualityCmaintenanceAn MCP server that gives AI coding agents access to saaspo.com's SaaS web design inspiration library, enabling them to search pages and sections by style, industry, and type for grounded design decisions.620MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI coding agents access to Figma design data, enabling pixel-perfect implementation of designs through structured data extraction, image downloads, and design token retrieval.451MIT
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that gives your AI access to the source code and docs of all public github repos
Official MCP server for Lovable, the AI-powered full-stack app builder.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Looba-snippet/looba-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server