mcpField
T
Tailwind Shades

Tailwind Shades

Remote
tailwindshades.bourhaouta.comDeveloper Tools78Updated 2w ago

About Tailwind Shades

Tailwind Shades is an MCP server for agents working with Tailwind CSS, generating palettes and returning Tailwind's defined colors instead of relying on guessed values. It supports Tailwind v1 through v4 and offers both remote HTTP and local stdio setup.

Key features

  1. 01Generate 50–950 palettes from CSS colors
  2. 02Find the closest Tailwind shade
  3. 03Retrieve default palettes by version
  4. 04Convert colors to OKLCH, hex, or RGB
  5. 05Generate WCAG AA readable color pairs

Use cases

  1. 01Add a brand palette to a Tailwind theme
  2. 02Choose an existing Tailwind class for a color
  3. 03Retrieve exact default values for a project version

MCP support

The server exposes five read-only tools and an `add_brand_color` prompt to MCP clients. It can be connected remotely over Streamable HTTP or run locally over stdio.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://tailwindshades.bourhaouta.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npmtailwindshades-mcp1.6.0

Tools

5
ParameterTypeRequiredDescription
namestringNoColor name used in the code, e.g. "brand". Defaults to the closest Tailwind color, which replaces Tailwind's own palette of that name (e.g. red), so pass a name unless that is what the user wants
colorstringYesAny CSS color: hex (#db4d53), rgb(), hsl(), oklch() or a named color
plainbooleanNoWith output live or shopify: a plain :root block instead of @theme, for projects without Tailwind (like the Dawn theme)
formatenumNoColor format. Defaults to oklch for v4 and hex for older versionsoklch | hex | rgb
outputenumNotheme: a v4 @theme block for the main CSS file. config: an object for theme.extend.colors in tailwind.config.js. css: plain CSS variables. live (v4 only): for a color picked at runtime (user, tenant or CMS setting): CSS where every shade follows one variable, --color-<name>, rebuilt in the browser with relative colors, with this palette as the fallback. shopify (v4 only): live, plus a settings_schema.json color setting and the Liquid line for snippets/css-variables.liquid, for Shopify themes where the merchant picks the color in the theme editor. Each part says which file it goes in. Defaults to theme for v4 and config for older versionstheme | config | css | live | shopify
semanticbooleanNoWith output live or shopify: also add --color-<name>-foreground for text on the color: white or the darkest shade, whichever contrasts more, following the runtime color
tailwindVersionenumNoThe project's Tailwind CSS major version. Defaults to 44 | 3 | 2 | 1

Details

From the project README

tailwindshades-mcp

Tailwind Shades MCP connector – tool definition quality and endpoint health on Glama

An MCP server that gives AI agents real Tailwind CSS palettes, so they stop guessing shades. Works with Tailwind v4, v3, v2 and v1.

Ask your agent "Add a brand color #db4d53 to my theme", and it writes a full 50 to 950 palette in the project's Tailwind format, with #db4d53 exactly at brand-500. Same engine as the Tailwind Shades editor extension and tailwindshades.bourhaouta.com.

Setup

Remote (nothing to install)

Connect your agent to https://tailwindshades.bourhaouta.com/mcp (Streamable HTTP, no API key).

Claude Code

claude mcp add --transport http --scope user tailwindshades https://tailwindshades.bourhaouta.com/mcp

Cursor (~/.cursor/mcp.json, or .cursor/mcp.json in a project)

{
  "mcpServers": {
    "tailwindshades": { "url": "https://tailwindshades.bourhaouta.com/mcp" }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "tailwindshades": { "type": "http", "url": "https://tailwindshades.bourhaouta.com/mcp" }
  }
}
Local (stdio)

Runs on your machine with npx, so nothing leaves it. Needs Node.js 20 or later.

Claude Code

claude mcp add --scope user tailwindshades -- npx -y tailwindshades-mcp

Cursor (~/.cursor/mcp.json, or .cursor/mcp.json in a project)

{
  "mcpServers": {
    "tailwindshades": { "command": "npx", "args": ["-y", "tailwindshades-mcp"] }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "tailwindshades": { "command": "npx", "args": ["-y", "tailwindshades-mcp"] }
  }
}

Other agents: use the URL above, or run npx -y tailwindshades-mcp as a stdio server. It's also in the MCP Registry as io.github.bourhaouta/tailwindshades.

Tools

All five tools are read-only.

generate_palette

A full palette from one color, ready to paste.

InputDefault
colorrequired: any CSS color (#db4d53, rgb(), hsl(), oklch(), a name)
namethe closest Tailwind color, which replaces Tailwind's own palette, so the tool warns
tailwindVersion4 (also 3, 2, 1)
formatoklch for v4, hex before (also rgb)
outputtheme for v4, config before (also css, and live and shopify for v4)
plain, semanticfalse: with live or shopify, a plain :root block instead of @theme, and a --color-<name>-foreground

live is for colors picked at runtime (a user, a tenant, a CMS setting): CSS where every shade follows one variable, rebuilt in the browser. shopify adds the color setting and Liquid line for Shopify themes, where the merchant picks the color in the theme editor. See Colors picked at runtime.

Returns the code, plus the shades, the shade that holds the input color and the closest Tailwind color as structured data.

The code starts with a comment of readable pairs: text and background classes that pass WCAG AA (4.5:1), tested on the real shades. Agents use them for buttons and text, so a red brand gets bg-brand-600 text-white instead of the failing bg-brand-500 text-white:

/* Readable pairs (WCAG AA, 4.5:1 or more):
   button     bg-brand-600 text-white      5.09:1
   text       bg-white text-brand-600      5.09:1
   badge      bg-brand-100 text-brand-700  5.43:1
   dark mode  bg-brand-950 text-brand-400  5.33:1
   avoid      bg-brand-500 text-white      4.03:1 */
find_closest_tailwind_color

The Tailwind shade that looks most like a color, e.g. #db4d53 → red-500, with Tailwind's value, the distance, and whether the difference is visible. Agents use it to pick an existing class instead of an arbitrary value, or to decide a custom palette is needed.

get_tailwind_palette

Tailwind's own default colors, exactly as Tailwind defines them: a whole color (blue) or one shade (slate-500), for Tailwind v4, v3, v2 or v1. Values are oklch() in v4 and hex before. Agents use it instead of writing Tailwind's default values from memory.

list_tailwind_colors

The names of Tailwind's default colors for a version (26 in v4, including mauve, olive, mist and taupe), with the shades they have and each one's 500 value as a sample.

convert_color

Any CSS color as oklch(), hex and rgb, formatted like Tailwind. Handy when a project on Tailwind v4 needs one oklch() value rather than a whole palette.

Prompt

add_brand_color

Arguments: color and an optional name (default brand). It asks the agent to find the project's Tailwind version, call generate_palette, and paste the code into the theme. Clients like Claude Code show it as a slash command.

Host it yourself

The package also exports createServer(), a fresh McpServer with all its tools and the prompt. Serve it with the MCP TypeScript SDK, for example over HTTP in any web-standard runtime (this is how the remote server above runs, as a Next.js route):

import { createMcpHandler } from '@modelcontextprotocol/server'
import { createServer } from 'tailwindshades-mcp'

const handler = createMcpHandler(createServer)

export const POST = (request: Request) => handler.fetch(request)

More

License

MIT © Omar Bourhaouta

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.