MCP server

Color Palette Extractor MCP: Palettes, Themes and Tokens From an Image

Color Palette Extractor MCP pulls a color palette from an image, scores WCAG contrast, and exports CSS, SCSS, Tailwind or Figma tokens in one call.

Run
git clone https://github.com/aka-kika/color-palette-extractor-mcp.git
cd color-palette-extractor-mcp
npm ci
npm run build
View on GitHub

Stars, license and last push from GitHub. Install count as reported by the open skills directory.

What is Color Palette Extractor MCP?

Color Palette Extractor MCP is a local Node.js server with nine tools that pull a color palette from an image, separate an app's palette from its wallpaper in a screenshot, score contrast against WCAG, assign UI roles, and export the result to CSS variables, SCSS, Tailwind, Figma tokens, JSON or ASE, plus one tool that builds a themed deliverable with previews, exports and an HTML guide.

It is a local Node.js MCP server that turns an image into a usable color palette. It finds the colors, checks them against WCAG, assigns design roles, and exports the result in several formats, all without the image ever leaving the machine.

Window detection sets it apart on screenshots: an app window and the wallpaper behind it are extracted as two separate palettes instead of one blended set of colors.

What changes in an agent's output

  • build_palette_folder runs the whole pipeline in one call: detect the app window, extract app and wallpaper palettes, derive the matching dark or light theme, render previews, write five export formats, and generate an HTML design-system guide with a dark/light toggle.
  • brand_mode treats a clean brand sheet differently from a UI screenshot: brand exports ship as the tokens to use, with an inverted preview clearly labeled as reference only, not a recommended theme.
  • score_accessibility reports WCAG AA/AAA contrast ratios between chosen palette pairs, and suggest_role assigns background, text, accent, surface or muted roles for a stated purpose.
  • harmonize builds analogous, triadic, complementary, split or tetradic variants from a single seed color, and compare_palettes scores the perceptual difference between two palettes.

How the setup works

  1. Clone the repository and build it: npm ci then npm run build inside the project.
  2. Wire the built server into an MCP client by pointing it at the compiled entry point with node.
  3. Set PALETTE_OUTPUT_DIR to a fixed, writable path so deliverables land somewhere predictable instead of wherever the client happened to start from.
  4. Optionally set CHROME_PATH if the design-guide screenshot step should use a Chrome or Chromium binary outside the default location.

Who Color Palette Extractor MCP is for

Best for

  • Turning one screenshot or brand image into a themed, exportable palette with contrast scores already checked.
  • Agents that need UI roles and ready-made CSS variables, SCSS, Tailwind or Figma tokens from a single source image.

Not for

  • Generating a full 50 to 950 tonal scale from one seed color instead of extracting a palette from an image, work Tailwind Shades MCP Server already does with its own tools.
  • Building a brand, neutral and semantic palette system with contrast targets from scratch, a task Color System Skill handles instead of starting from an image.
  • Reading colors and fonts directly from a live website rather than a saved image, a job Visual Brand Extractor Skill takes on with its own brand config output.
  • Turning a screenshot into a design.md and token write-up rather than a themed, exportable palette, work AnyDesign Skill already covers end to end.

Security and requirements

  • Node 18 or newer is required; CI runs on Node 18 and 22.
  • image_url downloads reject private, loopback and link-local hosts, re-validate every redirect, time out after 10 seconds, and are capped at 25 MB.
  • The headless-Chrome screenshot step is spawned with an argument array rather than a shell, and every dynamic value in the HTML guide is escaped before rendering.