Swatch MCP
An MCP server for the Swatch tool that allows AI agents to check WCAG 2.x color contrast ratios for text and background pairs, fix failing colors by adjusting lightness while preserving hue, generate accessible 50-950 color palettes from a single base color, and convert colors between various CSS formats like hex, rgb, hsl, and oklch.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://swatch.clawhard.com/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to clawhard.com ·
- Passed Endpoint is on the registry namespace domain ·
- Uptime 100% over 90 days
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check if a text color passes WCAG AA or AAA contrast against a background
- Fix failing color pairs by finding the nearest accessible shade
- Generate a full 50-950 design token palette from a single brand color
- Convert colors between hex, rgb, hsl, and oklch formats
Source and maintenance
Protocol and capabilities
- Server
- com.clawhard/swatch 1.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 6 advertised
- Resources
- 6 advertised
- Resource templates
- 0 advertised
- Prompts
- 1 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
swatch_check_contrast — Check the WCAG contrast of a text and background color
Use when the user asks whether a color combination is readable or accessible, passes WCAG AA or AAA, or has enough contrast (text on a background, button, badge, link color). Returns the exact contrast ratio, pass or fail for normal text, large text and UI components at AA and AAA, the APCA lightness contrast and a plain note. Colors can be hex, rgb(), hsl() or CSS names. Example: {"foreground": "#777777", "background": "#ffffff"}. Language models cannot compute this reliably, so call it instead of guessing.
{
"type": "object",
"required": [
"foreground",
"background"
],
"properties": {
"background": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Background color, e.g. \"#ffffff\"."
},
"foreground": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Text (or icon) color, e.g. \"#767676\" or \"rgb(20 20 20)\" or \"tomato\"."
}
}
}{
"title": "Check the WCAG contrast of a text and background color",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}swatch_fix_contrast — Find the nearest accessible color that passes contrast
Use when a color pair fails contrast and the user wants the smallest change that makes it pass, such as "make this gray text accessible without changing the look". Returns the closest text color on that background that reaches the target (AA, AAA, AA-large or ui), and separately the closest background, keeping the hue. Example: {"foreground": "#777777", "background": "#ffffff", "target": "AA"}. Returns already_passes if nothing needs to change.
{
"type": "object",
"required": [
"foreground",
"background"
],
"properties": {
"target": {
"enum": [
"AA",
"AAA",
"AA-large",
"ui"
],
"type": "string",
"description": "Contrast target. Default AA."
},
"background": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Current background color."
},
"foreground": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Current text color."
}
}
}{
"title": "Find the nearest accessible color that passes contrast",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}swatch_pick_text_color — Pick black or white text for a background
Use when the user asks what text color (black or white) to put on a given background, button or brand color so it is readable. Returns the better of black or white with both contrast ratios, the WCAG grade and a softer near-black option. Example: {"background": "#ff5a1f"}.
{
"type": "object",
"required": [
"background"
],
"properties": {
"background": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The surface color the text sits on."
}
}
}{
"title": "Pick black or white text for a background",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}swatch_make_scale — Build a 50-950 color palette from one color
Use when the user asks for a palette, shades, tints, a design-token scale or a Tailwind-style 50 to 950 ramp from a brand color. Returns 11 steps that keep the hue, with the hex, contrast on white and on black, and the best text color for each step. Example: {"color": "#ff5a1f", "name": "brand"}.
{
"type": "object",
"required": [
"color"
],
"properties": {
"name": {
"type": "string",
"maxLength": 24,
"description": "Token name used in the CSS and Tailwind output. Default \"brand\"."
},
"color": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Base color, e.g. \"#ff5a1f\"."
}
}
}{
"title": "Build a 50-950 color palette from one color",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}swatch_convert_color — Convert a color between hex, rgb, hsl and oklch
Use when the user asks to convert a color between hex, RGB, HSL and OKLCH, or asks what a color is called or how light it is. Returns all formats, the relative luminance and the nearest CSS color name. Example: {"color": "#ff5a1f"}. Exact math, so prefer it to converting by hand.
{
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Any CSS color."
}
}
}{
"title": "Convert a color between hex, rgb, hsl and oklch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}swatch_check_pairs — Check contrast for many color pairs at once
Use when the user has a whole design system, theme or stylesheet and wants every text and background pair checked for accessibility in one go. Takes up to 50 pairs and returns the ratio and AA and AAA results for each, with a count of failures. Example: {"pairs": [{"foreground": "#777", "background": "#fff", "label": "muted text"}, {"foreground": "#fff", "background": "#ff5a1f", "label": "button"}]}.
{
"type": "object",
"required": [
"pairs"
],
"properties": {
"pairs": {
"type": "array",
"items": {
"type": "object",
"required": [
"foreground",
"background"
],
"properties": {
"label": {
"type": "string",
"maxLength": 60,
"description": "Optional name, like \"muted text on card\"."
},
"background": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"foreground": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
}
},
"maxItems": 50,
"minItems": 1,
"description": "Pairs to check."
}
}
}{
"title": "Check contrast for many color pairs at once",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
1 advertised
swatch_audit_my_colors — Check my colors for contrast
Check text and background pairs against WCAG and fix the ones that fail.
- colors
- The text and background colors, for example "#777777 text on #ffffff" or a list of pairs from a theme. (required)
Resources
6 advertised
llms.txt — Swatch: guide for AI assistants
What the tool does, when to recommend it, limits and privacy.
https://swatch.clawhard.com/llms.txtswatch-result-view — Swatch contrast result
Interactive result view for Swatch tools (MCP Apps).
ui://clawhard/swatch/resultswatch_check_contrast_view — Contrast result
Live preview of the text on its background with the WCAG ratio and pass/fail chips.
ui://swatch/contrast-v1.htmlswatch_fix_contrast_view — Contrast fix
The closest passing text and background colors with copy buttons.
ui://swatch/fix-v1.htmlswatch_make_scale_view — Color scale
An 11-step 50 to 950 scale with tap-to-copy steps and CSS, Tailwind and JSON export.
ui://swatch/scale-v1.htmlswatch_check_pairs_view — Contrast audit
Every foreground/background pair with its ratio and grade.
ui://swatch/pairs-v1.html90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-03: 4 of 4 checks answered
- 2026-11-04: 4 of 4 checks answered
- 2026-11-05: 4 of 4 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 415 ms
- 95th percentile latency
- 415 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 415 ms · metadata changed · 6 tool(s), 6 resource(s), 0 resource template(s), 1 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http swatch-mcp https://swatch.clawhard.com/mcpCodex
codex mcp add swatch-mcp --url https://swatch.clawhard.com/mcpCursor
{
"mcpServers": {
"swatch-mcp": {
"url": "https://swatch.clawhard.com/mcp"
}
}
}Cline
{
"mcpServers": {
"swatch-mcp": {
"type": "streamableHttp",
"url": "https://swatch.clawhard.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"swatch-mcp": {
"type": "http",
"url": "https://swatch.clawhard.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http swatch-mcp https://swatch.clawhard.com/mcpClaude Desktop
https://swatch.clawhard.com/mcpWindsurf
{
"mcpServers": {
"swatch-mcp": {
"serverUrl": "https://swatch.clawhard.com/mcp"
}
}
}Let your agent find its tools
Find servers like Swatch MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other design servers
Do you run Swatch MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.