Rakit UI AI

Rakit UI AI

Enables AI assistants to present multiple UI component designs in a browser for visual selection, with AI-powered design generation using MiniMax-M2.1 from natural language prompts or manual HTML input.

Category
Visit Server

README

Rakit UI AI - MCP Design Selection Tool

An intelligent UI component design selection tool built on the Model Context Protocol (MCP). This tool allows AI assistants to present multiple UI component designs in a browser interface for user selection. NEW: Now includes AI-powered design generation using MiniMax-M2.1 API!

Quick Start

Install Rakit UI AI globally and start using it immediately:

# Install globally
npm install -g rakitui-ai

# Set your MiniMax API key (required for AI design generation)
export MINIMAX_API_KEY="your-api-key-here"

# Run the MCP server
rakitui-ai

The tool will start an MCP server that you can connect to from your AI assistant (like Claude Desktop, Cursor IDE, etc.).

AI-Powered Design Generation

NEW FEATURE: Rakit UI AI now includes AI-powered design generation using MiniMax-M2.1! Simply describe what you need in natural language, and the tool will generate 3 distinct, production-ready designs for you to choose from.

Setup

  1. Get your MiniMax API key from platform.minimax.io

  2. Set the environment variable:

    export MINIMAX_API_KEY="your-api-key-here"
    
  3. That's it! The tool will automatically use the MiniMax API when you provide a prompt.

Usage with AI Generation

// Just describe what you need - the tool generates designs for you!
const result = await tool.execute({
  prompt: "Create 3 modern button designs for a SaaS dashboard",
  style_preference: "clean and professional",
  framework: "tailwind"
});

// Get your selection
console.log(result.selectedDesign); // "Modern Gradient Button"
console.log(result.selectedDesignHtml); // Complete HTML code

The tool will:

  1. Call MiniMax-M2.1 with your prompt
  2. Generate 3 distinct design variations
  3. Open them in your browser for selection
  4. Return your chosen design with full HTML code

Using in IDEs

Cursor IDE Setup

Option 1: Settings UI (Recommended)

  1. Open Cursor Settings:

    • Press Cmd+, (Mac) or Ctrl+, (Windows/Linux)
    • Or click the settings icon in the bottom-left corner
  2. Navigate to MCP Settings:

    • In the left sidebar, click on "MCP" (or search for "MCP" in the search bar)
  3. Add Rakit UI AI:

    • Click the "Add New MCP Server" button
    • Enter the following:
      • Server Name: rakitui-ai
      • Command: rakitui-ai
      • Environment Variables (optional): Add MINIMAX_API_KEY if you want AI-powered generation
  4. Restart Cursor:

    • Close and reopen Cursor, or click the "Restart MCP Servers" button if available
  5. Start Using:

    • The tool will be available as mcp_rakit-ui-ai_designselection
    • Ask Claude: "Show me 3 different button designs"
    • Or: "Create a card component for a user profile"

Option 2: JSON Configuration File

  1. Open Cursor Settings:

    • Press Cmd+, (Mac) or Ctrl+, (Windows/Linux)
    • Click the settings icon and select "Open Settings (JSON)" (or search for "MCP" and click "Edit in JSON")
  2. Add the MCP Server: Add this to your settings.json file:

    {
      "mcpServers": {
        "rakitui-ai": {
          "command": "rakitui-ai"
        }
      }
    }
    

    With MiniMax API Key (optional - for AI generation):

    {
      "mcpServers": {
        "rakitui-ai": {
          "command": "rakitui-ai",
          "env": {
            "MINIMAX_API_KEY": "your-api-key-here"
          }
        }
      }
    }
    
  3. Save and Restart:

    • Save the file (Cmd+S or Ctrl+S)
    • Restart Cursor

How to Use in Cursor

Once configured, you can use the tool in the Cursor chat:

Example 1 - AI Generation (with MiniMax API):

User: Create 3 button designs for my SaaS dashboard

Claude: I'll generate some button designs for you using the Rakit UI AI tool.

[Claude calls mcp_rakit-ui-ai_designselection with prompt]
[Browser opens with 3 design options]
[User clicks to select]

Claude: You selected the "Modern Gradient Button"! Here's the HTML code:
<button class="bg-gradient-to-r from-blue-500 to-blue-600 ...">Click me</button>

Example 2 - Manual Input:

User: Show me 3 card designs

