Cvdsafe

io.github.vince-gonzalezPublished by GitHub account vince-gonzalezv0.2.0Updated Oct 25, 2026

Check if a palette or image is colorblind-safe, generate safe palettes, check WCAG contrast.

VerifiedSTDIODesktop onlyDeveloper ToolsMedia & Design

Overview

AI-generated overview

A local MCP server that lets an assistant check whether a color palette or image is colorblind-safe, generate safe palettes, and check WCAG contrast.

What you can do
Check whether a color palette is colorblind-safe, using deficiency simulation and color-difference math, and get a pass or fail result suitable for CI checks. Generate colorblind-safe palettes, including verified Okabe–Ito based sets. Check WCAG contrast for colors. The README also describes related packages for recoloring images to simulate protan, deutan and tritan vision, matplotlib color cycles, and Ishihara-style test plates, and says an assistant can generate a plate as a native tool.
When to use it
Useful when designing charts, maps, dashboards or UI colors and you want an assistant to verify accessibility rather than guess. Also fits CI-style checks where a palette must pass a colorblind-safety test.
Requirements
Runs as a local process over stdio, installed from the npm package cvdsafe-mcp. No authentication, environment variables or headers are declared. The README also mentions a Python package and a CLI, but the MCP server itself is the npm package.
Before you install
The README states that everything runs on the device with no account and no upload, so no credentials or third-party data transfer are indicated. The README also notes that browser-based vision tests are not a diagnosis and have not been clinically validated; treat any such output as informational, not medical advice.

Installation

In SourceWeft

  1. Open Cvdsafe in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

╔════════════════════════════════════════════════════════════════════════════════════════════╗║                                                                                            ║║              ██████╗ ██████╗ ████████╗██╗ ██████╗ ██████╗ ██╗   ██╗██╗███████╗             ║║             ██╔═══██╗██╔══██╗╚══██╔══╝██║██╔════╝██╔═══██╗██║   ██║██║╚══███╔╝             ║║             ██║   ██║██████╔╝   ██║   ██║██║     ██║   ██║██║   ██║██║  ███╔╝              ║║             ██║   ██║██╔═══╝    ██║   ██║██║     ██║▄▄ ██║██║   ██║██║ ███╔╝               ║║             ╚██████╔╝██║        ██║   ██║╚██████╗╚██████╔╝╚██████╔╝██║███████╗             ║║              ╚═════╝ ╚═╝        ╚═╝   ╚═╝ ╚═════╝ ╚══▀▀═╝  ╚═════╝ ╚═╝╚══════╝             ║║                                                                                            ║║                 your eyes, tested in the browser, with nothing leaving it                  ║║                                                                                            ║╚════════════════════════════════════════════════════════════════════════════════════════════╝

An open, published method for color vision — and 17 vision tests built on it. Everything runs on the device. No account, no upload, no image ever sent anywhere.

The colorimetry is not a private formula: it is Machado, Oliveira & Fernandes (2009) deficiency simulation with CIEDE2000 color difference, published open access at doi.org/10.5281/zenodo.21310578, and shipped as packages so you can run the math yourself and check our numbers against yours.

Use the engine

bash
pip install cvdsafe          # is this palette colorblind-safe?npm  install cvdsafe
python
import cvdsafecvdsafe.is_safe(["#d7191c", "#1a9641"])   # False — red and green collapse under deutan
bash
npx cvdsafe "#d7191c" "#1a9641"           # exits 2 if the palette is unsafe — CI-friendly
what you wantpackage
Is this palette safe?cvdsafe · npm + PyPI, with a CLI
Show me how it lookscvdsim — recolors an image for protan/deutan/tritan
Give me safe colorssafepalette — Okabe–Ito, extended and verified
For matplotlibcvdmaps — set_cycle() and you're safe
Make test platescvdplate · ishihara
Acuity mathlogmar — logMAR ↔ Snellen ↔ decimal
One deficiencyprotan · deutan · tritanopia · dichromacy · achromatopsia · trichromacy

For LLM tools: cvdsafe-mcp and colorblind-mcp are MCP servers, listed in the official Model Context Protocol registry — so an assistant can check a palette or generate an Ishihara plate as a native tool.

The tests

Color vision, D-15 arrangement, hue discrimination, anomaloscope-style matching, contrast sensitivity, acuity, astigmatism, Amsler grid, blind spot, vernier alignment, flicker fusion, saturation, dominance, reaction, stereo depth, digital eye strain, and a shape-based test for kids.

A test on a web page cannot be a diagnosis: an uncalibrated display, ambient light and viewing distance all move the result. Each test says so where it reports, and points at an eye examination rather than standing in for one.

Audit it yourself. opticquiz.com/methodology answers the eight questions worth asking of any online vision test — who made it, what it measures, what it assumes about your screen, whether it has been clinically validated (it has not), what it cannot measure, and who pays for it.

Also in here

Translations (de, es, fr, hi, it, pt, zh), a browser extension (reviewed and listed by Mozilla), a VS Code extension, a Figma plugin, an embeddable widget, and the research notes behind the plate colors under research/.

MIT licensed. Issues and corrections welcome — if a number here disagrees with yours, that is a bug worth reporting.


╔════════════════════════════════════════════════════════════╗║                                                            ║║      ███████╗      ██╗  ██╗███████╗██╗   ██╗███████╗       ║║      ██╔════╝      ██║ ██╔╝██╔════╝╚██╗ ██╔╝██╔════╝       ║║      █████╗  █████╗█████╔╝ █████╗   ╚████╔╝ ███████╗       ║║      ██╔══╝  ╚════╝██╔═██╗ ██╔══╝    ╚██╔╝  ╚════██║       ║║      ██║           ██║  ██╗███████╗   ██║   ███████║       ║║      ╚═╝           ╚═╝  ╚═╝╚══════╝   ╚═╝   ╚══════╝       ║║                                                            ║║               ·   C  R  E  A  T  I  V  E   ·               ║║                                                            ║║          ────────────────────────────────────────          ║║                                                            ║║                      Vincent Gonzalez                      ║║                         f-keys.com                         ║║                 ORCID 0009-0005-3640-014X                  ║║                                                            ║╚════════════════════════════════════════════════════════════╝

Part of F-Keys — independent hardware, software and internet products. See the working log and live status.

Source: README.md at commit 9e2fdfb

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts