ui-registry-mcp
This server provides coding agents with live access to shadcn-style UI component registries, enabling them to discover, fetch, compare, and validate open-source UI components.
List Registries (
list_registries): Discover available component libraries (e.g., ReUI ~1534 components, Kokonut UI ~40, Kibo UI ~41), including their IDs, names, and homepages.Search Components (
search_components): Perform synonym-aware, token-ranked searches across all or specific libraries (e.g., "modal" finds "dialog"). Returns lightweight results filterable by type (ui,block,component,hook) and optionally restricted to verified/installable components only.Get Component (
get_component): Fetch the full, current source code of a specific component, including file contents, npm and registry dependencies, and the exactnpx shadcn addinstall command.Compare Components (
compare_components): For a given UI intent (e.g., "pricing table"), fetch the best match from each library side by side, showing dependencies, file count, lines of code, install command, and source previews — so you can pick the best implementation.Check Consistency (
check_consistency): Analyze a set of components for design clashes, including inconsistent border-radius, hardcoded colors vs. theme tokens (with suggested remappings liketext-zinc-900 → text-foreground), missing dark-mode variants, arbitrary spacing/font values, and conflicting icon or animation libraries — with concrete per-component fix suggestions.
Click on "Deploy 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., "@ui-registry-mcp Search for pricing components across all registries"
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.
ui-registry-mcp
Coding agents are great at logic and not so good at taste. Ask one to build a pricing page and it'll hand-roll a flat, generic card from memory - when there are thousands of beautiful, open-source components sitting one fetch away that too built by people who are great UI/UX experts.
This is an MCP server that closes that gap. It plugs into Claude Code, Cursor, Windsurf, or any MCP client and lets the agent reach into 12 real component libraries — search them, pull the actual source, compare options, and check that everything looks like it belongs together — while you stay in your editor.
The idea is simple: the agent keeps the judgment (what to use, how to compose, what to tweak). The libraries keep the craft. This server is just the bridge.
Quick start
No cloning, no build. Point your MCP client at the published package:
{
"mcpServers": {
"ui-registry": {
"command": "npx",
"args": ["-y", "ui-registry-mcp"]
}
}
}(In Claude Code you can also just run claude mcp add ui-registry -- npx -y ui-registry-mcp.)
Then ask for UI as:
"Build a cool pricing section - look across the libraries and pick the best component or tweaking them makes up a great pricing page."
"Add a data table and make sure it matches the card above."
Behind the scenes the agent searches, compares, pulls real code into your project, and does a quick design-consistency pass before it's done. It'll also tell you which library each piece came from, so you can credit and inspect the original.
Related MCP server: shadcn-ui-mcp-server
What's inside
Twelve libraries, roughly 3,700 components, all fetched live — so you always get the current version, never a stale copy.
Library | Components | Notes |
~1,534 | Huge range; some blocks are paid — the server filters those out | |
~1,066 | Large set, leans web3/DeFi | |
~116 free | Animated, 3D, bento; most of its catalog is Pro | |
~210 | Marketing sections — hero, pricing, testimonials | |
~157 | Design-engineer components with motion | |
~107 | Micro-interactions | |
~79 | Accessible, built on Base UI | |
~77 | Vercel's chat / AI-native components (Apache-2.0) | |
~64 | Motion toolkit | |
~41 | Data-heavy — tables, kanban, gantt | |
~40 | Flashy standalone cards | |
~26 | Animated layouts |
Everything the server hands you is openly licensed and free for commercial
use — MIT across the board, except Vercel's AI Elements, which is Apache-2.0
(keep its license notice when you ship). A couple of libraries (ReUI, Aceternity)
also list premium components in their catalog — those quietly fail to install.
You don't have to think about it: ask for verified results and the server only
returns things you can actually use. Still, check a library's own license before
you ship.
Adding another library is one entry in src/registries.ts
if it exposes a standard shadcn registry — nothing else changes.
The tools
Six tools, meant to be used roughly in this order:
list_registries— what libraries are available, with their licenses and any "heads up, this one has paid components" notes.search_components— describe what you want in plain words. It understands synonyms (ask for a "modal", it finds "dialog"), and returns just names and one-line descriptions so it never dumps a wall of code into the conversation. Addverifiedwhen you only want components that are actually installable.compare_components— the same idea (say, a "pricing table") pulled from every library at once, side by side, so the agent picks the best one instead of the first one.get_component— the real source for one component: every file, its dependencies, the exactnpx shadcn addcommand, and where it came from.check_consistency— the part that makes mixed components feel like one design. It reads the actual code and flags the little clashes — one component rounds its corners more than another, one hardcodeszinc-900where the rest use your theme, one forgot dark mode — and suggests the fix for each.list_components— the full directory, every component with its direct URL, if you want to browse or link to sources.
Under the hood
If you just want to use it, everything above is enough. What follows is the how and the why — for the curious, and for anyone thinking about contributing.
The design decisions
A few choices worth explaining, because they're the difference between a demo and something you'd actually keep installed:
It fetches live instead of mirroring. These libraries ship updates constantly. A cached copy would rot; pulling from each registry's own endpoint means you always get today's version. A short in-memory cache keeps it snappy within a session.
It's honest about paid components. Rather than let the agent confidently pick something that 401s on install, premium items are flagged up front and filterable. Nothing worse than an agent that recommends what it can't deliver.
Consistency is the real value, not just fetching. Anyone can wrap a registry. The thing that actually makes agent-built UI look designed is catching the token/spacing/radius drift when you mix sources — so that's a first-class tool, not an afterthought.
It gives credit. Every component comes back with its source URL and a ready-to-show attribution line, and the agent is told to pass that on. You should always know whose work you're building on.
One dead library can't sink a search. Requests retry on hiccups, and a registry being down just drops it from the results instead of failing the whole call.
Local development
npm install
npm run build
npm test # spins up the server and exercises every tool end-to-end
npm run smoke # quick check that all the registries are reachable
npm run catalog # dump the whole directory to catalog.jsonRoadmap — honest about what's next
It's genuinely useful today, but two things would take it further, and both are real projects rather than quick wins:
Visual previews. You pick UI with your eyes, and right now the agent picks from text. The catch: these libraries don't expose preview images consistently, so doing this properly means rendering and screenshotting components — infrastructure, not a config flag.
Meaning-based search. Search understands synonyms today, but not intent like "something friendly for an onboarding screen." Real embeddings would fix that.
Feedback & contributing
This exists so an agent can build UI that doesn't look like every other agent's UI — and it gets better every time someone actually uses it and tells me what broke or what was missing. If you hit a rough edge, have a feature idea, or know a library that belongs in here, please open an issue. I genuinely want to hear it.
Pull requests are very welcome — especially new registries (usually a
few-line addition in src/registries.ts) and better
consistency checks. See CONTRIBUTING.md to get set up, and
CHANGELOG.md for what's changed. If it saved you some time, a ⭐
on the repo means a lot and helps other people find it.
A real thank-you to the teams behind the libraries this stands on — ReUI, Aceternity, Tailark, Cult UI, SmoothUI, Optics, beUI, Kibo, Kokonut, useLayouts, Watermelon — and to the shadcn registry ecosystem that makes them all fit together. This is a bridge to their craft; none of it works without them.
MIT licensed.
Available Tools
5 toolscheck_consistencyCheck design consistency across componentsA
Given a set of components (from get_component / search results), statically analyze their source for design clashes when mixed together: inconsistent border-radius scales, hardcoded colors vs theme tokens, missing dark-mode variants, and conflicting icon/animation libraries. Returns findings with concrete pointers so you can normalize the UI before shipping. Run this after assembling components from different libraries.
Inputs: components (required).
compare_componentsCompare a component across librariesA
For a given intent (e.g. 'pricing table', 'date picker'), fetch the single best match from EACH library and return them side by side: dependencies, file count, lines of code, install command, and a source preview. Use this to choose the nicest implementation instead of taking the first search hit.
Inputs: query (required), registries.
get_componentGet a component's real sourceA
Fetch the full, current source of one component from a specific library: file contents, npm dependencies, registry dependencies, and the exact install command. Use this after search_components. The returned source is real code you can drop into the project and edit freely.
Inputs: name (required), registry (required).
list_registriesList component registriesA
List the component libraries this server can pull from (id, name, homepage). Call this first to see what is available.
Inputs: no named parameters.
search_componentsSearch components across librariesA
Search all configured component libraries (or one) for components matching a natural-language query, e.g. 'pricing table', 'date picker', 'sidebar'. Synonym-aware: 'modal' also finds 'dialog', 'dropdown' finds 'select', etc. Returns a ranked, lightweight list (registry, name, type, title, description) — NOT the source. Pick the best match, then call get_component to fetch its real code.
Inputs: query (required), type, limit, registry.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: listing registries, searching components, fetching full component source, comparing alternatives across libraries, and checking design consistency. No two tools overlap in functionality.
All tool names follow a consistent verb_noun pattern with underscores (e.g., list_registries, search_components, get_component, compare_components, check_consistency). There is no mixing of naming conventions.
With 5 tools, the surface is well-scoped for the server's purpose: discover libraries, search and retrieve components, compare options, and validate consistency. Each tool earns its place without being excessive or insufficient.
The tool set covers the full workflow from listing registries to searching, retrieving, comparing, and checking consistency. There are no obvious gaps for the intended use case of exploring and integrating UI components from multiple registries.
Related MCP Connectors
Search, read and install ReUI shadcn components, examples, blocks and icons from your coding agent.
Search shadcn registry items, read props and get exact install commands for React components.
Find React UI components, read their docs, and get shadcn install commands.
Search, read and install agent-ready React components, screens and blocks for AI products.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides AI assistants with direct access to shadcn/ui components and blocks, enabling real-time fetching of component source code, documentation, and implementation examples.415 npm4-
- AlicenseAqualityDmaintenanceProvides AI assistants with comprehensive access to shadcn/ui v4 components, blocks, demos, and metadata across React, Svelte, Vue, and React Native, enabling efficient component integration and code generation.107,100 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to search across 340+ React UI registries, inspect component code and quality scores, compare options, detect a project's stack, and generate or execute safe transactional install plans. It provides read and write safeguards with dry-run planning and rollback.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search a fully local catalog of 21st-style shadcn components via full-text search, inspect individual records, generate reusable build prompts, retrieve install steps, and fetch design tokens for aesthetic keywords. Runs entirely offline over stdio with no API keys, paywalls, or rate limits.Apache 2.0