MCP Color Converter

MCP Color Converter

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.

Category
访问服务器

README

MCP Color Converter

A comprehensive Model Context Protocol (MCP) server for color conversion, manipulation, analysis, and accessibility, designed for AI coding agents and assistants. This server provides a complete color toolkit for design systems, web development, and accessibility compliance using the colorizr library.

Use Cases for AI Agents

  • UI/UX Design: Convert design system colors between formats for different platforms
  • Web Development: Transform colors for CSS, SVG, and canvas applications
  • Data Visualization: Convert colors for charts and graphs using perceptually uniform OkLCH
  • Theme Generation: Create consistent color palettes across different color spaces
  • Accessibility: Ensure proper color contrast by working in perceptual color spaces
  • Design Systems: Generate complete swatches and harmonious color schemes
  • Color Manipulation: Lighten, darken, saturate, and rotate colors for UI states
  • Accessibility Compliance: WCAG contrast analysis and text color optimization

Once configured, your AI coding agent will be able to discover and use these color conversion tools seamlessly within your development workflow.

Installation & Configuration

MCP Client Configuration

This is the recommended way to use the MCP server. Add it to your MCP client configuration:

Claude Desktop or Gemini CLI

Add this server to your agent config file:

{
  "mcpServers": {
    "color-converter": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-color-convert@latest"
      ]
    }
  }
}

Custom MCP Client Configuration

For any MCP client supporting stdio transport:

{
  "servers": [
    {
      "name": "color-converter",
      "description": "AI-powered color conversion, manipulation, analysis, and accessibility tools for design systems",
      "transport": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "mcp-color-convert@latest"]
      }
    }
  ]
}

The npx -y mcp-color-convert@latest command ensures:

  • Automatic installation if not present
  • Always uses the latest version
  • No global dependencies required
  • Works across different environments

Consult your MCP client's documentation for specific configuration details.

Supported Color Formats

This MCP server supports conversion between the following color formats:

Input Formats (any accepted):

  • HEX: #FF0000, #ff0000
  • RGB: rgb(255, 0, 0), rgb(255,0,0)
  • RGBA: rgba(255, 0, 0, 0.5), rgba(255,0,0,0.5) (with alpha/transparency)
  • HSL: hsl(0, 100%, 50%), hsl(0,100%,50%)
  • HSLA: hsla(0, 100%, 50%, 0.5), hsla(0,100%,50%,0.5) (with alpha/transparency)
  • OkLCH: oklch(63.269% 0.25404 19.90218) (modern perceptual color space)
  • OkLCH with alpha: oklch(63.269% 0.25404 19.90218 / 0.5) (alpha uses slash syntax)
  • OkLab: oklab(0.62796 0.22486 0.12585) (perceptual color space)
  • OkLab with alpha: oklab(0.62796 0.22486 0.12585 / 0.5) (alpha uses slash syntax)
  • Named Colors: red, blue, green, purple, etc.

Alpha/Transparency Support: All major color formats support alpha values (0-1 scale):

  • RGBA/HSLA use comma syntax: rgba(255, 0, 0, 0.5)
  • OkLCH/OkLab use slash syntax: oklch(63.269% 0.25404 19.90218 / 0.5)
  • Alpha is preserved when converting between alpha-supporting formats
  • Alpha is removed when converting to formats that don't support it (like hex)

Output Formats (for convert tool):

  • hex - Returns: #FF0000
  • rgb - Returns: rgb(255 0 68)
  • hsl - Returns: hsl(344 100% 50%)
  • oklch - Returns: oklch(63.269% 0.25404 19.90218)
  • oklab - Returns: oklab(0.62796 0.22486 0.12585)

Available Tools

Color Conversion

  • convert - Universal converter between any supported formats. Accepts any valid color input (hex, rgb, rgba, hsl, hsla, oklch, oklab, or named colors like 'red', 'blue') including alpha/transparency values and converts to hex, rgb, hsl, oklch, or oklab format. Alpha is preserved when converting between alpha-supporting formats, removed when converting to non-alpha formats. Uses colorizr's built-in convert function for optimal format handling.

Color Manipulation

  • lighten - Increase color lightness by percentage amount
  • darken - Decrease color lightness by percentage amount
  • saturate - Increase color saturation/intensity by percentage amount
  • desaturate - Decrease color saturation/intensity by percentage amount
  • invert - Create exact opposite/complementary color (180° hue rotation)
  • grayscale - Convert color to grayscale using perceptual OkLCH
  • rotate - Rotate hue by degrees around color wheel

Color Analysis

  • luminance - Get WCAG relative brightness (0-1 scale)
  • chroma - Get color intensity/purity (0-1 scale)
  • opacity - Extract alpha/opacity value (0-1 scale) from any color format that supports transparency
  • name - Get common color name or hex if unnamed

Color Generation

  • palette - Generate 6-color harmonious palette from base color
  • scheme - Generate color harmonies (complementary, triadic, tetradic, etc.)
  • swatch - Generate 11-shade design system swatch (50-950)
  • random - Generate random color in specified format

Accessibility Tools

  • contrast - Calculate WCAG contrast ratio between two colors
  • compare - Full WCAG compliance analysis with recommendations
  • text_color - Get optimal text color (black/white) for background

Utility Tools

  • is_valid_color - Validate if color string is parseable

Example Usage

Convert any color format to another:

{
  "tool": "convert",
  "arguments": {
    "color": "#FF0000",
    "format": "oklch"
  }
}
// Returns: "oklch(63.269% 0.25404 19.90218)"

Convert named color to HSL:

{
  "tool": "convert",
  "arguments": {
    "color": "blue",
    "format": "hsl"
  }
}
// Returns: "hsl(240 100% 50%)"

Convert RGBA to hex (alpha removed):

{
  "tool": "convert",
  "arguments": {
    "color": "rgba(255, 0, 0, 0.5)",
    "format": "hex"
  }
}
// Returns: "#ff0000"

Convert RGBA to OkLCH (alpha preserved):

{
  "tool": "convert",
  "arguments": {
    "color": "rgba(255, 0, 0, 0.5)",
    "format": "oklch"
  }
}
// Returns: "oklch(62.796% 0.25768 29.23494 / 0.5)"

Lighten a color for hover state:

{
  "tool": "lighten",
  "arguments": {
    "color": "#FF0000",
    "amount": 20
  }
}
// Returns: "#ff3333"

Check accessibility compliance:

{
  "tool": "compare",
  "arguments": {
    "foreground": "#000000",
    "background": "#FFFFFF"
  }
}
// Returns: {"contrast": 21, "compliant": 1, "normalAA": true, "normalAAA": true, ...}

Generate design system swatch:

{
  "tool": "swatch",
  "arguments": {
    "color": "#3B82F6"
  }
}
// Returns: {"50": "#eff6ff", "100": "#dbeafe", "200": "#bfdbfe", ..., "950": "#172554"}

Publishing & Deployment

NPM Publishing

This package is published to NPM and can be used with npx:

npx -y mcp-color-convert@latest

To publish a new version:

  1. Update version in package.json
  2. Commit all changes
  3. Run npm publish (this will automatically build before publishing)

Build process:

  • TypeScript compiles to dist/ directory
  • Only dist/, src/, README.md, and LICENSE are included in the NPM package

Development

Setting Up Development Environment

  1. Clone and install dependencies:

    git clone https://github.com/bennyzen/mcp-color-convert.git
    cd mcp-color-convert
    npm install
    
  2. Test the MCP server locally:

    # Test the server dry BEFORE trying to use it with an MCP client to catch obvious errors
    npx -y .
    
  3. Using with your agent (MCP client) locally:

    • Update your MCP client configuration to point to the local installation (e.g., npx -y /path/to/mcp-color-convert)
     {
       "mcpServers": {
         "color-converter": {
           "command": "npx",
           "args": [
             "-y",
             "/path/to/mcp-color-convert"
           ]
         }
       }
     }
    

    Important: Restart your MCP client after making configuration changes!

  4. Testing: Use your MCP client to call the server and test various tools. You can enter phrases like:

    • "List all your color conversion tools"
    • "Convert #FF5733 to HSL"
    • "Lighten rgb(100, 150, 200) by 15%"
    • "Create a palette of red in oklch"

Adding New Tools

To add new color tools:

  1. Write the tool function following existing examples
  2. Register the tool using server.registerTool()
  3. Follow the existing pattern for input validation with Zod schemas
  4. Handle errors with McpError for consistent error reporting

Library Dependencies

  • @modelcontextprotocol/sdk - MCP server framework
  • colorizr - Color manipulation library (verify exports before use)
  • zod - Input validation schemas

Troubleshooting

Server won't start

  • Ensure Node.js 18+ is installed: node --version
  • Try clearing npm cache: npm cache clean --force
  • Reinstall dependencies: rm -rf node_modules package-lock.json && npm install

NPX execution issues

  • Use the -y flag to auto-install: npx -y mcp-color-convert@latest
  • Check NPM registry access: npm ping
  • Verify package exists: npm view mcp-color-convert

Build failures

  • Ensure TypeScript is installed: npm install
  • Clean build: rm -rf dist/ .smithery/ && npm run build
  • Check for TypeScript errors: npm run build:tsc

MCP Client connection issues

  • Restart your MCP client after configuration changes
  • Verify the server starts: node dist/index.js (should hang waiting for input - this is correct)
  • Check logs in your MCP client for connection errors
  • Ensure the path in your client config is correct

Color conversion errors

  • Verify color format matches supported types (hex, rgb, hsl, oklch, oklab)
  • Check alpha values use correct syntax (comma for rgba/hsla, slash for oklch/oklab)
  • Named colors must be valid CSS color names

License

MIT License. See LICENSE file for details.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选