ui-registry-mcp
Provides coding agents live access to shadcn-style component registries, enabling them to search, compare, and fetch real component source code for UI composition.
README
ui-registry-mcp
An MCP server that gives coding agents (Claude Code, Cursor, Windsurf, …) live access to shadcn-style component registries so they compose UI from real, polished open-source components instead of rebuilding them from scratch.
The agent stays in charge of judgment — what to use, how to compose, what to edit. This server just hands it the raw material at the moment it asks, and flags design clashes before they ship.
The loop
"build a pricing page"
→ search_components("pricing") # ranked matches across all libraries (no source)
→ compare_components("pricing table") # best match from each library, side by side
→ get_component("reui", "form-12") # the REAL .tsx source + deps + install cmd
→ agent uses / edits it in your project
→ check_consistency([...]) # radius / color-token / dark-mode / dep clashes
Libraries (live)
| id | name | source | approx. components |
|---|---|---|---|
reui |
ReUI | https://reui.io | ~1534 |
kokonut |
Kokonut UI | https://kokonutui.com | ~40 |
kibo |
Kibo UI | https://www.kibo-ui.com | ~41 |
Add more in src/registries.ts — one entry per shadcn
registry, nothing else changes.
Origin UI is intentionally not enabled:
originui.comserves an HTML app page (Vercel deployment protection) for every/r/*.jsonpath rather than registry JSON, so there is no public static endpoint to fetch. Revisit if they publish a JSON registry or CDN mirror.
Tools
| tool | what it does |
|---|---|
list_registries |
The libraries available (id, name, homepage). |
search_components(query, registry?, type?, verified?, limit?) |
Token-ranked, synonym-aware cross-library search (modal→dialog, dropdown→select, …). Returns names + one-liners, not source, so it never floods context. type filters to ui / block / component / hook (ui spans single components across libraries). verified:true fetch-checks results and returns only installable ones (drops premium/gated items — slower). Empty result = []. |
get_component(registry, name) |
Full current source (file contents), npm + registry dependencies, and the exact npx shadcn add … command. |
compare_components(query, registries?) |
The best match for an intent from each library, side by side: deps, file count, LOC, install command, source preview — so the agent picks the nicest, not the first. |
check_consistency(components[]) |
⭐ Static design-clash analysis across a mixed set: inconsistent border-radius scales, hardcoded colors vs theme tokens (with auto-suggested remappings like text-zinc-900 → text-foreground), dark-mode risk (only flags components that hardcode colors and lack dark: — token-based ones count as dark-capable), arbitrary spacing/font values off the scale, and conflicting icon/animation libs. Findings come with concrete per-component pointers. |
Connect to Claude Code
Published (recommended) — no clone, no build. Add to .mcp.json in your
project (or run claude mcp add ui-registry -- npx -y ui-registry-mcp):
{
"mcpServers": {
"ui-registry": {
"command": "npx",
"args": ["-y", "ui-registry-mcp"]
}
}
}
From a local clone (for development):
{
"mcpServers": {
"ui-registry": {
"command": "node",
"args": ["/absolute/path/to/ui-registry-mcp/dist/index.js"]
}
}
}
Then just ask, e.g.:
- "Build a pricing section using components from the registry — compare options across libraries first."
- "Add a data table from the registry and check it's design-consistent with the card above."
The agent will search, (compare,) fetch real source, edit as needed, and run a consistency pass.
Local development
npm install
npm run build
npm test # full MCP handshake + assertions across all 5 tools
npm run smoke # hits the registries, prints index sizes + a sample fetch
How it works
- Live fetch with a small in-process TTL cache (
UI_REGISTRY_TTL_MS, default 5 min) — no maintained local mirror; every value comes from the registry JSON. - Resilient: transient/5xx failures retry with backoff (
UI_REGISTRY_RETRIES, default 2); a single dead registry can't break a cross-library search. - Browser-like
User-Agentgets past most bot-blocking. - Premium components: some registries list pro/gated components in their index
that return
401when fetched (e.g. many reuistats-*,faq-*,form-*, bare-named blocks; free examples are usuallyc-*-prefixed).get_componentreports these clearly, andsearch_components(..., verified:true)filters them out so the agent only sees installable results.
Next steps
- Add more registries (Aceternity, Magic UI, Cult UI, …) — one entry each.
check_consistency: a "scan my local project" mode (audit already-installed files).- Embedding-based search (beyond the curated synonym list) for fuzzier intents.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.