{"apiVersion":"v1","directorySlug":"palettesense-mcp-a25f6e08aa","title":"PaletteSense","description":"Check WCAG contrast, build OKLCH gradients and palettes, and browse 31,000+ named colors — all in one fast, free tool for designers and developers. No account required.","pageUrl":"https://www.mcpbundles.com/skills/palettesense-mcp-a25f6e08aa","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://palettesense.com/api/mcp","hostedMcpUrl":null,"toolCount":11,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.palettesense/palettesense-mcp-a25f6e08aa","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"check_contrast","description":"Compute the WCAG contrast ratio between a foreground and background hex color and return pass/fail for the requested context/level plus a full matrix (normalText, largeText, uiElement at AA/AAA). Use to verify text/background accessibility.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["fg","bg"],"properties":{"bg":{"type":"string"},"fg":{"type":"string"},"level":{"enum":["AA","AAA"],"type":"string","default":"AA"},"context":{"enum":["normalText","largeText","uiElement"],"type":"string","default":"normalText"}},"additionalProperties":false},"title":"Check WCAG color contrast","logicalName":"check_contrast","displayName":"Check WCAG color contrast","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"check_contrast_batch","description":"Check up to 50 foreground/background pairs in one call. Each pair takes the same fields as check_contrast (fg, bg, optional context/level) and returns the same result. Use to validate a whole palette at once instead of one request per pair.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["pairs"],"properties":{"pairs":{"type":"array","items":{"type":"object","required":["fg","bg"],"properties":{"bg":{"type":"string"},"fg":{"type":"string"},"level":{"enum":["AA","AAA"],"type":"string","default":"AA"},"context":{"enum":["normalText","largeText","uiElement"],"type":"string","default":"normalText"}},"additionalProperties":false},"maxItems":50,"minItems":1}},"additionalProperties":false},"title":"Check WCAG contrast for many pairs","logicalName":"check_contrast_batch","displayName":"Check WCAG contrast for many pairs","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_colors","description":"Search a large named-color dataset by color-name prefix, a full hex value (nearest named colors), or a hex prefix. The optional limit caps every search mode. Returns hex, name, and how each result matched.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string"},"limit":{"type":"integer","maximum":12,"minimum":1}},"additionalProperties":false},"title":"Search named colors","logicalName":"search_colors","displayName":"Search named colors","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_gradient_contrast","description":"Sample a text color's contrast along a whole gradient: returns the minimum ratio, aa/ui/fail status, failing ranges, the worst point, a suggested scrim overlay to reach AA, and a `recommendedText` caption color (best black/white across the whole gradient). Provide a `gradient` object or a `g` encoded share string.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"g":{"type":"string"},"textHex":{"type":"string","default":"#ffffff"},"gradient":{"type":"object","required":["stops"],"properties":{"type":{"enum":["linear","radial","angular"],"type":"string","default":"linear"},"angle":{"type":"number","default":90},"stops":{"type":"array","items":{"type":"object","required":["hex","position"],"properties":{"hex":{"type":"string"},"opacity":{"type":"number","default":100,"maximum":100,"minimum":0},"position":{"type":"number","maximum":100,"minimum":0}},"additionalProperties":false},"maxItems":20,"minItems":2},"interpolation":{"enum":["srgb","oklch","hsl-longer"],"type":"string","default":"srgb"}},"additionalProperties":false},"backdropHex":{"type":"string","default":"#ffffff"},"includeSamples":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Analyze text contrast across a gradient","logicalName":"analyze_gradient_contrast","displayName":"Analyze text contrast across a gradient","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"generate_gradient_css","description":"Turn a gradient definition into ready-to-paste CSS (background-image value, CSS custom property, Tailwind v4 @theme block), plus the encoded form and a shareable URL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"g":{"type":"string"},"gradient":{"type":"object","required":["stops"],"properties":{"type":{"enum":["linear","radial","angular"],"type":"string","default":"linear"},"angle":{"type":"number","default":90},"stops":{"type":"array","items":{"type":"object","required":["hex","position"],"properties":{"hex":{"type":"string"},"opacity":{"type":"number","default":100,"maximum":100,"minimum":0},"position":{"type":"number","maximum":100,"minimum":0}},"additionalProperties":false},"maxItems":20,"minItems":2},"interpolation":{"enum":["srgb","oklch","hsl-longer"],"type":"string","default":"srgb"}},"additionalProperties":false}},"additionalProperties":false},"title":"Generate CSS for a gradient","logicalName":"generate_gradient_css","displayName":"Generate CSS for a gradient","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"decode_share_url","description":"Parse the state encoded in a PaletteSense share URL (or its g / ps / cart params): gradient, contrast page, and favorites. Read-only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"g":{"type":"string"},"ps":{"type":"string"},"url":{"type":"string"},"cart":{"type":"string"}},"additionalProperties":false},"title":"Decode a PaletteSense share URL","logicalName":"decode_share_url","displayName":"Decode a PaletteSense share URL","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"encode_share_url","description":"Encode a gradient and/or a list of saved contrast pairs into shareable PaletteSense deep links the user can open with the state pre-populated.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"cart":{"type":"array","items":{"type":"object","required":["foregroundHex","foregroundName","backgroundHex","backgroundName","ratio","status"],"properties":{"ratio":{"type":"number"},"status":{"enum":["aa","ui","fail"],"type":"string"},"backgroundCss":{"type":"string"},"backgroundHex":{"type":"string"},"foregroundHex":{"type":"string"},"backgroundName":{"type":"string"},"foregroundName":{"type":"string"},"backgroundLabel":{"type":"string"}},"additionalProperties":false},"maxItems":50},"gradient":{"type":"object","required":["stops"],"properties":{"type":{"enum":["linear","radial","angular"],"type":"string","default":"linear"},"angle":{"type":"number","default":90},"stops":{"type":"array","items":{"type":"object","required":["hex","position"],"properties":{"hex":{"type":"string"},"opacity":{"type":"number","default":100,"maximum":100,"minimum":0},"position":{"type":"number","maximum":100,"minimum":0}},"additionalProperties":false},"maxItems":20,"minItems":2},"interpolation":{"enum":["srgb","oklch","hsl-longer"],"type":"string","default":"srgb"}},"additionalProperties":false}},"additionalProperties":false},"title":"Create a PaletteSense share URL","logicalName":"encode_share_url","displayName":"Create a PaletteSense share URL","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"optimize_contrast","description":"Given a foreground and background, nudge one color's lightness in OKLCH (keeping its hue) until the pair meets the target WCAG level, and return the adjusted hex. Use to make a brand color readable without losing its character.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["fg","bg"],"properties":{"bg":{"type":"string"},"fg":{"type":"string"},"level":{"enum":["AA","AAA"],"type":"string","default":"AA"},"adjust":{"enum":["foreground","background"],"type":"string","default":"foreground"},"context":{"enum":["normalText","largeText","uiElement"],"type":"string","default":"normalText"}},"additionalProperties":false},"title":"Fix a color pair to pass WCAG","logicalName":"optimize_contrast","displayName":"Fix a color pair to pass WCAG","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"suggest_palette","description":"Build a color scheme (complementary, analogous, triadic, tetradic, or monochromatic) around a base color using OKLCH, with each color scored for contrast against a background. Use to generate accessible brand palettes. Each color's `status` (aa/ui/fail) is an absolute tier, not the verdict for a specific WCAG level.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["base"],"properties":{"base":{"type":"string"},"count":{"type":"integer","maximum":9,"minimum":3},"scheme":{"enum":["complementary","analogous","triadic","tetradic","monochromatic"],"type":"string","default":"analogous"},"background":{"type":"string","default":"#ffffff"}},"additionalProperties":false},"title":"Suggest a harmonious color palette","logicalName":"suggest_palette","displayName":"Suggest a harmonious color palette","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"generate_scales","description":"Build Radix-style 12-step accent and gray scales (light AND dark mode) from one accent color, in OKLCH so lightness steps stay perceptually even. Each step has a solid hex and an alpha variant; text steps are WCAG-enforced (see `checks`). Returns step usage labels, a paste-ready CSS custom-properties block, and a share URL. Use to turn a brand color into a full design-system scale.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["accent"],"properties":{"accent":{"type":"string"}},"additionalProperties":false},"title":"Generate 12-step color scales","logicalName":"generate_scales","displayName":"Generate 12-step color scales","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"accessible_text","description":"Given a background color, return the best text color (black or white), its contrast ratio, WCAG status, and whether it passes the target level. `status` (aa/ui/fail) is an absolute tier; rely on `passes` for the requested level's verdict.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bg"],"properties":{"bg":{"type":"string"},"level":{"enum":["AA","AAA"],"type":"string","default":"AA"},"context":{"enum":["normalText","largeText","uiElement"],"type":"string","default":"normalText"}},"additionalProperties":false},"title":"Pick readable text for a background","logicalName":"accessible_text","displayName":"Pick readable text for a background","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=PaletteSense&config=eyJ1cmwiOiAiaHR0cHM6Ly9wYWxldHRlc2Vuc2UuY29tL2FwaS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22PaletteSense%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpalettesense.com%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22PaletteSense%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpalettesense.com%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=PaletteSense&connectorUrl=https%3A%2F%2Fpalettesense.com%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"PaletteSense\" --url \"https://palettesense.com/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/palettesense-mcp-a25f6e08aa","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/palettesense-mcp-a25f6e08aa/tools/{tool}","mcpServerUrl":"https://palettesense.com/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/palettesense-mcp-a25f6e08aa?live=1"}