Solve, audit and simulate colorblind-safe chart palettes. WCAG contrast, OKLab ΔE. Read-only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Audit existing chart colors for accessibility: pairwise OKLab separation under normal vision, deuteranopia, protanopia, tritanopia and achromatopsia, plus WCAG 2.2 non-text contrast (3:1) of every color against the chart background. Returns a pass / warn / fail verdict with the numbers behind it. Set ramp=true for sequential or diverging scales, whose steps are meant to be close.
Palette colors in slot order (CSS syntax)
true for a sequential or diverging scale (skips pairwise separation)
Chart background color
Audit existing chart colors for accessibility: pairwise OKLab separation under normal vision, deuteranopia, protanopia, tritanopia and achromatopsia, plus WCAG 2.2 non-text contrast (3:1) of every color against the chart background. Returns a pass / warn / fail verdict with the numbers behind it. Set ramp=true for sequential or diverging scales, whose steps are meant to be close.
| Argument | Type | Description |
|---|---|---|
| ramp | boolean | true for a sequential or diverging scale (skips pairwise separation) |
| colors* | array | Palette colors in slot order (CSS syntax) |
| background | string | Chart background color |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"colors"
],
"properties": {
"ramp": {
"type": "boolean",
"default": false,
"description": "true for a sequential or diverging scale (skips pairwise separation)"
},
"colors": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24,
"minItems": 1,
"description": "Palette colors in slot order (CSS syntax)"
},
"background": {
"type": "string",
"default": "#ffffff",
"description": "Chart background color"
}
},
"additionalProperties": false
}Build an evenly spaced perceptual (OKLab) color scale: sequential from start to end, or diverging from start through mid to end. Returns the steps and a background-contrast audit (pairwise separation is not judged for ramps).
| Argument | Type | Description |
|---|---|---|
| end* | string | Last color (or the positive end) |
| mid | string | Middle color for a diverging scale; default a neutral near the background |
| kind* | string | |
| start* | string | First color (or the negative end of a diverging scale) |
| steps | integer | |
| background | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "Last color (or the positive end)"
},
"mid": {
"type": "string",
"description": "Middle color for a diverging scale; default a neutral near the background"
},
"kind": {
"enum": [
"sequential",
"diverging"
],
"type": "string"
},
"start": {
"type": "string",
"description": "First color (or the negative end of a diverging scale)"
},
"steps": {
"type": "integer",
"default": 7,
"maximum": 24,
"minimum": 3
},
"background": {
"type": "string",
"default": "#ffffff"
}
},
"additionalProperties": false
}Show what each color looks like to readers with deuteranopia, protanopia, tritanopia or achromatopsia (published Machado 2009 matrices), so an assistant can describe or render the palette as a colorblind reader sees it.
| Argument | Type | Description |
|---|---|---|
| modes | array | Vision modes to simulate; default all |
| colors* | array | Colors in slot order (CSS syntax) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"colors"
],
"properties": {
"modes": {
"type": "array",
"items": {
"enum": [
"normal",
"deutan",
"protan",
"tritan",
"achromatopsia"
],
"type": "string"
},
"description": "Vision modes to simulate; default all"
},
"colors": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24,
"minItems": 1,
"description": "Colors in slot order (CSS syntax)"
}
},
"additionalProperties": false
}Generate a categorical chart palette of n colors (1-12) that maximizes perceptual separation under normal vision and colorblindness, with the given brand colors locked as anchors in slot order. Returns the palette, the worst pair distances, the engine's relaxation notes, a full accessibility audit against the background, and a link to open it in the app. Honest cap is 6 slots; above that the result says so.
| Argument | Type | Description |
|---|---|---|
| n | integer | Number of categorical slots |
| grid | string | Gridline color; defaults to a light or dark gray to match the background |
| anchors | array | Brand or required colors, kept exactly, in slot order (CSS syntax) |
| posture | string | kpi: few strong colors; comparative: balanced; exploratory: many muted |
| background | string | Chart background color |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"n": {
"type": "integer",
"default": 6,
"maximum": 12,
"minimum": 1,
"description": "Number of categorical slots"
},
"grid": {
"type": "string",
"description": "Gridline color; defaults to a light or dark gray to match the background"
},
"anchors": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"maxItems": 12,
"description": "Brand or required colors, kept exactly, in slot order (CSS syntax)"
},
"posture": {
"enum": [
"kpi",
"comparative",
"exploratory"
],
"type": "string",
"default": "comparative",
"description": "kpi: few strong colors; comparative: balanced; exploratory: many muted"
},
"background": {
"type": "string",
"default": "#ffffff",
"description": "Chart background color"
}
},
"additionalProperties": false
}