Claude: Let me create 3 card design options for you.

[Claude calls mcp_rakit-ui-ai_designselection with HTML designs]
[Browser opens with 3 design options]
[User clicks to select]

Claude: You selected the "Featured Card"! Here's the code:
<div class="card featured">...</div>

Available Commands:

  • Keyboard shortcuts: Press 1, 2, or 3 to select a design
  • Zoom: Click on any design to see it larger
  • Copy code: Click the copy button to copy the HTML

Troubleshooting Cursor Setup

Problem: "Command not found" or "rakitui-ai not found"

Solution:

  • If installed globally, make sure npm global bin is in your PATH
  • Or use the full path: /usr/local/bin/rakitui-ai (Mac) or C:\Users\[you]\AppData\Roaming\npm\rakitui-ai.cmd (Windows)
  • For local development, use the full path to your project: /path/to/rakitui-ai/dist/index.js

Problem: Tool not appearing in chat

Solution:

  • Restart Cursor completely
  • Check that the MCP server is running (look for green indicator in MCP settings)
  • Try removing and re-adding the server

Problem: MiniMax API not working

Solution:

  • Verify your API key is correct
  • Ensure MINIMAX_API_KEY environment variable is set
  • Check your MiniMax account has credits available

Claude Desktop Setup

  1. Add to MCP Configuration: Edit your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

    {
      "mcpServers": {
        "rakitui-ai": {
          "command": "rakitui-ai"
        }
      }
    }
    
  2. Restart Claude Desktop and start using the design selection tool

Other IDEs

For any IDE that supports MCP:

  • Use command: rakitui-ai
  • The tool will be available as mcp_rakit-ui-ai_designselection

Installation Options

Option 1: Global Installation (Recommended)

npm install -g rakitui-ai
rakitui-ai

Option 2: Local Development

# Clone the repository
git clone [repository-url]
cd rakitui-ai

# Install dependencies
npm install --legacy-peer-deps

# Build the project
npm run build

# Start the server
npm start

Features

Core Functionality

  • Visual Design Comparison: Display three UI component designs side-by-side in a modern, responsive interface
  • Real-time Selection: WebSocket support for instant feedback when a design is selected
  • Enhanced Response Data: Returns not just the selection, but also the HTML code and metadata
  • AI-Powered Generation (NEW): Generate designs from natural language prompts using MiniMax-M2.1

User Experience Improvements

  • Keyboard Shortcuts: Press 1, 2, or 3 for quick selection
  • Click to Zoom: Click on any design to see it in a larger view
  • Code Preview: Toggle between visual and code view for each design
  • Copy to Clipboard: One-click copy of design HTML code
  • Mobile Responsive: Works seamlessly on all device sizes
  • Smooth Animations: Polished UI with fade-ins, slides, and transitions

Technical Features

  • WebSocket Communication: Real-time bidirectional communication replaces polling
  • Security: Basic XSS prevention and input validation
  • Connection Status: Visual indicator showing WebSocket connection state
  • Local Storage: Remembers last selection for reference
  • Error Handling: Graceful error recovery with user feedback
  • MiniMax API Integration: AI-powered design generation with token usage tracking

Supported CSS Frameworks

  • Tailwind CSS
  • Bootstrap
  • Bulma
  • Foundation
  • Semantic UI
  • Plain CSS / Inline styles

Supported Component Types

  • Buttons (primary, secondary, outlined, with icons)
  • Cards (content, featured, compact)
  • Form Inputs (underlined, bordered, filled)
  • Navigation Bars (standard, centered, full-featured)
  • Modal Dialogs (standard, confirmation, form)
  • Data Tables (simple, striped, data-dense)

Usage

Two Ways to Use Rakit UI AI

Option 1: AI-Powered Generation (NEW!)

Describe what you need, and MiniMax-M2.1 will generate 3 distinct designs:

// Simple example
const result = await tool.execute({
  prompt: "Create 3 modern button designs for a SaaS dashboard"
});

// Detailed example with all options
const result = await tool.execute({
  prompt: "Design a product card for an e-commerce site with image, title, price, and Add to Cart button",
  style_preference: "modern and sleek",
  framework: "bootstrap",
  component_type: "card"
});

console.log(result.selectedDesign); // Selected design name
console.log(result.selectedDesignHtml); // Complete HTML code
console.log(result.generation); // Generation metadata including model, tokens used, etc.

