component-builder-mcp-server

Anurag7376/component-builder-mcp-server

3.2

If you are the rightful owner of component-builder-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Component Builder MCP Server is designed to generate custom React components following Shadcn UI standards, with a focus on accessibility, performance, and code quality.

Tools
5
Resources
0
Prompts
0

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

TypeDescriptionVariants
buttonInteractive button with multiple stylesdefault, destructive, outline, secondary, ghost, link
inputForm input with proper stylingdefault
cardFlexible card with header/content/footerdefault
modalModal dialog with Radix UI primitivesdefault
dropdownDropdown menu with keyboard navigationdefault
formForm components with validationdefault
navigationNavigation menus and breadcrumbsdefault
layoutLayout components for page structuredefault
data-displayTables, lists, and data componentsdefault
feedbackAlerts, notifications, and feedbackdefault
customFlexible custom component typeconfigurable

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

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Update documentation
  5. Submit a pull request

License

MIT License - see LICENSE file for details.