Rnv Color Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Rnv Color Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.RNVizion/rnv-color-mcp -->
A remote MCP server for a complete color workflow: mix, convert, harmonize, and remember palettes, called in plain language by Claude (or any MCP client), and by anything else that speaks MCP.
The color logic already lived in my desktop suite: a mixer, a palette manager, a picker. Instead of rebuilding it for every new project, I lifted the engine out once and exposed it as a single server. A Claude conversation calls it today; a fashion design app will call the same backend tomorrow. Build the engine once, let both consume it.
Underneath, it's a small thesis about working with LLMs: a model is great at deciding what you want and terrible at exact arithmetic. So the model picks the tool and the intent, and the tool owns the precise values. The server resolves or it refuses; it never guesses a color.
| Tool | What it does |
|---|---|
mix_colors | Blend up to 12 colors. Modes: rgb, hsv, lab (digital) and paint (Kubelka-Munk pigment physics), ryb (artist's wheel), cmy (subtractive). |
convert_color | Convert between hex, rgb, hsv, hsl, lab. |
generate_harmony | complementary, analogous, triadic, split-complementary, tetradic/square, monochromatic, compound. |
color_difference | Perceptual difference (Delta-E, CIEDE2000 or CIE76) between two colors. |
contrast_check | WCAG contrast ratio plus AA/AAA pass/fail for accessible text. |
transform_text | 11 exact case transforms (UPPERCASE, camelCase, snake_case, …). |
save_palette / list_palettes / get_palette | Name a palette, recall it later. Persists across restarts. |
Every color input accepts a hex (#d2bc93), a CSS name (red), an RNV brand name (brand gold, near-black), or a saved-palette reference (Spring line, or Spring line:2 for its second swatch). Brand names win over CSS names on collision; css:gold forces the universal one.
This is a hosted server, so there's nothing to install. In Claude: Settings → Connectors → Add custom connector, then paste:
https://rnvizion-rnv-color-mcp.hf.space/mcpLeave auth blank, add it, then toggle it on in a chat with the + menu.
Once connected, just talk:
"Save a palette named Spring line: near-black and brand gold." "Pull my Spring line palette and give me three complementary accents for outerwear." "Mix paint-red and paint-blue like real pigment."
The first call saves; the second composes get_palette → generate_harmony; the third runs the Kubelka-Munk paint model, so the blend darkens the way mixed pigment actually does, not the way averaged light does.
pip install -r requirements.txt
python server.py # Streamable HTTP on $PORT (default 7860)
python tests/server_test.py # exercises all 9 tools in-processSet HF_TOKEN to write palettes through to a private Hugging Face Dataset for durable storage.
engine/brand.py; theresolver imports them, so a brand value is defined in exactly one place. See BRAND_COLORS.md.
library, lifted Qt-free from the desktop apps. Only the server layer needs fastmcp.
Python · FastMCP (Streamable HTTP) · Hugging Face Spaces (Docker) · huggingface_hub for durable palette storage.
Built by Christian "RNVizion" Smith.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.