Example Prompts:

  • "Create 3 button designs for a SaaS dashboard"
  • "Design a login form with email and password fields"
  • "Show me 3 navigation bar styles for an e-commerce site"
  • "Create a pricing card with monthly and yearly options"
  • "Design a modal dialog for user confirmation"

Option 2: Manual Design Input

Provide your own pre-generated designs:

const result = await tool.execute({
  design_name_1: "Tailwind Button",
  design_html_1: `<button class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 transition">Click me</button>`,
  
  design_name_2: "Bootstrap Button", 
  design_html_2: `<button class="btn btn-primary">Click me</button>`,
  
  design_name_3: "Minimal Button",
  design_html_3: `<button class="px-4 py-2 border border-gray-300 rounded hover:bg-gray-50">Click me</button>`
});

console.log(result.selectedDesign); // "Bootstrap Button"
console.log(result.selectedDesignHtml); // The HTML code

That's it! The tool automatically:

  • Detects CSS frameworks (Tailwind, Bootstrap, etc.)
  • Adapts layout based on component complexity
  • Provides click-to-zoom and keyboard shortcuts
  • Shows beautiful, isolated previews
  • Returns the selected design with full details
  • Generates designs from prompts using AI (when prompt is provided)

How to Use in Practice

Once configured in your IDE, simply ask your AI assistant to create design options:

Example prompts:

  • "Show me 3 different card designs for a user profile"
  • "Create 3 navigation bar options with different styles"
  • "Give me 3 button variants: primary, secondary, and outlined"
  • "Show me 3 different pricing table designs"

What happens:

  1. If you provide a prompt, the AI generates 3 different designs
  2. If you provide designs directly, those are used
  3. Tool opens in your browser automatically
  4. You see all designs side-by-side
  5. Click your favorite (or press 1, 2, 3)
  6. AI gets your choice and can continue with that design

Features at a Glance

Feature Description
šŸŽÆ Smart Layout Gallery view for complex components, card view for simple ones
šŸ›”ļø CSS Isolation No style conflicts between different frameworks
šŸ“± Mobile Ready Touch-friendly interface with responsive design
āŒØļø Keyboard Shortcuts Press 1, 2, or 3 for instant selection
šŸ” Zoom View Click any design to see it larger
šŸ“‹ Copy Code One-click copy of selected HTML

Manual MCP Server Mode

If you prefer to run the server manually (for development or custom setups):

  1. Start the MCP server:

    npx rakitui-ai
    # OR after global install:
    rakitui-ai
    
  2. Configure your MCP client to connect via stdio

  3. Use the tool: The AI can now present UI design options and receive your selections

šŸ’” Tip: For most users, the IDE configuration above is much easier than manual server mode.

Testing

Run the test script to see the tool in action:

npm test

This will:

  • Start the MCP server
  • Send a test request with three card designs
  • Open a browser window for selection
  • Display the enhanced response with selected design details

API

Tool Name: designselection

Input Parameters

AI-Powered Generation (Prompt-Based)

Parameter Type Description
prompt string Natural language description of the UI component to generate (e.g., "Create 3 modern button designs for a SaaS dashboard")
style_preference string (optional) Style guidance (e.g., "modern and clean", "playful", "minimalist")
framework string (optional) Target CSS framework (tailwind, bootstrap, bulma, foundation, semantic ui, css). Defaults to "tailwind"
component_type string (optional) Component type hint (button, card, form, navigation, modal, table)

Manual Input (Legacy)

Parameter Type Description
design_name_1 string Name of the first design
design_html_1 string HTML content of the first design
design_name_2 string Name of the second design
design_html_2 string HTML content of the second design
design_name_3 string Name of the third design
design_html_3 string HTML content of the third design

Response

{
  "success": true,
  "message": "Great choice! You selected: [Design Name]",
  "url": "http://localhost:3000/design-selection",
  "design_options": [
    { "name": "Design 1", "description": "Option 1", "selected": true, "preview": "..." },
    { "name": "Design 2", "description": "Option 2", "selected": false, "preview": "..." },
    { "name": "Design 3", "description": "Option 3", "selected": false, "preview": "..." }
  ],
  "selectedDesign": "Design Name",
  "selectedDesignHtml": "<div>...</div>",
  "selectionTimestamp": "2024-01-15T10:30:00.000Z",
  "selectionDuration": 5234,
  "generation": {
    "model": "MiniMax-M2.1",
    "prompt_used": "Create 3 button designs...",
    "framework": "tailwind",
    "tokens_used": 1234,
    "generation_time_ms": 5234
  },
  "next_steps": [
    "Copy the selected HTML code from the 'selectedDesignHtml' field",
    "Integrate the design into your project",
    "Run the tool again to compare more design variations"
  ]
}

