Shadcn Registry Sync
БесплатноНе проверенAutomates shadcn/ui registry maintenance by scanning your project, detecting components and dependencies, and generating a production-ready registry.json with a
Описание
Automates shadcn/ui registry maintenance by scanning your project, detecting components and dependencies, and generating a production-ready registry.json with a single AI command.
README
Automate your shadcn/ui registry maintenance with AI-powered precision
TypeScript MCP shadcn/ui Commitizen Code Style
✨ Why This Tool?
Tired of manually updating registry.json every time you create a new component?
shadcn-registry-sync-mcp is an intelligent MCP server that automatically scans your project, detects components, analyzes dependencies, and generates a production-ready registry.json — all with a single command to your AI assistant.
🎯 What You Get
| Before | After |
|---|---|
| ❌ Manual registry updates | ✅ One-command sync |
| ❌ Missing dependencies | ✅ Auto-detected deps |
| ❌ Inconsistent metadata | ✅ Smart descriptions |
| ❌ Error-prone copy-paste | ✅ 100% automated |
🚀 Quick Start
1. Install & Build
yarn install
yarn build
2. Configure Your MCP Client
Add to your MCP configuration (e.g., claude_desktop_config.json):
{
"mcpServers": {
"shadcn-registry-sync": {
"command": "node",
"args": ["/path/to/shadcn-registry-sync-mcp/dist/index.js"],
"cwd": "/path/to/shadcn-registry-sync-mcp"
}
}
}
3. Use with Your AI Assistant
Simply tell your AI:
"Sync my shadcn registry"
Or:
"Update registry.json for my project at /path/to/project"
That's it! ✨
🎁 Features
🔍 Intelligent Scanning
Automatically discovers components in:
src/components/*— UI componentssrc/features/*— Feature modules (layouts, components, models)src/hooks/*— Custom React hookssrc/lib/*— Utility librariessrc/types/*— TypeScript definitions
🧠 Smart Dependency Analysis
// Your component
import { Button } from '@/components/button';
import { Slot } from '@radix-ui/react-slot';
// Auto-detected:
// - registryDependencies: ["@shadcn-ui/button"]
// - dependencies: ["@radix-ui/react-slot"]
📝 Auto-Generated Descriptions
The tool analyzes your source code to generate meaningful descriptions:
// DialogDeleteUser.tsx
/**
* Confirmation dialog for deleting users
*/
export function DialogDeleteUser() { ... }
// → description: "Confirmation dialog for deleting users"
Pattern Recognition:
dialog-delete-*→ "Confirmation dialog for deleting *"drawer-configure-*→ "Configuration drawer for *"chart-trend-*→ "Trend line chart visualization"*-models→ "Data models, types, and API service functions"
🎯 shadcn/ui Compatible
Output follows the official shadcn/ui registry schema:
{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "shadcn-ui",
"homepage": "https://ui.shadcn.com",
"items": [
{
"name": "button",
"type": "registry:component",
"title": "Button",
"description": "A reusable button component",
"files": [...],
"dependencies": ["@radix-ui/react-slot"],
"registryDependencies": ["@shadcn-ui/icon"]
}
]
}
💡 Use Cases
For Component Library Maintainers
Keep your registry in sync with zero effort:
Developer: "I just added 5 new components to src/components"
AI: "I'll sync the registry for you."
→ registry.json updated automatically
For Large Projects
Handle complex feature-based architectures:
src/features/
├── auth/
│ ├── components/
│ │ ├── dialog-login/
│ │ └── dialog-otp/
│ ├── layouts/
│ │ └── login-page-layout/
│ └── models/
└── report/
└── components/
└── chart-trend-double-line/
→ All detected and categorized correctly
For Teams
Ensure consistent registry structure across the team:
No more:
- "Who forgot to update the registry?"
- "Why are dependencies missing?"
- "Why does this component break when installed?"
🛠️ Manual Usage
Run standalone without MCP:
# Set project root
export PROJECT_ROOT=/path/to/your/project
# Run sync
node run-local.js
Output:
[run-local] Project root: /path/to/your/project
[run-local] Scanning...
[run-local] Found 42 items
[run-local] Building registry...
[run-local] Written to /path/to/your/project/registry.json
📊 What Gets Synced?
| Type | Directory | Registry Type | Example |
|---|---|---|---|
| Components | src/components/* |
registry:component |
button, card, dialog |
| Blocks | src/features/* |
registry:block |
layouts, multi-file components |
| Hooks | src/hooks/* |
registry:hook |
use-mobile, use-debounce |
| Libraries | src/lib/* |
registry:lib |
utils, axios, storage |
| Types | src/types/*.d.ts |
registry:file |
tanstack-table, zod-schema |
🔧 Configuration
Customize Scan Directories
Edit src/constants.ts:
export const COMPONENT_DIRS = ['src/components', 'src/ui', 'src/shared'];
export const FEATURE_DIR = 'src/features';
export const HOOKS_DIR = 'src/hooks';
export const LIB_DIR = 'src/lib';
export const TYPES_DIR = 'src/types';
Skip Patterns
export const SKIP_FILE_PATTERNS = [
/\.stories\.tsx?$/, // Storybook
/\.test\.tsx?$/, // Tests
/\.spec\.tsx?$/, // Specs
];
export const LIB_SKIP_DIRS = ['storybook', 'docs'];
Dependency Filters
export const FRAMEWORK_DEPS = new Set([
'react',
'react-dom',
'react-router',
// These won't be tracked as dependencies
]);
🏗️ Architecture
For detailed architecture documentation, see ARCHITECTURE.md.
Key Modules:
- scanner.ts — Discovers components in your project
- parser.ts — Analyzes imports and classifies dependencies
- builder.ts — Constructs shadcn-compatible registry
- describer.ts — Generates smart descriptions from source code
🧪 Development
Build
npm run build
Watch Mode
npm run dev
Test Locally
# Point to your project
export PROJECT_ROOT=/path/to/test/project
node run-local.js
# Verify output
cat registry.json | jq '.items | length'
📝 Example Output
After running sync, your registry.json will look like:
{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "shadcn-ui",
"homepage": "https://ui.shadcn.com",
"items": [
{
"name": "utils",
"type": "registry:lib",
"title": "Utils",
"description": "General utility functions including className merging (cn) and common helper methods",
"files": [
{
"type": "registry:lib",
"path": "src/lib/utils.ts"
}
]
},
{
"name": "use-mobile",
"type": "registry:hook",
"title": "useMobile",
"description": "React hook for detecting mobile viewport. Returns a boolean indicating whether the current screen width is below the mobile breakpoint",
"files": [
{
"type": "registry:hook",
"path": "src/hooks/use-mobile.ts"
}
],
"dependencies": ["react"]
},
{
"name": "button",
"type": "registry:component",
"title": "Button",
"description": "A reusable button component built on Radix UI Slot",
"files": [
{
"type": "registry:component",
"path": "src/components/button/index.tsx"
}
],
"dependencies": ["@radix-ui/react-slot", "class-variance-authority"],
"registryDependencies": ["@shadcn-ui/icon"]
}
]
}
🛠️ Development
Setup Development Environment
Clone and install:
git clone https://github.com/your-org/shadcn-registry-sync-mcp.git cd shadcn-registry-sync-mcp yarn installBuild the project:
yarn buildRun linter:
yarn lintFormat code:
yarn format
Available Scripts
| Command | Description |
|---|---|
yarn build |
Compile TypeScript to JavaScript |
yarn dev |
Watch mode for development |
yarn lint |
Run ESLint |
yarn lint:fix |
Auto-fix ESLint errors |
yarn format |
Format code with Prettier |
yarn format:check |
Check code formatting |
yarn check |
Run both lint and format check |
yarn commit |
Interactive commit with Commitizen |
Commit Guidelines
This project uses Commitizen for standardized commit messages:
yarn commit
This will launch an interactive prompt that helps you create commits following the Conventional Commits specification.
Commit types:
feat: New featuresfix: Bug fixesdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringperf: Performance improvementstest: Adding testsbuild: Build system changesci: CI/CD changeschore: Maintenance tasksrevert: Reverting changes
Pre-commit hooks automatically run linting and formatting on staged files using Husky and lint-staged.
📝 Contributing
We welcome contributions! Please see our Contributing Guide for details on:
- Development setup
- Code standards
- Commit message format
- Pull request process
- Testing guidelines
🤝 Contributing
Contributions are welcome! See our Architecture Guide for understanding the codebase.
Quick Contribution Guide
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Build and test:
yarn build && node run-local.js - Commit and push
- Open a Pull Request
📄 License
MIT License — feel free to use in your projects!
🙏 Acknowledgments
- shadcn/ui — Amazing component library
- Model Context Protocol — AI integration standard
- Radix UI — Accessible primitives
Made with ❤️ for the shadcn/ui community
Установка Shadcn Registry Sync
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/dianramdhani/shadcn-registry-sync-mcpFAQ
Shadcn Registry Sync MCP бесплатный?
Да, Shadcn Registry Sync MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Shadcn Registry Sync?
Нет, Shadcn Registry Sync работает без API-ключей и переменных окружения.
Shadcn Registry Sync — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Shadcn Registry Sync в Claude Desktop, Claude Code или Cursor?
Открой Shadcn Registry Sync на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
автор: passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
автор: dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
автор: NOVA-3951PIX4Dmatic
Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
автор: jangjo123Compare Shadcn Registry Sync with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории design
