Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here
rnv-color-mcp logo

rnv-color-mcp

RNVizion/rnv-color-mcp
✓ Verified working · Jul 10, 2026 1 starsv1.0.0HTTPRegistry activeMITUpdated 2026-06-25Community

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

claude mcp add --transport http rnv-color https://rnvizion-rnv-color-mcp.hf.space/mcp

Summary

Exposes RNV color workflow tools for color mixing, conversion, harmony generation, text transformation, and palette management, allowing LLMs to directly compute colors and manipulate palettes.

Connect from your MCP client

Claude Code

Run this once and Claude Code registers the server for you:

claude mcp add --transport http rnv-color https://rnvizion-rnv-color-mcp.hf.space/mcp

Claude Desktop

Add this to claude_desktop_config.json under Settings → Developer → Edit Config:

{
  "mcpServers": {
    "rnv-color": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://rnvizion-rnv-color-mcp.hf.space/mcp"
      ]
    }
  }
}

Cursor

Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):

{
  "mcpServers": {
    "rnv-color": {
      "url": "https://rnvizion-rnv-color-mcp.hf.space/mcp"
    }
  }
}

Cline and other MCP clients

Most MCP clients accept the standard mcpServers JSON block:

{
  "mcpServers": {
    "rnv-color": {
      "url": "https://rnvizion-rnv-color-mcp.hf.space/mcp"
    }
  }
}

Codex CLI

Codex CLI connects to remote servers via config.toml — add this block to ~/.codex/config.toml:

# ~/.codex/config.toml
[mcp_servers.rnv-color]
url = "https://rnvizion-rnv-color-mcp.hf.space/mcp"

OpenClaw

OpenClaw reads MCP servers from the mcp.servers section of ~/.openclaw/openclaw.json (managed via `openclaw mcp add` or the mcporter skill):

{
  "mcp": {
    "servers": {
      "rnv-color": {
        "url": "https://rnvizion-rnv-color-mcp.hf.space/mcp",
        "transport": "streamable-http"
      }
    }
  }
}

README.md

--- title: RNV Color MCP emoji: 🎨 colorFrom: gray colorTo: yellow sdk: docker app_port: 7860 pinned: false short_description: Color workflow MCP server ---

<!-- mcp-name: io.github.RNVizion/rnv-color-mcp -->

RNV Color MCP

![rnv-color-mcp MCP server](https://glama.ai/mcp/servers/RNVizion/rnv-color-mcp) ![Mentioned in Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers) ![tests](https://github.com/RNVizion/rnv-color-mcp/actions/workflows/tests.yml)

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.

Why this exists

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.

What it does

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

Connect in 30 seconds

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/mcp

Leave auth blank, add it, then toggle it on in a chat with the + menu.

Try it

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

Authentication

The server implements OAuth 2.1 resource-server authentication with enforced per-tool scopes; the public endpoint runs with it disabled, so connecting by URL works with no setup.

When enabled (RNV_AUTH=1 plus a key source), the server validates bearer tokens against issuer, audience, expiry, and signature; serves RFC 9728 protected resource metadata at /.well-known/oauth-protected-resource/mcp; returns a spec-compliant WWW-Authenticate challenge on 401; and enforces two scopes: read covers the eight read-only tools, write covers save_palette, the only tool that mutates anything. A token without the write scope does not see save_palette in its tool list at all; out-of-scope tools are hidden rather than refused, so nothing leaks about what exists behind a scope you lack.

Enforcement is covered by the test suite: 18 tests, run in CI on every push, spanning the token-validation matrix (missing, malformed, wrong issuer, wrong audience, expired, valid) and end-to-end scope enforcement over real HTTP. The suite mints its own keys and requires no credentials. The tests cover the auth layer; the color engine itself is not under automated test.

Moving from the self-issued development key to a real identity provider is configuration, not code: point RNV_AUTH_JWKS_URI at the provider's JWKS endpoint and set the issuer and audience to match.

| Variable | Purpose | |---|---| | RNV_AUTH | The switch. 1 / true / yes / on enables auth; unset means off. | | RNV_AUTH_JWKS_URI | A provider's JWKS endpoint. Use this or RNV_AUTH_PUBLIC_KEY. | | RNV_AUTH_PUBLIC_KEY | A static PEM public key, for development against a self-issued keypair. | | RNV_AUTH_ISSUER | Expected token issuer; also advertised as the authorization server. | | RNV_AUTH_AUDIENCE | Expected token audience. Bound to the /mcp path. | | RNV_AUTH_BASE_URL | Server base URL, without /mcp. |

With RNV_AUTH on and no key source set, the server refuses to start rather than coming up unprotected.

Run it yourself

pip install -r requirements.txt
python server.py                  # Streamable HTTP on $PORT (default 7860)

pip install -r requirements-dev.txt
python -m pytest                  # 18 auth + scope tests
python tests/server_test.py       # smoke: exercises all 9 tools in-process

Set HF_TOKEN to write palettes through to a private Hugging Face Dataset for durable storage.

Notes

resolver imports them, so a brand value is defined in exactly one place. See BRAND_COLORS.md.

  • Engine is dependency-free. The color math, harmony, and text logic are pure standard

library, lifted Qt-free from the desktop apps. Only the server layer needs fastmcp.

  • Honest by design. An unknown color name is refused, not guessed. An unverifiable token is

refused, with a reason. Same principle at both layers.

Stack

Python · FastMCP (Streamable HTTP) · Hugging Face Spaces (Docker) · huggingface_hub for durable palette storage.

---

Built by Christian "RNVizion" Smith.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use AI & ML servers.