MiniMax API Integration

To use the AI-powered design generation:

  1. Get an API Key: Visit MiniMax Developer Platform to create an account and get your API key

  2. Set Environment Variable:

    export MINIMAX_API_KEY="your-api-key-here"
    
  3. Usage: Simply provide a prompt parameter instead of manual design HTML

Note: The API key is stored securely in your environment variable and is never logged or exposed.

Architecture

rakitui-ai/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts                    # MCP server entry point
│   ā”œā”€ā”€ tools/
│   │   ā”œā”€ā”€ DesignselectionTool.ts  # Main tool implementation (supports both workflows)
│   │   ā”œā”€ā”€ templates/
│   │   │   └── designSelection.ts  # HTML template generator for browser UI
│   │   ā”œā”€ā”€ utils/
│   │   │   ā”œā”€ā”€ serverUtils.ts      # Server and WebSocket utilities
│   │   │   └── minimaxClient.ts    # MiniMax API client for AI design generation
│   │   └── prompts/
│   │       └── designPrompts.ts    # Prompt engineering templates for AI generation
ā”œā”€ā”€ dist/                           # Compiled JavaScript
ā”œā”€ā”€ tmp/                            # Temporary files and logs
└── .cursorrules/                   # Development guidelines

New AI Integration Layer

The MiniMax API integration adds two new modules:

  1. minimaxClient.ts: Handles communication with MiniMax API

    • API endpoint: https://api.minimax.io/v1
    • Authentication via MINIMAX_API_KEY environment variable
    • Error handling and retry logic
    • Response parsing for design JSON
  2. designPrompts.ts: Contains optimized prompts for different component types

    • System prompt establishing UI/UX expertise
    • Component-specific prompt templates (buttons, cards, forms, etc.)
    • Framework-specific guidelines (Tailwind, Bootstrap, etc.)
    • Design quality checklist for AI instructions

Development

Building

# Build once
npm run build

# Watch mode for development
npm run watch

Debugging

  • Check tmp/debug.log for server-side logs
  • Check tmp/selection.log for selection history
  • Browser console shows client-side WebSocket activity
  • MiniMax API calls are logged with timing and token usage

Testing MiniMax Integration

# Set your API key first
export MINIMAX_API_KEY="your-api-key-here"

# Run the MiniMax integration test
npm run test:minimax

# Or test manually
node test-minimax-integration.js

Adding New Features

  1. Update the HTML template in src/tools/templates/designSelection.ts
  2. Add server-side logic in src/tools/utils/serverUtils.ts
  3. Enhance the response format in src/tools/DesignselectionTool.ts
  4. Add new prompt templates in src/tools/prompts/designPrompts.ts
  5. Build and test your changes

Security Considerations

  • Input validation prevents XSS attacks
  • Design names are sanitized before display
  • Script tags and JavaScript URLs are blocked
  • WebSocket messages are validated

Browser Compatibility

  • Chrome/Edge: Full support
  • Firefox: Full support
  • Safari: Full support
  • Mobile browsers: Full support with touch gestures

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please read the development guidelines in .cursorrules/development-guide.mdc before submitting PRs.


šŸ‘Øā€šŸ’» Hire Me

I'm open to work and available for new opportunities!

Hi! I'm the creator of this MCP Design Selection Tool. I specialize in building innovative developer tools, AI integrations, and modern web applications. If you're looking for someone who can:

  • šŸ¤– Build AI-powered tools and MCP servers
  • ⚔ Create modern, responsive web applications
  • šŸ› ļø Develop developer experience tools
  • šŸŽØ Design intuitive user interfaces
  • šŸ“± Build cross-platform solutions

I'd love to hear about your project!

šŸ“§ Contact Information

šŸ’¼ What I Can Help With

  • Custom MCP server development
  • AI tool integration and automation
  • Modern web application development
  • Developer experience improvements
  • Technical consulting and architecture

Feel free to reach out – I'm always excited to work on interesting projects!


Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured