Skip to main content
Glama

MCP Color Server

A comprehensive DeveloperTools Server and MCP that provides advanced color manipulation, palette generation, gradient creation, and visualization capabilities to AI applications.

Features

  • Comprehensive Color Format Support: Convert between 22+ formats including HEX, RGB, HSL, HSV, HWB, CMYK, LAB, XYZ, LCH, OKLAB, OKLCH, and named colors

  • Framework Integration: Native support for CSS variables, SCSS, Tailwind classes, Swift UIColor, Android Color, and Flutter Color formats

  • High-Precision Conversion: Configurable precision up to 10 decimal places for scientific and professional applications

  • Palette Generation: Create harmonious color palettes based on color theory principles

  • Gradient Creation: Generate linear, radial, and conic gradients with advanced interpolation

  • Accessibility Compliance: WCAG 2.1 AA/AAA contrast checking and colorblind simulation

  • Dual Background Visualization: Create interactive HTML and high-quality PNG visualizations with both light and dark background variants

  • Export Formats: Generate CSS, SCSS, Tailwind CSS, and JSON exports for seamless integration

  • Theme Generation: Generate complete design system themes with semantic color mapping

  • Performance Optimized: Sub-100ms response times for all color operations with intelligent caching

Related MCP server: MCP Color Converter

Installation

Prerequisites

  • Node.js 20.0.0 or higher

  • npm or yarn package manager

Install Dependencies

npm install

Development Setup

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Lint code
npm run lint

# Format code
npm run format

Usage

As an MCP Server

The color server implements the Model Context Protocol and can be used with any MCP-compatible client.

Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "color": {
      "command": "node",
      "args": ["path/to/mcp-color-server/dist/index.js"]
    }
  }
}

Available Tools

  • convert_color: Convert colors between different formats

  • analyze_color: Analyze color properties (brightness, contrast, temperature)

  • generate_harmony_palette: Create color palettes based on harmony principles

  • generate_gradient: Create CSS gradients with advanced options

  • check_contrast: Verify WCAG accessibility compliance

  • create_palette_html: Generate interactive HTML visualizations

  • create_palette_png: Generate high-quality PNG images

  • export_css: Generate modern CSS with custom properties and utility classes

  • export_scss: Generate SCSS variables, maps, and mixins

  • export_tailwind: Generate Tailwind CSS configuration and utility classes

  • export_json: Generate JSON format for programmatic use and API integration

API

MCP Protocol

The server implements the Model Context Protocol (MCP) specification and provides the following endpoints:

Tool Discovery

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

Tool Execution

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "convert_color",
    "arguments": {
      "color": "#FF0000",
      "output_format": "hsl"
    }
  }
}

Response Format

All tools return responses in this standardized format:

{
  "success": true,
  "data": {
    "converted": "hsl(0, 100%, 50%)",
    "original": "#FF0000"
  },
  "metadata": {
    "execution_time": 15,
    "color_space_used": "sRGB",
    "accessibility_notes": [],
    "recommendations": []
  },
  "visualizations": {
    "html": "<!DOCTYPE html>...",
    "png_base64": "iVBORw0KGgoAAAANSUhEUgAA..."
  },
  "export_formats": {
    "css": ":root { --color: #FF0000; }",
    "scss": "$color: #FF0000;",
    "tailwind": "{ colors: { custom: '#FF0000' } }",
    "json": { "hex": "#FF0000", "rgb": "rgb(255, 0, 0)" }
  }
}

Supported Color Formats

Input Formats

The MCP Color Server accepts colors in any of these formats:

Standard Web Formats

  • HEX: #FF0000, #F00, FF0000, F00

  • RGB: rgb(255, 0, 0), 255, 0, 0, 255 0 0, [255, 0, 0]

  • RGBA: rgba(255, 0, 0, 0.5)

  • HSL: hsl(0, 100%, 50%), 0, 100%, 50%

  • HSLA: hsla(0, 100%, 50%, 0.8)

  • HSV/HSB: hsv(0, 100%, 100%), hsb(0, 100%, 100%)

  • HSVA: hsva(0, 100%, 100%, 0.7)

Advanced Color Spaces

  • HWB: hwb(0, 0%, 0%)

  • CMYK: cmyk(0%, 100%, 100%, 0%)

  • LAB: lab(53.23, 80.11, 67.22)

  • XYZ: xyz(41.24, 21.26, 1.93)

  • LCH: lch(53.23, 104.55, 40.85)

  • OKLAB: oklab(0.628, 0.225, 0.126)

  • OKLCH: oklch(0.628, 0.258, 29.23)

Named Colors

  • CSS Named Colors: red, blue, forestgreen, lightsteelblue, etc.

Output Formats

Convert to any of these formats with configurable precision:

Web Development

{
  "color": "#FF0000",
  "output_format": "hex"
}
// Result: "#ff0000"

{
  "color": "#FF0000",
  "output_format": "rgb"
}
// Result: "rgb(255, 0, 0)"

{
  "color": "#FF0000",
  "output_format": "hsl",
  "precision": 1
}
// Result: "hsl(0.0, 100.0%, 50.0%)"

CSS Variables

{
  "color": "#FF0000",
  "output_format": "css-var",
  "variable_name": "primary-color"
}
// Result: "--primary-color: #ff0000;"

{
  "color": "#FF0000",
  "output_format": "scss-var",
  "variable_name": "accent_color"
}
// Result: "$accent_color: #ff0000;"

Mobile Development

{
  "color": "#FF0000",
  "output_format": "swift",
  "precision": 3
}
// Result: "UIColor(red: 1.000, green: 0.000, blue: 0.000, alpha: 1.000)"

{
  "color": "#FF0000",
  "output_format": "android"
}
// Result: "Color.parseColor(\"#FFFF0000\")"

{
  "color": "#FF0000",
  "output_format": "flutter"
}
// Result: "Color(0xFFFF0000)"

Framework Integration

{
  "color": "#FF0000",
  "output_format": "tailwind"
}
// Result: "red-500"

Scientific/Professional

{
  "color": "#FF0000",
  "output_format": "lab",
  "precision": 6
}
// Result: "lab(53.230000, 80.110000, 67.220000)"

{
  "color": "#FF0000",
  "output_format": "oklab",
  "precision": 8
}
// Result: "oklab(0.62800000, 0.22500000, 0.12600000)"

Usage Examples

Basic Color Conversion

// Convert HEX to RGB
{
  "tool": "convert_color",
  "parameters": {
    "color": "#FF0000",
    "output_format": "rgb"
  }
}

// Convert RGB to HSL with high precision
{
  "tool": "convert_color",
  "parameters": {
    "color": "rgb(255, 128, 64)",
    "output_format": "hsl",
    "precision": 4
  }
}

Advanced Color Space Conversions

// Convert to LAB color space for perceptual uniformity
{
  "tool": "convert_color",
  "parameters": {
    "color": "#FF8040",
    "output_format": "lab",
    "precision": 3
  }
}

// Convert to OKLCH for modern color workflows
{
  "tool": "convert_color",
  "parameters": {
    "color": "hsl(25, 100%, 69%)",
    "output_format": "oklch",
    "precision": 5
  }
}

Framework-Specific Outputs

// Generate Swift UIColor
{
  "tool": "convert_color",
  "parameters": {
    "color": "#2563eb",
    "output_format": "swift",
    "precision": 3
  }
}

// Generate Tailwind CSS class
{
  "tool": "convert_color",
  "parameters": {
    "color": "#ef4444",
    "output_format": "tailwind"
  }
}

// Generate CSS custom property
{
  "tool": "convert_color",
  "parameters": {
    "color": "#10b981",
    "output_format": "css-var",
    "variable_name": "success-color"
  }
}

Export Format Generation

Generate complete stylesheets and configuration files:

// Generate CSS with custom properties
{
  "tool": "export_css",
  "parameters": {
    "colors": ["#2563eb", "#ef4444", "#10b981"],
    "format": "both",
    "semantic_names": ["primary", "error", "success"],
    "include_rgb_hsl": true
  }
}

// Generate SCSS with mixins
{
  "tool": "export_scss",
  "parameters": {
    "colors": ["#2563eb", "#ef4444"],
    "format": "all",
    "include_functions": true,
    "namespace": "theme"
  }
}

// Generate Tailwind config
{
  "tool": "export_tailwind",
  "parameters": {
    "colors": ["#2563eb"],
    "include_shades": true,
    "semantic_names": ["primary"]
  }
}

// Generate JSON with metadata
{
  "tool": "export_json",
  "parameters": {
    "colors": ["#2563eb", "#ef4444"],
    "format": "detailed",
    "include_accessibility": true,
    "group_name": "Brand Colors"
  }
}

Performance Characteristics

  • Single Conversions: < 100ms response time

  • Batch Operations: < 20ms average per conversion

  • High Precision: Up to 10 decimal places without performance impact

  • Memory Efficient: Optimized for concurrent operations

  • Caching: Intelligent caching for frequently converted colors

Direct Usage

import { ColorServer } from './src/server.js';

const server = new ColorServer();
// Server usage examples will be added as implementation progresses

Development

Project Structure

mcp-color-server/
├── src/                    # Source code
│   ├── server.ts          # Main MCP server implementation
│   ├── tools/             # Tool implementations
│   ├── validation/        # Input validation schemas
│   ├── types/             # TypeScript type definitions
│   └── utils/             # Utility functions
├── tests/                 # Test files
├── docs/                  # Documentation
├── examples/              # Usage examples
└── dist/                  # Compiled output

Code Quality

This project maintains high code quality standards with automated Git hooks:

  • Pre-commit Hooks: Automatic linting, formatting, and type checking on staged files

  • Pre-push Hooks: Full test suite with 90%+ coverage requirements and build verification

  • Commit Message Validation: Enforces conventional commit format

  • Zero-Defect Policy: No TypeScript errors, ESLint warnings, or failing tests allowed

See Husky Setup Documentation for detailed information about our Git hooks.

  • TypeScript: Strict mode enabled with comprehensive type checking

  • ESLint: Enforces code style and catches potential issues

  • Prettier: Automatic code formatting

  • Jest: Comprehensive test suite with 90%+ coverage requirement

  • Continuous Integration: Automated testing and quality checks

Contributing

Please read docs/contributing.md for details on our code of conduct and the process for submitting pull requests.

Testing

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage report
npm run test:coverage

# Run specific test file
npm test -- server.test.ts

Building

# Clean previous build
npm run clean

# Build for production
npm run build

# Type check without building
npm run type-check

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

We welcome contributions! Please see docs/contributing.md for guidelines.

Code of Conduct

This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.

Support

Production Deployment

System Requirements

  • Node.js: 20.0.0 or higher

  • Memory: 512MB minimum, 2GB recommended

  • CPU: 1 core minimum, 2+ cores recommended for high load

  • Storage: 100MB for application, additional space for logs and cache

Performance Characteristics

  • Response Times: < 100ms for color conversions, < 2s for complex visualizations

  • Throughput: 50+ concurrent requests supported

  • Memory Usage: < 100MB per request, intelligent caching and cleanup

  • Reliability: 99.9% uptime with proper deployment and monitoring

Deployment Options

Docker Deployment

# Build Docker image
docker build -t mcp-color-server .

# Run container
docker run -d \
  --name mcp-color-server \
  -e NODE_ENV=production \
  -e LOG_LEVEL=info \
  -p 3000:3000 \
  mcp-color-server

PM2 Deployment

# Install PM2 globally
npm install -g pm2

# Start with PM2
pm2 start ecosystem.config.js

# Save PM2 configuration
pm2 save
pm2 startup

Systemd Service

# Copy service file
sudo cp mcp-color-server.service /etc/systemd/system/

# Enable and start service
sudo systemctl enable mcp-color-server
sudo systemctl start mcp-color-server

Monitoring and Maintenance

  • Health Checks: Built-in health endpoint at /health

  • Metrics: Performance metrics and resource usage tracking

  • Logging: Structured JSON logging with configurable levels

  • Alerts: Memory usage, response time, and error rate monitoring

Security

Security Features

  • Input Validation: Comprehensive validation for all color formats and parameters

  • XSS Prevention: Sanitization of generated HTML, CSS, and SVG content

  • Rate Limiting: Built-in rate limiting for expensive operations

  • Resource Protection: Memory limits, processing timeouts, and cleanup

  • Audit Logging: Security-relevant events logged without exposing sensitive data

Security Best Practices

  1. Run with minimal privileges: Use dedicated user account

  2. Network security: Run behind reverse proxy with HTTPS

  3. Resource limits: Configure appropriate memory and CPU limits

  4. Regular updates: Keep dependencies updated for security patches

  5. Monitoring: Monitor for suspicious activity and resource usage

Vulnerability Reporting

Report security vulnerabilities privately to: security@mcp-color-server.org

See docs/security.md for detailed security policy and reporting procedures.

Roadmap

Current Version (0.1.0)

  • ✅ Complete color format conversion system

  • ✅ Palette generation with color theory algorithms

  • ✅ Gradient creation and visualization

  • ✅ Theme generation and semantic color mapping

  • ✅ Accessibility compliance tools

  • ✅ HTML and PNG visualization generation

  • ✅ Export formats (CSS, SCSS, Tailwind, JSON)

  • ✅ Performance optimization and caching

  • ✅ Security hardening and input validation

Planned Features (Future Releases)

  • 🔄 3D color space visualizations

  • 🔄 Color animation and transitions

  • 🔄 Advanced image color extraction

  • 🔄 Educational content and tutorials

  • 🔄 Plugin architecture for custom algorithms

  • 🔄 RESTful API endpoints

  • 🔄 Advanced gradient types (mesh, conic)

  • 🔄 Mobile framework integrations

Community Contributions Welcome

  • Color theory algorithm improvements

  • New export format support

  • Performance optimizations

  • Documentation enhancements

  • Test coverage improvements

  • Accessibility features

Install Server
A
license - permissive license
B
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Provides comprehensive color conversion, manipulation, analysis, and WCAG accessibility tools supporting multiple formats (hex, rgb, hsl, oklch, oklab) for design systems and web development.
    Last updated
    287
    2
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    A comprehensive toolkit for color conversion, manipulation, and accessibility analysis supporting formats like OkLCH and WCAG compliance. It enables AI agents to manage design systems by generating harmonious palettes, transforming color spaces, and performing contrast checks.
    Last updated
    2
    MIT
  • A
    license
    -
    quality
    A
    maintenance
    Extract palettes from images, generate harmonies, gradients, random palettes; Check WCAG and APCA contrast; Suggest nearest passing OkLCH lightness; Simulate color-blindness; Convert and sort colors across formats (hex / RGB / HSL / OkLCH / …)
    Last updated
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Provides color and design tools including palette generation, WCAG contrast checking, color conversion, gradients, color blindness simulation, and CSS variables, all without API keys.
    Last updated
    MIT

View all related MCP servers

Related MCP Connectors

  • A complete color workflow over MCP: mix, convert, harmonize, measure, and remember palettes.

  • Color API MCP — wraps thecolorapi.com (free, no auth)

  • Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/keyurgolani/ColorMcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server