Skip to content
Back to search
100
MCP live v2.0.0 MCP 2025-11-25 streamable-http

Colour Memory

io.github.DigbyO/colour-memory

Cultural color intelligence. Every colour anchored to a person, a year, and a consequence.

Uptime
100.0%
5 direct probes · 30d
Response
935ms
last probe
Tools
91
callable
Resources
2
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
why this score
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
91 tools, 2 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
93 items in total; 3 or more earns these points.
pass Describes itself 10/10
90 characters; more than 30 earns these points.

Tools · 91

query_conceptual

Ask a cultural, historical, or material colour question. Returns named archive colours with provenance and cultural context. Works for abstract queries like 'grief' (returns Ophelia Violet, Titan's Gr…

extract_image_colours

Extract dominant colours from a photograph using Colour Memory's proprietary k-means++ algorithm. Requires either a public image_url, or an image_id. If you only have a raw uploaded file with no publi…

query_hex

Find the closest named archive colours to a hex value using CIEDE2000 perceptual distance.

palette_specify

Generate a complete interior specification from 2-8 hex values. Returns surface assignments, 60-30-10 proportions, lighting behaviour, and archive colour names. The result already carries the rendered…

colour_metrics

Returns numeric metrics derived from a single display colour: an estimated light reflectance value (LRV) and band, relative luminance, CIELAB lightness, chroma and hue angle, and Bradford correspondin…

colour_harmonies

Return complementary, triadic, analogous, and split-complementary harmonies matched to named archive colours. Also available: 'hay_contrast' -- D.R. Hay's (1838) documented contrast pairing between si…

accessibility_check

Evaluates contrast for a single foreground/background pair. For palettes or multiple colours, use accessibility_matrix instead, it replaces multiple accessibility_check calls in one response.

accessibility_matrix

Accept a palette array and return every foreground/background combination with contrast ratio, AA normal, AA large, AAA normal, AAA large pass/fail grades, and a summary. Use this instead of calling a…

accessibility_rules

Convert a palette WCAG matrix into actionable design-system rules. Returns safe pairs, AA-only pairs, large-text-only pairs, decorative-only pairs, best text colour per background, and component usage…

colour_slugs

Return every developer token format for a hex value: CSS variable, kebab-case, camelCase, PascalCase, Tailwind class, TypeScript const, SCSS variable. Archive-grounded name source with dE2000 distance…

palette_light_dark

Generate light-mode and dark-mode role maps from a palette. Analyses LRV, assigns background/surface/text/accent roles for each mode, checks body text contrast safety, and flags missing neutrals. The …

accessibility_font

Given a background hex and a palette of candidate foreground colours, return them ranked by contrast ratio with WCAG grades and specific recommendations for body text, large text, and UI components.

archive_search

Full-text keyword search across all archive colour names and notes. Find colours by name fragment, material, cultural reference, pigment type, or historical period. Complements conceptual embedding se…

colour_combination

Assess 2-5 colours as a combination for a given context (UI, data viz, fashion, interior, print, branding). Returns harmony type, clash warnings, contrast summary, and specific deployment rules for th…

palette_strict

Like palette_concept but with archive filtering and relevance controls. Use allowed_archives to restrict results to specific cultural traditions e.g. ['Japan'] for Japanese only. Use min_relevance to …

palette_pdf

Generate a premium branded PDF specification sheet from a palette of archive entries. Returns a downloadable PDF with full-bleed colour panels, archive names, provenance notes, RAL nearest match, LRV,…

palette_audit

Full palette quality audit. Scores on accessibility, cultural risk, tonal balance, colour diversity, and archive naming strength. Returns overall score 0-100, grade, and prioritised fix list. Enterpri…

brand_system

Complete brand colour system in one call. Returns colour roles with archive names, light and dark mode role maps, typography guidance, usage rules per colour, design tokens (CSS, Tailwind, Figma), and…

brand_asset_pack

Complete brand asset pack. Returns CSS variables, Tailwind config, Figma tokens JSON, citation cards, and a Markdown brand guide. Everything a brand team needs to ship. Deterministic. No LLM cost.

accessibility_simulate

Return simulated hex values for full-severity protanopia, deuteranopia and tritanopia only, using the Machado, Oliveira & Fernandes (2009) model (severity 1.0, linear sRGB), with a flag when a simulat…

colour_match_paint

Find the nearest named colour in commercial paint systems including Farrow and Ball and Little Greene.

colour_card

Look up a named colour and return its hex, archive, provenance, and cultural notes.

meta_capabilities

Return a live inventory of all active endpoints and MCP tools. Use this first to discover what the API can do before making calls. Returns tool count, endpoint list, MCP-exposed tools, and usage notes…

system_status

Zero-argument diagnostic call: returns exactly what build is live right now (build_sha, schema_version, schema_hash, archive_revision, tool_count, generated_at, server_environment). Use this to confir…

colour_story

Given a hex value, returns a rich narrative about that colour's cultural journey — where it has appeared in history, what it has meant to different civilisations, and what archive names it carries. Es…

palette_concept

Generate a historically grounded colour palette from a cultural concept or theme. Returns 4-6 coordinated archive colours with hex values, proportions, and provenance. Examples: 'Victorian mourning', …

colour_mix

Simulate perceptually modelled subtractive mixing of two colours in CIE Lab space (not RGB screen blending). Returns the resulting mixed hex value and its nearest archive match with cultural context. …

colour_timeline

Given a concept or colour name, traces its documented appearances across cultures and centuries in chronological order. Returns a dated sequence of archive entries showing when and where the colour ap…

image_palette

Upload an image (base64 encoded) and extract its dominant colour palette, with each colour matched to its nearest named archive entry with full cultural provenance. Uses K-means++ extraction; sRGB pix…

colour_compare

Deep perceptual and semantic comparison between any two hex values. Returns quantified differences in LRV, chroma, hue angle, warmth, and CIEDE2000 distance, plus cultural context on both — which is m…

colour_cultural_risk

Cultural risk assessment for a hex value or palette (symbolic weight, regional taboos, religious associations, market flags). This is one component of colour_passport for single colours. Use colour_pa…

design_session

One-call compound tool. Submit a concept, medium, audience, and constraints — receive a complete design package: historically grounded palette, cultural narrative, commercial paint matches, WCAG acces…

image_personal

Upload a portrait photo and receive a full personal colour analysis. Determines your seasonal type (Spring, Summer, Autumn, or Winter), colour depth (light, medium, or deep), and undertone (warm, cool…

style_match

The colour question every stylist gets asked: does this bag go with this outfit? Submit your outfit items as hex values with labels (dress, bag, shoes, coat, belt, scarf, etc.) and receive a verdict o…

interior_specify

Generate a complete interior colour specification from a concept or brief. Input a room concept, type, and style — receive a professionally structured colour scheme with 60/30/10 surface assignments, …

house_specify

Generate a complete multi-room house colour scheme from a single archive. Where the retrieved evidence supports it, rooms are grouped by documented provenance (same object, same pattern colourway, sam…

palette_generate

Send a palette of up to 12 slots, locking some with hex values and leaving others empty. Empty slots are filled with the nearest CIEDE2000 archive match, interpolated from the locked anchors. Optional…

palette_gradient

Generate a perceptually smooth gradient between 2-5 archive anchor colours. Each interpolated stop snaps to the nearest real archive colour by CIEDE2000. Anchor stops are kept true to their source. Ch…

palette_translate

Map any list of hex values into a target archive using CIEDE2000 nearest-neighbour matching. Each input hex is matched to the closest named colour in the chosen archive, with a delta-e relevance band …

archive_cliche

Find the most surprising archive colour for a concept and generate a memorable one-liner subverting the obvious expectation. Supply a concept (e.g. 'love', 'grief', 'luxury', 'power') and optionally t…

colour_verdict

Evaluate a hex colour for a specific use case, market, and medium. Returns a decisive verdict: use_with_confidence, use_with_caution, or avoid. Includes strengths, risks, avoid-if scenarios, and bette…

palette_verdict

Evaluate a palette of 2-8 hex values for a use case, market, and medium. Returns a verdict (strong / strong_with_adjustment / weak / avoid), a score 0-100, the role of each colour, the single biggest …

agent_brief

Generate a complete colour direction package for another AI agent or image generation model. Fetches a historically grounded archive palette from the concept, then produces: an agent brief (colour dir…

colour_strategy

Single-call commercial colour strategy report. Combines archive grounding, verdict, brand fit, market risk, category cliche check, material behaviour, copy hooks, and usage rules. Input: hex + brand_c…

archive_report_brief

One-call complete archive research package for a document, PDF, or editorial brief. Input: title, audience, themes, archives to draw from, things to avoid, number of colours. Output: ranked colour car…

palette_heritage

Given a legacy palette, generate an archive-grounded premium support system. For each existing colour: identifies its historical archive anchor, names it, and scores its provenance confidence. Detects…

archive_coverage_gap

Given a list of themes, report which are well-evidenced in the archive and which are under-evidenced or missing. Returns a coverage matrix: for each theme, entries found, coverage grade (strong/modera…

archive_cultural_anachronism

Check a list of colour entries for anachronism risk. Detects whether the primary source date falls outside the requested period, whether the archive is a known modern source (RacingSilks, FootballStri…

session_brief

Single-call forensic colour brief generator. Runs coverage gap analysis, pulls best archive colours, checks for anachronisms, scores claim roles (anchor/support/analogue/provocation/reject), auto-reje…

index_resonance

Colour Memory's proprietary semantic metric. Score how tightly the material origin of a colour aligns with its social consequence. 1.00 = material and consequence are indistinguishable (blood as progn…

archive_evidence_gap

Given a hex value and a proposed claim about it, return whether the archive supports that claim, what is missing, what kind of source would be needed, and safe agent wording. This is Colour Memory's a…

brand_collision

Can this brand own this colour against these competitors in this market? Input: brand hex, brand name, competitor hexes and names, market, region. Returns CIEDE2000 distance to each competitor, archiv…

brand_report

One-call complete brand colour intelligence report. Input: hex + brand context + markets + medium + product type. Output: archive anchor, cliche contradiction, colour DNA, strategy verdict, commercial…

brand_audit

Fast, fully deterministic brand colour audit. Accepts a palette array plus market, use_case, medium and brand_category. COMPUTED SYNCHRONOUSLY, no model call of any kind: colour roles with archive nam…

agent_verify

Verify that an AI-generated image actually used the colours specified in an agent_brief call. Supply the generated image (URL or base64) and the target palette from agent_brief colour_tokens. Returns …

colour_passport

Canonical single-call colour truth object. Returns everything known about a hex value: colour science (Lab, LCh, hue, chroma, depth, temperature, LRV), archive anchor with dE2000, claim_strength, do_n…

colour_passports

Batch version of colour_passport. Submit up to 20 hex values in one call. Returns a full Colour Passport for each unique hex: colour science, archive anchor, evidence grade, do_not_say constraints, he…

colour_dna

Compact semantic fingerprint for a single hex colour. This is one component of colour_passport. Use colour_passport for a general colour profile; use this only when the user explicitly wants the finge…

ecommerce_copy

Generate complete ecommerce product copy for any colour. Input: hex + product type + tone + channel. Output: colour name, product title, short description, long description, SEO title, meta descriptio…

colour_hooks

Generate a hook sentence, three-sentence story, tweet, image prompt, and follow-up questions for any hex colour. Backed by the nearest archive colour's cultural provenance. Tunable by audience (genera…

archive_provenance

Explains the provenance of a named archive colour: documented fact vs computational derivation vs cultural interpretation, with confidence and citation format. This is one component of colour_passport…

colour_forensics

Assess whether a hex colour can be safely specified for a physical application. Returns: specification_safe verdict (yes / conditional / avoid), risks, required actions, light behaviour under three il…

palette_iterate

Refine an existing palette using natural language feedback. Submit your current palette and feedback such as more melancholic, too corporate add warmth, or better for Gen Z luxury. Returns a refined p…

colour_variants

For any named archive colour, return historical variants, lighter and darker versions with archive matches, and cultural siblings. Essential for designers exploring around a colour. The result already…

palette_export

Export a palette to CSS custom properties, Figma design tokens, Tailwind config, ASE hex list, or JSON. Each colour is automatically named from the archive. Embeds Colour Memory directly into design w…

palette_compare

Deep perceptual, cultural, and commercial comparison between two palettes. Returns timelessness scores, commercial strength, cultural depth, emotional difference, and a winner verdict for the stated u…

ecommerce_namer

Generate archive-grounded colour names for up to 40 product SKUs. Input: list of hex values, product category, brand name, naming style. Output: for each hex -- archive name, source citation, one-line…

ui_states

Generate a complete WCAG-compliant UI state palette from a brand hex. Returns colours for: brand, hover, active, disabled, focus ring, success, warning, error, info, surface subtle, surface strong. Al…

colour_namer

Generate memorable, archive-verified colour names for any hex value. Choose from naming styles: geographical, poetic, material, literary, botanical, industrial, or mixed. Every name is grounded in a r…

palette_swatch

Generate a clean, text-free PNG swatch image from hex colours. Returns a URL to the PNG. Use for Midjourney --sref style references or design mood boards. Supports photo-proportional weights from pale…

palette_analyse

Analyse a palette of hex colours against the Colour Memory archive. For each colour returns the nearest named archive entry with cultural name, source, claim_strength (A-E), do_not_say guardrails, and…

ingest_image

Upload an image to Colour Memory for ephemeral processing. Returns image_id valid 5 minutes. Pass image_id to palette_extract or image_brief. Use for any image over 50 KB.

palette_extract

Extract dominant colours from an image using k-means++ clustering. Accepts a public image URL or base64-encoded image. Returns hex values with proportional weights sorted by luminance. Optionally runs…

image_brief

Compound endpoint: one image in, full creative brief out. Extracts dominant colours, matches them to the Colour Memory archive with coherent cultural naming, understands the scene, identifies the styl…

project_get

Retrieve summary metadata for a durable house project you own -- title, project type, current version number, schema/archive revision, created/updated timestamps, and the content hash of the requested…

project_list

List durable house projects owned by the calling API key, most recently updated first. Anonymous (keyless) calls always return an empty list -- temporary anonymous projects are never listable, only re…

project_versions

List every stored version of a durable house project you own, oldest first, with each version's content hash, build/schema/archive revision, and creation time. Version 1 is always immutable and always…

project_delete

Soft-delete a durable house project you own. Idempotent -- deleting an already-deleted, unknown, or not-owned project_id returns the same successful-shaped response either way, and never discloses whi…

project_export

Export the same house-flagship content palette_pdf renders as a genuinely editable Word document or Excel workbook -- for a client who needs to annotate the scheme, or a contractor building a material…

brand_guideline_specify

Generates the case for a brand's colours, not just the colours themselves: three genuinely different, archive-grounded candidate palettes from a brand brief, each scored for distinctiveness against na…

brand_guideline_status

Resolves a brand_job_ref returned by brand_guideline_specify when its race-to-complete window elapsed before generation finished. Read-only, in-process lookup -- never re-runs generation. Returns {"st…

brand_guideline_select

Records which brand_guideline_specify candidate was chosen, which colours should be locked for future iteration, and which claims should be suppressed -- produces a revised brand_ref (same reference, …

brand_guideline_pdf

Renders a client-facing brand colour standard from an existing brand_ref. The document covers the direction carried forward and its assessment, the colour system in proportion, the argument for the pa…

brand_guideline_claims

Resolves claim_id values (returned inline on every colour by brand_guideline_specify and brand_guideline_select) into their full claim record: source title/locator/citation, the exact permitted claim …

render_colour_result

Show a finished colour result to the customer AS COLOUR. Call this last, once the palette, house scheme, brand system or audit you are going to hand over has been decided -- it presents what you alrea…

palette_finalize

Package a palette YOU HAVE ALREADY CHOSEN into a professional, visible, downloadable deliverable. Call this ONCE, after you have decided the final colours for the customer -- it verifies and packages …

tool_guide

Deterministic tool-routing lookup -- not an LLM call, always instant, never consumes archive or LLM credit. Give it a goal in plain words (e.g. 'I have a brand colour and want to check it against comp…

historical_colour_query

Ask a question about how historical colour authorities actually reasoned, and get evidence with provenance rather than a summary. Covers seven validated source builds -- Jennings (paint recipes, 1902)…

colour_relationships

What is this archive record connected to, and why? One-hop lookup over Colour Memory's stored relationship graph -- today populated for PigmentLineage, whose 348 design_combination nodes are Wada's 19…

why_connected

Are these two specific archive records connected -- and if so, exactly why? Traces the real path between them through Colour Memory's stored relationship graph (e.g. two Wada colours that share member…

vanderpoel_pairing

Emily Noyes Vanderpoel's documented 'good' dyad/triad hue groupings (Color Problems, 1902, Plate XXXVI 'Good Dyads or Pairs' and Plate XXXVII 'Good Triads'), served from the build artefacts vanderpoel…

Resources · 2

Colour Memory result

Shows a Colour Memory palette as colour.

ui://colour-result/v1.html
Colour Memory palette

The final palette, its values and its downloads.

ui://colour-memory/palette-v1.html

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "colour_memory": {
      "url": "https://colour-memory-api-production.up.railway.app/mcp",
      "transport": "streamable-http"
    }
  }
}