
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
@trishchuk/coolors-mcp
Advanced tools
Advanced color operations MCP server with Material Design 3 support, CSS theme matching, image color extraction, and accessibility compliance. Features HCT color space for perceptually accurate operations.
Advanced color operations MCP server with Material Design 3 support, CSS theme matching, image color extraction, and accessibility compliance.
No installation needed - runs directly:
{
"mcpServers": {
"coolors": {
"command": "npx",
"args": ["-y", "@trishchuk/coolors-mcp"]
}
}
}
claude mcp add coolors --npm-package @trishchuk/coolors-mcp
npm install @trishchuk/coolors-mcp
git clone https://github.com/x51xxx/coolors-mcp
cd coolors-mcp
pnpm install
pnpm run build
# Run the built server
node dist/bin/server.js
# Or use with MCP Inspector for testing
npx fastmcp inspect src/bin/server.ts
Add to your Claude Desktop configuration:
{
"mcpServers": {
"coolors": {
"command": "node",
"args": ["/path/to/coolors-mcp/dist/bin/server.js"]
}
}
}
convert_colorConvert colors between formats (hex, rgb, hsl, lab, hct).
{
"color": "#6750a4",
"to": "hct"
}
// Output: "hct(258.1, 47.3, 41.2)"
color_distanceCalculate perceptual distance between colors.
{
"color1": "#6750a4",
"color2": "#7f67be",
"metric": "deltaE2000"
}
// Output: "Distance: 8.45"
check_contrastCheck contrast between two colors. Supports the WCAG 2.x luminance ratio (default), APCA Lc (WCAG 3 draft), or both side-by-side.
{
"foreground": "#000000",
"background": "#ffffff",
"algorithm": "both" // "wcag" (default) | "apca" | "both"
}
// Output: WCAG 21.00:1 + APCA Lc 106.0
adjust_colorLighten / darken / saturate / desaturate / grayscale / invert / mix a color.
{
"color": "#6750a4",
"operation": "mix",
"with": "#ff6b6b",
"amount": 0.5 // weight (0-1) for mix, percent (0-100) for the others
}
generate_paletteGenerate color palettes (monochromatic, analogous, complementary, triadic, tetradic).
{
"baseColor": "#6750a4",
"type": "analogous",
"count": 5
}
generate_palette_with_locksGenerate palettes while preserving specific colors.
{
"lockedColors": ["#6750a4", "#ff6b6b"],
"totalColors": 7,
"mode": "harmony", // or "contrast", "gradient"
"colorSpace": "lab" // or "hsl"
}
generate_gradientCreate smooth gradients with advanced interpolation.
{
"colors": ["#6750a4", "#ff6b6b"],
"steps": 10,
"interpolation": "lab", // or "hsl", "rgb", "lch", "hct"
"easing": "ease-in-out", // or "linear", "ease-in", "ease-out"
"format": "css-linear" // or "array", "hex", "css-radial"
}
generate_material_themeGenerate complete Material Design 3 color theme.
{
"sourceColor": "#6750a4",
"includeCustomColors": true
}
generate_tonal_paletteCreate Material Design tonal palettes.
{
"color": "#6750a4",
"tones": [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 100]
}
harmonize_colorsHarmonize multiple colors to work together.
{
"colors": ["#6750a4", "#ff6b6b", "#4ecdc4"],
"method": "harmonize", // or "blend", "temperature"
"factor": 0.5
}
match_theme_colorFind closest theme variable for any color.
{
"color": "#6850a0",
"themeCSS": ":root { --color-primary-40: #6750a4; }",
"context": "background",
"minConfidence": 70
}
refactor_css_with_themeAutomatically refactor CSS to use theme variables.
{
"css": ".button { background: #6750a4; }",
"themeCSS": ":root { --color-primary-40: #6750a4; }",
"preserveOriginal": true,
"generateReport": true
}
generate_theme_cssGenerate CSS custom properties for a complete theme.
{
"sourceColor": "#6750a4",
"prefix": "color",
"includeTones": [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 100]
}
extract_image_colorsExtract dominant colors from images using Celebi quantization.
{
"imageData": {
"data": [/* RGBA array */],
"width": 1920,
"height": 1080
},
"maxColors": 5,
"quality": "high",
"format": "json"
}
generate_theme_from_imageGenerate Material Design theme from image colors.
{
"imageData": {/* image data */},
"isDark": false,
"includeCustomColors": true
}
generate_tonal_scaleBuild a Tailwind-style 50/100/.../900/950 scale from one seed color. Uses HCT so steps are perceptually even regardless of hue.
{
"seed": "#6750a4",
"name": "brand", // CSS variable base name
"chromaBoost": 1, // multiplier on seed chroma
"stops": [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]
}
generate_state_colorsDerive interaction states (hover/active/pressed/focus/disabled/selected) from a base color with consistent tonal deltas.
{
"base": "#6750a4",
"isDark": false // true to lighten on hover instead of darkening
}
analyze_palette_consistencyScore visual cohesion of a palette: tonal step uniformity, chroma spread, hue harmony, plus a single 0–100 score and targeted suggestions.
{
"colors": ["#6750a4", "#7f67be", "#a48dc8", "#ff0000"]
}
// Output: cohesion 77/100 + outlier #ff0000 (chroma 105 vs avg 60)
generate_semantic_paletteFrom one brand color, generate primary/secondary/tertiary + success/warning/error/info with normalized chroma & tone so every color feels like part of the same family.
{
"brand": "#6750a4",
"isDark": false
}
simulate_color_blindnessSimulate how colors appear to viewers with protanopia / deuteranopia / tritanopia (and the milder anomaly forms, plus achromatopsia). Uses Machado-style linear-sRGB confusion-line matrices.
{
"colors": ["#e63946", "#2a9d8f"],
"types": ["protanopia", "deuteranopia"] // optional, defaults to all 7
}
check_palette_accessibilityAudit a palette for color-blind friendliness — flags pairs of colors that become indistinguishable under each CVD type.
{
"colors": ["#e63946", "#2a9d8f", "#264653", "#f4a261"],
"indistinguishableThreshold": 10 // ΔE2000 below which colors collide
}
export_paletteExport a palette as CSS custom properties, SCSS variables, a Tailwind config snippet, W3C design tokens, or JSON.
{
"colors": ["#fef3c7", "#fde68a", "#fcd34d"],
"format": "tailwind", // "css" | "scss" | "tailwind" | "tokens" | "json"
"prefix": "amber",
"names": ["50", "100", "200"] // optional, default uses 50/100…900 scale
}
analyze_color_likabilityCheck if colors fall in universally disliked ranges.
{
"color": "#6b6b00" // Dark yellow-green
}
// Output: Analysis with fix suggestions
fix_disliked_colors_batchFix multiple disliked colors automatically.
{
"colors": ["#6b6b00", "#7a7a10", "#808020"],
"strategy": "hue_shift" // or "desaturate", "brighten"
}
Google's HCT (Hue, Chroma, Tone) color space provides:
Key benefits:
Different color spaces for gradient generation:
Multi-factor scoring system:
This project uses pnpm. Install it once with npm i -g pnpm or corepack enable.
# Install dependencies
pnpm install
# Build the project
pnpm run build
# Run tests
pnpm test
# Format code
pnpm run format
# Lint
pnpm run lint
src/
├── bin/
│ └── server.ts # MCP server entry
├── tools/ # Tool implementations
│ ├── color-conversion.tool.ts
│ ├── color-distance.tool.ts
│ ├── contrast-checker.tool.ts
│ ├── palette-generator.tool.ts
│ ├── palette-with-locks.tool.ts
│ ├── gradient-generator.tool.ts
│ ├── material-theme.tools.ts
│ ├── theme-matching.tools.ts
│ ├── image-extraction.tools.ts
│ └── dislike-analyzer.tool.ts
├── color/ # Core color utilities
│ ├── conversions.ts # Color space conversions
│ ├── metrics.ts # Distance calculations
│ ├── utils.ts # Color utilities
│ ├── hct/ # HCT color space
│ ├── quantize/ # Celebi quantization
│ ├── score/ # Color scoring
│ └── dislike/ # Dislike analysis
└── theme/ # Theme system
├── parser.ts # CSS parsing
├── matcher.ts # Variable matching
└── refactor.ts # CSS refactoring
Convert hardcoded colors to CSS variables with confidence scores.
Ensure all color combinations meet WCAG AA/AAA standards.
Generate complete Material Design 3 themes with tonal palettes.
Create cohesive palettes that work well together.
Extract colors from logos or photos to generate matching themes.
Create smooth, perceptually uniform gradients for modern UIs.
Contributions welcome! Please ensure:
pnpm test)pnpm run format)pnpm run lint)MIT © Taras Trishchuk
FAQs
Advanced color operations MCP server with Material Design 3 support, CSS theme matching, image color extraction, and accessibility compliance. Features HCT color space for perceptually accurate operations.
The npm package @trishchuk/coolors-mcp receives a total of 19 weekly downloads. As such, @trishchuk/coolors-mcp popularity was classified as not popular.
We found that @trishchuk/coolors-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.