How Community Registries Work
shadcn v4 supports custom registries via the "registries" field in components.json. Any registry that implements the shadcn registry protocol can be added. The official registry directory at https://ui.shadcn.com/r/registries.json contains 267 registries (Aug 2026) — always up to date.
The CLI can install from any registry without configuration:
npx shadcn@latest add @magicui/shimmer-button
The CLI also installs straight from public GitHub repos — no build step, just a registry.json at the repo root:
npx shadcn@latest add <user>/<repo>/<item>
GitHub registries work with list, search, view, and add. Registries additionally support server-side dynamic search (?q=&limit=&offset=), which powers shadcn search.
But the official shadcn MCP server only searches registries listed in components.json. To enable MCP-assisted search across all registries, populate them from the official endpoint.
Dynamic Registry Source
The authoritative list of all shadcn-compatible registries:
https://ui.shadcn.com/r/registries.json
Returns a JSON array. Each entry has:
name— Registry identifier (e.g.,"@magicui")url— Registry endpoint with{name}placeholder (e.g.,"https://magicui.design/r/{name}.json")homepage— Project websitedescription— Brief description
Always fetch this endpoint instead of using a hardcoded list — it's maintained by the shadcn team and always current.
Search Workflow
1. User describes what they need ("animated button", "pricing section", "chat component")
↓
2. Fetch https://ui.shadcn.com/r/registries.json — scan descriptions for matches
↓
3. Consult references/community-registries.md for category-based recommendations
↓
4. Check user's components.json — are registries configured?
If not → run /add-registries to populate all registries
↓
5. Use MCP tools to search, or install directly via CLI
↓
6. Install: npx shadcn@latest add @[registry]/[component]
↓
7. Verify the component renders correctly
Adding Registries to components.json
Add all registries (recommended)
Use the /add-registries command to fetch all 260+ registries from the official endpoint and add them to components.json automatically.
Add a handful natively
The CLI's native method (supersedes hand-editing):
npx shadcn registry add @magicui=https://magicui.design/r/{name} @coss=https://coss.com/ui/r/{name}.json
Registry authors can check their registry with npx shadcn registry validate.
Or manually:
Fetch the registry list:
curl -s https://ui.shadcn.com/r/registries.jsonFor each entry, add to
components.json"registries"field using thenameas key andurlas value:{ "registries": { "@magicui": "https://magicui.design/r/{name}.json", "@aceternity": "https://ui.aceternity.com/r/{name}.json" } }Merge with existing registries — do not overwrite the
"registries"object, add to it.
Add a single registry
{
"registries": {
"@registryname": "https://domain.com/r/{name}.json"
}
}
Installing from a Community Registry
# Install a single component
npx shadcn@latest add @magicui/shimmer-button
# Install multiple components from the same registry
npx shadcn@latest add @magicui/shimmer-button @magicui/animated-beam @magicui/globe
# Install from different registries in one command
npx shadcn@latest add @magicui/shimmer-button @aceternity/moving-border
# Force overwrite existing files
npx shadcn@latest add @magicui/shimmer-button --overwrite
The CLI auto-resolves registry URLs. Even without components.json configuration, the CLI can install from any known registry by name.
MCP-Assisted Search
Two MCP servers are configured in this plugin's .mcp.json:
| Server | What It Searches | Best For |
|---|---|---|
shadcn (official) |
All registries in components.json |
Finding components across configured registries |
shadcn-community (Jpisnice) |
shadcn/ui GitHub repo via list_components, get_component, get_component_demo, get_component_metadata, list_blocks, get_block, get_directory_structure; plus tweakcn theme tools list_themes, get_theme, apply_theme (writes theme files, supports dryRun) |
Browsing component source code, demos, block implementations; applying tweakcn themes |
Dual search strategy
- Official MCP searches all configured registries — add community registries to
components.jsonto expand its scope - Jpisnice MCP searches the shadcn/ui GitHub repository for component source, demos, and blocks — useful for understanding how components work before installing
For projects that want both MCPs, copy the template from references/mcp-config-template.json to the project's .mcp.json.
Jpisnice MCP rate limits
Without a GitHub token: 60 requests/hour. With a token: 5000/hour.
To add a token:
claude mcp add shadcn-community -- npx -y @jpisnice/shadcn-ui-mcp-server --github-api-key ghp_YOUR_TOKEN
Or set GITHUB_PERSONAL_ACCESS_TOKEN in the MCP server's env config. Create a fine-grained token with no special permissions (public repo access only).
Registry Categories
| Category | Registries | Component Types |
|---|---|---|
| Animation & Motion | @magicui, @aceternity, @animate-ui, @cult-ui, @motion-primitives, @chamaac | Animated buttons, scroll effects, parallax, globe, beams |
| Extended UI | @coss (ex-Origin UI), @diceui, @basecn, @8bitcn, @boldkit, @8starlabs-ui, @cardcn | Extra components, retro/pixel style, card variants, dice rolls |
| Blocks & Sections | @bundui, @blocks-so, @efferd, @doras-ui, @creative-tim | Landing page sections, marketing blocks, dashboards |
| E-Commerce | @commercn | Product cards, cart, checkout, reviews |
| AI Components | @ai-elements, @assistant-ui, @tool-ui, @ai-blocks | Chat bubbles, prompt inputs, AI response streams, LLM UIs |
| File Upload | @better-upload | Upload components, drag-and-drop, progress indicators |
| Editors & misc | @plate, @shadcn-editor, @kibo-ui, @kokonutui, @reui, @intentui, @tailark, @retroui, @neobrutalism, @smoothui, @skiper-ui, @hextaui, @paceui, @clerk, @supabase | Rich text editors, design-system kits, auth/backend UIs |
| Other | @arc, @abui, @aevr, @unlumen-ui, @einui, @billingsdk | Specialized UI, billing forms, misc |
See references/community-registries.md for the full list with URLs and descriptions.
Full directory (267 registries): https://ui.shadcn.com/docs/directory
CLAUDE.md Section for User Projects
When setting up a project with community registries, add the section from references/claude-md-section.md to the project's CLAUDE.md. This ensures Claude always searches registries before building components from scratch.
Verifying a Registry Works
Test that a registry URL is correct by installing a known component:
# Install a component from the registry
npx shadcn@latest add @magicui/shimmer-button
# If the install succeeds, the registry URL is correct
# If it fails, check the registry's documentation for the correct URL pattern
The standard URL convention is https://domain.com/r/{name} but some registries may differ. The CLI auto-resolves known registry names — if @registryname/component works, the URL is valid.
What This Skill Does NOT Cover
- Standard shadcn/ui and shadcn studio components — see
component-registryskill - Initial shadcn/ui project setup — see
setupskill - MCP server configuration details — see
mcp-toolsskill - Theme customization — see
theme-configurationskill