CI-friendly accessibility audit for chart color palettes: WCAG contrast, CVD simulation, OKLab ΔE.
MCPpedia last refreshed this data
io.github.socraticstatic/chart-color-audit is an MCP server that CI-friendly accessibility audit for chart color palettes: WCAG contrast, CVD simulation, OKLab ΔE. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 59/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-socraticstatic-chart-color-audit": {
"args": [
"-y",
"chart-color-audit"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Accessibility audit for chart color palettes. Answers one question with math: can everyone still tell your data series apart?
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'chart-color-audit' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked chart-color-audit against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in design
AI-native design editor. Open-source Figma alternative.
UAE Design System (AEGOV DLS) for AI assistants: components, tokens, validation. Not TDRA-official.
3D & AR SDK for Android, iOS, Web — API docs, samples, validation, and code generation.
AI image generation and editing with prompt optimization and quality presets. Powered by Nano Banana
MCP Security Weekly
Get CVE alerts and security updates for io.github.socraticstatic/chart-color-audit and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Accessibility audit for chart color palettes. Answers one question with math: can everyone still tell your data series apart?
Plenty of tools check text contrast. This one checks the thing dashboards actually break: whether your palette survives colorblindness. It simulates deuteranopia, protanopia, and tritanopia with the published Machado, Oliveira & Fernandes 2009 matrices, measures pairwise separation in OKLab, checks WCAG 2.2 contrast against your background, and fails your build when a change quietly breaks any of it.
| you are | you want | go to |
|---|---|---|
| a designer with a palette in hand | a verdict right now, nothing installed | 1 · Try a palette |
| a team with tokens in a repo | the build to fail when a color change breaks accessibility | 2 · Gate your CI |
| an engineer building tooling | the audit as a typed function | 3 · Call it from code |
| working with Claude or another agent | the audit as an MCP tool | 4 · Wire it into an agent |
npx chart-color-audit --colors "#4E79A7,#F28E2B,#E15759" --bg "#fff"
chart-color-audit · 3 colors on #ffffff · mode: perceptual
vision min ΔE closest pair reading
· normal 14.6 2 ↔ 3 clearly distinct
· deutan 11.9 2 ↔ 3 clearly distinct
· protan 11.9 1 ↔ 3 clearly distinct
· tritan 10.3 2 ↔ 3 clearly distinct
· achromatopsia 5.2 1 ↔ 3 distinguishable
contrast vs background: worst 2.42:1 (slot 2, needs ≥ 3:1)
✗ slot 2 #f28e2b — 2.42:1
FAIL — 1 finding:
· contrast: slot 2 (#f28e2b) is 2.42:1 vs. background (needs ≥ 3:1, WCAG 2.2 SC 1.4.11).
Those three colors separate cleanly under every colorblind simulation. The orange still fails: 2.42:1 against white, below the 3:1 floor for chart marks. Pale bars on white is one of the oldest dashboard sins, and this is it, caught in numbers.
Exit codes: 0 pass, 1 fail, 2 bad input. That is the whole CI
contract.
ΔE is perceptual color distance (OKLab × 100). About 2 is the edge of what a human eye can tell apart.
| reading | min ΔE | meaning |
|---|---|---|
| clearly distinct | ≥ 10 | survives a projector and a hallway glance |
| distinguishable | ≥ 2 | a careful reader separates the series |
| patterns carry identity | < 2 | color alone is not enough; dash/shape must carry it |
| COLLISION | ≈ 0–1 | two series are the same color for these viewers |
closest pair names the two slots (1-based) that came nearest. Fix those
two, re-run, repeat.
npx chart-color-audit --colors <list> --bg <color> [options]
npx chart-color-audit [--config chartaudit.config.json]
npx chart-color-audit mcp
| flag | what it does |
|---|---|
--colors <list> | comma-separated palette, any CSS color syntax: hex, hsl(), rgb(), oklch(), named, raw triples ("222 47% 6%") |
--bg <color> | background the marks render on |
--mode <mode> | perceptual (default) · redundant-encodings · strict (see Floors) |
--config <path> | config file, default ./chartaudit.config.json |
--json | full result as JSON: verdict, failures[], perVision[], contrast[], semantic[], text[] |
--version, --help | the usual |
Two files, no dependencies added.
Step 1. Put chartaudit.config.json in your repo root, pointed at the
tokens you already have:
{
// Where your tokens live: a .css file (custom properties) or a
// W3C design-tokens .json file. Optional; you can also write
// literal colors directly in the fields below.
"tokens": "src/i
... [View full README on GitHub](https://github.com/socraticstatic/chart-color-audit#readme)