component-builder-mcp-server
Generates custom React components following Shadcn UI standards with TypeScript, Tailwind CSS, and accessibility support.
README
Component Builder MCP Server
MCP server for generating custom components based on Shadcn UI standards and criteria.
Features
- šØ Generate custom React components following Shadcn/UI patterns
- š TypeScript support with proper type definitions
- šÆ Tailwind CSS integration with class variance authority
- ā Component validation and standards checking
- š Template-based generation system
- āæ Accessibility-first approach
- š Comprehensive validation with suggestions
Installation
npm install
npm run build
Usage
As MCP Server
The server runs via stdio and can be integrated with MCP-compatible clients:
npm start
Testing
Run the built-in tests to verify functionality:
npm test
Available Tools
š§ generate_component
Create a new component based on specifications with:
- Component type selection (button, input, card, modal, etc.)
- Custom props definition
- Styling and accessibility configuration
- Size and variant options
ā validate_component
Check if a component follows Shadcn standards:
- TypeScript validation
- Accessibility compliance
- Performance suggestions
- Code quality checks
š list_component_types
Get available component types and templates with:
- Detailed descriptions
- Available variants
- Usage examples
š get_component_template
Retrieve specific component template information:
- Template structure
- Configuration options
- Implementation examples
šÆ generate_component_examples
Generate usage examples for component types:
- Basic usage patterns
- Advanced configurations
- Real-world scenarios
Component Types
| Type | Description | Variants |
|---|---|---|
button |
Interactive button with multiple styles | default, destructive, outline, secondary, ghost, link |
input |
Form input with proper styling | default |
card |
Flexible card with header/content/footer | default |
modal |
Modal dialog with Radix UI primitives | default |
dropdown |
Dropdown menu with keyboard navigation | default |
form |
Form components with validation | default |
navigation |
Navigation menus and breadcrumbs | default |
layout |
Layout components for page structure | default |
data-display |
Tables, lists, and data components | default |
feedback |
Alerts, notifications, and feedback | default |
custom |
Flexible custom component type | configurable |
Component Standards
This server follows Shadcn/UI standards including:
⨠Code Quality
- Proper TypeScript typing with generics
- React.forwardRef for ref handling
- DisplayName for debugging
- Consistent naming conventions (PascalCase)
šØ Styling
- Tailwind CSS classes with semantic tokens
- Class Variance Authority for variant handling
cn()utility for className composition- Consistent color schemes and sizing
āæ Accessibility
- ARIA attributes and roles
- Keyboard navigation support
- Focus management and visible focus indicators
- Semantic HTML elements
ā” Performance
- Optimized re-rendering patterns
- Proper memoization usage
- Component size considerations
- Efficient prop handling
Example Usage
Generate a Custom Button
{
"name": "SubmitButton",
"type": "button",
"description": "Form submission button with loading state",
"variant": "default",
"size": "lg",
"props": [
{
"name": "loading",
"type": "boolean",
"required": false,
"description": "Show loading spinner"
}
],
"children": true,
"accessibility": {
"ariaLabel": "Submit form"
}
}
Validate Component Code
{
"componentCode": "your-component-code-here",
"strict": true
}
Configuration
Example MCP client configuration:
{
"mcpServers": {
"component-builder": {
"command": "node",
"args": ["/path/to/component-builder-mcp-server/dist/index.js"],
"description": "Component Builder MCP Server"
}
}
}
Development
Project Structure
src/
āāā index.ts # Main MCP server
āāā types/
ā āāā component.ts # TypeScript type definitions
āāā templates/
ā āāā *.hbs # Handlebars templates
ā āāā index.ts # Template registry
āāā utils/
ā āāā generator.ts # Component generation logic
ā āāā validator.ts # Component validation
ā āāā helpers.ts # Utility functions
examples/
āāā basic-usage.md # Basic usage examples
āāā advanced-usage.md # Advanced examples
āāā api-reference.md # Complete API documentation
test/
āāā basic-test.js # Integration tests
Building
npm run build # Build TypeScript and copy templates
npm run dev # Watch mode for development
Testing
npm test # Run integration tests
Contributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Update documentation
- Submit a pull request
License
MIT License - see LICENSE file for details.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.