Chart Color System

Solve, audit and simulate colorblind-safe chart palettes. WCAG contrast, OKLab ΔE. Read-only.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
95%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~981Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (0.77% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "chart-color-system": {
      "url": "https://chart-color-mcp.vercel.app/mcp"
    }
  }
}

Remote endpoints

https://chart-color-mcp.vercel.app/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢solve_palette(n, anchors, background, grid, posture)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "n": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "default": 6,
      "description": "Number of categorical slots"
    },
    "anchors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 12,
      "default": [],
      "description": "Brand or required colors, kept exactly, in slot order (CSS syntax)"
    },
    "background": {
      "type": "string",
      "default": "#ffffff",
      "description": "Chart background color"
    },
    "grid": {
      "type": "string",
      "description": "Gridline color; defaults to a light or dark gray to match the background"
    },
    "posture": {
      "type": "string",
      "enum": [
        "kpi",
        "comparative",
        "exploratory"
      ],
      "default": "comparative",
      "description": "kpi: few strong colors; comparative: balanced; exploratory: many muted"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢audit_palette(colors, background, ramp)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "colors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 24,
      "description": "Palette colors in slot order (CSS syntax)"
    },
    "background": {
      "type": "string",
      "default": "#ffffff",
      "description": "Chart background color"
    },
    "ramp": {
      "type": "boolean",
      "default": false,
      "description": "true for a sequential or diverging scale (skips pairwise separation)"
    }
  },
  "required": [
    "colors"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢simulate_palette(colors, modes)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "colors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 24,
      "description": "Colors in slot order (CSS syntax)"
    },
    "modes": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "normal",
          "deutan",
          "protan",
          "tritan",
          "achromatopsia"
        ]
      },
      "description": "Vision modes to simulate; default all"
    }
  },
  "required": [
    "colors"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢build_ramp(kind, start, end, mid, steps, ...)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "sequential",
        "diverging"
      ]
    },
    "start": {
      "type": "string",
      "description": "First color (or the negative end of a diverging scale)"
    },
    "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"
    },
    "steps": {
      "type": "integer",
      "minimum": 3,
      "maximum": 24,
      "default": 7
    },
    "background": {
      "type": "string",
      "default": "#ffffff"
    }
  },
  "required": [
    "kind",
    "start",
    "end"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools