Colour Memory - Cultural Color Intelligence for AI logo
MCP server directory

Colour Memory - Cultural Color Intelligence for AI

One of the ways to connect Colour Memory - Cultural Color Intelligence for AI

The world's only historically grounded colour archive built for AI agents. Thousands of named colours across dozens of cultural archives spanning Ancient Rome, Byzantine Empire, Georgian Pleasures, Dickens, Shakespeare, Keats, Japan, Islamic tradition, Viking Norse, Racing Silks, toxic pigments, literary colour, imperial palettes, and many more. Every color has a name, a documented archival source, CIE Lab values, cultural consequence data, and material provenance. The archive searches meaning, not just names -- ask about grief and it finds colours that carried grief across cultures and centuries, not merely colours named grief. Built as a retrieval system, not a generator. Deterministic, evidence-based, source-cited. The anti-hallucination layer for colour history. Prefer a direct connection? Point your MCP client at <https://api.colourmemory.com/mcp> — no signup, no key for the free tools.

Colour Memory provides AI agents and creative tools with researched color intelligence, including history, provenance, accessibility, and cultural context, with evidence clearly stated.

Version:
hosted
Publisher:
digby-oldridge
Pricing:
Free for non-commercial use, with paid plans starting at £12 per month for commercial use.
Summary written by google/gemini-2.5-flash-lite from the server’s own site and README; facts above come from the registries.
Logo: https://www.colourmemory.com/og-image.png

Install

Generated from the server’s transport data — never hand-written. Placeholders in angle brackets are yours to fill.

Run it with its own identity, a budget you set, and every call audited — no local config to keep in sync.

Add to a connect0 project

You will sign in first, then land back on this page.

What it can do

As declared by the publisher

Tools · 93

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

  • 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 accessibility\_check multiple times for a palette.

  • 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 rules. Deterministic, no LLM cost.

  • accessibility_simulate

    Return simulated hex values for protanopia, deuteranopia, and tritanopia using the Brettel-Vienot-Mollon model.

  • 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 direction in prose), colour tokens with hex values and roles, a model-specific image generation prompt, a negative prompt, and lighting notes. Supports midjourney, flux, dalle, stable\_diffusion. Example: task='luxury hotel bedroom', concept='Ottoman winter luxury', model='midjourney'. Use this to make Colour Memory the colour layer for other AI systems. Archive-grounded retrieval is evidence-filtered: entries with claim\_role='reject' (no primary source and no period connection), stub entries, blank-source entries, and entries below minimum\_claim\_strength are never selected. If fewer than palette\_size colours pass these filters, the call returns an honest incomplete result (ok:false, error\_code:INSUFFICIENT\_EVIDENCE\_ELIGIBLE\_PALETTE) rather than padding the palette with rejected or weak evidence. Negative constraints (from 'avoid' or negation phrases in concept like 'must never', 'without', 'not') are also applied to retrieval, not just flagged afterward -- a brief that says a wedding must never feel funereal will not surface mourning-themed colours in the first place. locked\_palette calls skip evidence filtering entirely since the caller is supplying colours directly, not requesting archive evidence.

  • 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 a fidelity score 0-100, dE2000 distance per colour, match quality per colour (accurate/acceptable/drifted/ignored), and an overall verdict. Use after agent\_brief + image generation to close the colour loop.

  • archive_audit

    Run a data quality audit on any named archive. Returns entry count, health score 0-100, grade A-D, and issue counts for: empty colour\_notes, empty primary\_source, weak notes, duplicate names, duplicate hex values, and malformed hex codes. Also returns the first 20 affected colour names per issue type and a prioritised fix list. No Claude call — pure archive data analysis. Use before building new archive content to establish a baseline, or after a batch import to verify data quality.

  • 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 the expected colour (e.g. 'red' for love). The archive finds the contradiction and Claude writes the one-liner, short story, and tweet. Example: love + red returns Shakespeare's dark green with 'Love is not red. It is the green of someone still waiting in a field.' Use this for public-facing demos, content, and brand storytelling.

  • 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/moderate/weak/missing), best match with claim strength, and what source type would be needed to improve coverage. Use this BEFORE building an archive\_report\_brief or brief\_forensic to know where the evidence is strong and where gaps will appear. Prevents building beautiful reports that quietly ignore half the brief.

  • 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, FootballStrips), and returns a period\_relevance score and safe phrasing. Essential for historical documents: prevents a 2011 Jockey Club racing silk registration being presented as Georgian evidence. Returns anachronism\_risk (none/low/medium/elevated/high), period\_relevance score 0-1, safe\_phrasing, and unsafe\_phrasing for each entry.

  • 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 anti-hallucination endpoint. It turns the absence of evidence into a forensic finding rather than a gap to fill with invention. Example: hex #4A535C + proposed claim 'cyanosis in a death chamber' returns: nearest archive support, support level (supported/partial/unsupported), what source type is needed, and safe wording for the agent to use. Essential for museum, documentary, editorial, legal, and forensic workflows.

  • 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, but also a standalone research tool for deep provenance work (museum, documentary, editorial). Use colour\_passport for a general profile; call this directly for research workflows needing full source-chain detail.

  • 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 cards with full provenance, story order, source confidence flags, pull quote, CTA line, CSS tokens, image prompt for Midjourney/Flux/DALLE, editorial argument, weakest and strongest entries identified. Replaces chaining archive\_search + get\_colour\_card + cliche\_breaker + agent\_brief separately. Two Claude calls total. This is the endpoint for building premium archive documents, PDFs, briefs, and editorial content. Use this first for any document workflow.

  • 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 search with exact keyword matching. Examples: 'cerulean' (28 matches, e.g. Bourton Cerulean), 'Prussian' (187 matches spanning pigment history), 'medieval' (over 1,000 matches across period archives). Never returns a bare empty result for a genuinely obscure query -- result\_path in the response is 'direct' (exact keyword hit), 'broadened' (archive restriction dropped), or 'redirected' (fell back to conceptual/semantic search) so you always know which one fired. Set entity\_mode='exact' to search by botanical identity rather than by word: a plain query for 'Rose' matches any cultivar name containing it (including Sweet Peas called 'Rose Pink'), whereas entity\_mode='exact' returns genus Rosa only and discloses how many off-genus records were excluded.

  • archive_status

    Return live archive status: total colour count, per-archive breakdown, embedding model, search engine state, and API version.

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

  • 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 names, the full WCAG accessibility matrix, cultural risk per colour, CSS variables, Tailwind config, design tokens and production notes. NOT COMPUTED HERE: palette interpretation -- the verdict, its score and the written narrative copy. Those require an LLM call and used to be made inside this tool without saying so, which put a normal five-colour audit at 43-45s. The palette\_verdict and verdict\_copy keys are still returned, carrying interpretation\_status='not\_computed' plus a ready-to-send palette\_verdict.continuation.arguments -- forward those verbatim to the palette\_verdict tool to get the interpretation. Replaces chaining accessibility\_matrix + cultural\_risk\_assessment; palette\_verdict is now an explicit, optional second call rather than a hidden one. FOR A LIVE-SITE BRAND AUDIT ('audit this website'): inspect representative rendered pages FIRST (homepage, about, one deep page) and pass what you observed as site\_evidence -- a CSS scrape alone is not an audit of what a visitor sees, and the response's audit\_evidence.audit\_status will say PARTIAL until real multi-page rendered evidence is supplied. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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, archive context for each colour, a distinctiveness score (0-100), an ownership verdict (strong/viable/contested/collision), a plain-English verdict summary, and a strategic recommendation. Use before committing to a brand colour in a competitive market. Replaces manual colour distance checks and competitor palette analysis.

  • 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 text, do\_not\_say restrictions, and claim\_role (anchor/analogue/reject). Read-only -- reads the already-persisted, frozen brand\_ref snapshot, never re-runs generation or mutates anything. Omit claim\_ids to return every claim on the brand\_ref. Accepts exactly one of brand\_ref or project\_id, same as brand\_guideline\_pdf.

  • 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 palette, packaging and digital application, a full pairwise WCAG accessibility matrix computed upstream (never hand-drawn examples), and a provenance and evidence register in which every claim is bound to the colour it belongs to. Page count is not fixed: sections that have nothing real to say are omitted rather than padded -- a single-candidate brand\_ref drops the comparison spread, and a candidate that was never scored for distinctiveness gets a different page shape rather than an empty scale. Derived colours are never presented in documented-source language. Renders the brand\_guideline\_select-chosen candidate if one has been recorded, otherwise the strongest eligible candidate as a provisional preview (clearly labelled as such). Reads only the already-persisted, frozen snapshot -- never re-runs brand\_guideline\_specify, never rematches an archive, never mutates the resolved project. Accepts exactly one of brand\_ref or project\_id.

  • 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, a new version underneath it, exactly like a versioned house\_ref). No accounts or reviewer states yet -- this demonstrates decision-making, not a full approval workflow.

  • 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 named competitors, checked for accessibility, and labelled with exactly what each colour can and cannot legitimately claim (documented archive anchor vs analogue vs original brand colour). Returns a brand\_ref (valid 24h) plus a claim\_id per colour -- resolve those into full source/permitted-claim/do\_not\_say text with brand\_guideline\_claims (the response's own claim\_detail\_available\_via field always names it explicitly). Follow with brand\_guideline\_select to record which candidate was chosen. CREATE ONCE, THEN VERSION: the response returns project\_id and current\_version. When you refine or update a Brand Standard you already created in this conversation, pass that project\_id back as continue\_project\_id rather than creating a second project. TIMING (2026-08-07): real generation cost ranges roughly 60-280 seconds depending on retrieval/generation path. This call races generation against a safe \~55s window: a fast generation returns the full result exactly as described above, unchanged. A slower generation instead returns a compact {"status": "processing", "brand\_job\_ref": ..., "poll\_after\_seconds": ...} -- generation keeps running server-side regardless, and is never lost. Call brand\_guideline\_status with that brand\_job\_ref to retrieve the completed result (brand\_ref, project\_id, candidate summary) once ready; poll no more often than poll\_after\_seconds suggests.

  • 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 {"status": "processing"} if still running, {"status": "complete", "brand\_ref": ..., "project\_id": ..., "recommended\_candidate\_id": ..., "candidate\_count": ...} once done (a compact summary -- use the returned brand\_ref with brand\_guideline\_select/brand\_guideline\_pdf/brand\_guideline\_claims for full detail, the same pattern every other Brand Standard tool already uses), or {"status": "failed", "error\_code": ..., "message": ...} if generation genuinely failed server-side. An unknown or expired brand\_job\_ref returns a structured BRAND\_JOB\_NOT\_FOUND error, never a crash or empty success.

  • 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 signals, market reading per market, usage rules, palette roles, ecommerce copy, memory hooks, Instagram caption, and Midjourney/Flux/DALLE agent brief. Use this instead of chaining colour\_strategy + cliche\_breaker + ecommerce\_product\_copy + memory\_hooks + agent\_brief separately. Two Claude calls total. One complete response.

  • 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 citation cards. Deterministic. No LLM cost. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • colour_card

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

  • 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 the context.

  • 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 more authoritative, more saturated, more stable under different illuminants, and what each has historically signified. Use when choosing between two colours or explaining why one works better than another. Not a harmony tool — this is a decision and reasoning tool.

  • 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\_passport for a general profile; call this directly for palette-level risk checks or when cultural risk is the only thing being asked about.

  • 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 fingerprint format alone. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 illuminants (north daylight, warm artificial, direct sun), substrate-specific notes, and a recommended alternative. Backed by CIEDE2000 archive matching and Claude material knowledge. Examples: ultramarine on lime plaster, lead white on exterior timber, verdigris on north-facing interior wall, red ochre on historic brick.

  • 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 six named hues (yellow/purple, orange/blue, red/green), with Field's proportional power for the pair. Unlike the fixed-angle types, this snaps the input to Hay's nearest named hue rather than rotating it, and returns covered:false with no invented partner when the input sits nearer a tertiary region (olive/citron/russet) than any of the six -- Hay records only an aggregate total for tertiaries, never a specific pair. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 (general public, designers, historians, children) and tone (dinner party, academic, social media, brand copy). Use to make archive colours shareable, to generate content, or to power a public-facing colour chat experience.

  • colour_match_paint

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

  • colour_metrics

    Returns raw perceptual metrics (LRV, chroma, hue angle, warmth, undertone) for a single colour. This is one component of colour\_passport. Use colour\_passport for a general colour profile; use this only when the user explicitly wants isolated numeric values.

  • 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. Uses CIE Lab subtractive model for perceptual accuracy. Example: mixing Prussian Blue and Yellow Ochre gives a muted green — the tool identifies which archive colour that green most closely matches.

  • 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 real archive source. The core of the Shopify product naming use case.

  • 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\_not\_say and evidence grade, hex provenance (status, confidence, spectrophotometric flag), physics (illuminant behaviour, gamut, print risk), and cultural reading (colour family, warnings, positives). Use this as the foundation call when you need the complete picture. Every other tool is built on this data. Replaces chaining colour\_dna + archive\_provenance + colour\_cultural\_risk + colour\_metrics separately. Examples: '#31559B' (anchors to Henry VIII Manuscript Blue Initials), '#8B1A1A' (Penny Post Sealing Wax Dark Red), '#D4AF37' (Sutton Hoo Great Gold Buckle).

  • 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, hex provenance, accessibility, and physics. Deduplicates hex values automatically. Use for multi-colour workflows, Figma palette analysis, or any case where calling colour\_passport separately for each colour would be slow.

  • 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 1933 Dictionary of Color Combinations plates. Returns edges in separate blocks by relationship\_class so a caller can never mistake a computed colour distance for something a historical source actually said: SOURCE\_ASSERTED (the source itself states the relationship, e.g. 'this colour was assigned to numbered combination 176') versus DETERMINISTIC\_STRUCTURAL (a mechanical fact about the source object, e.g. 'printed on this plate'). Every edge carries its own 'does\_not\_mean' caveat inline -- e.g. membership in the same Wada combination does not assert that any specific pair within it was individually intended as a pairing. Not every record\_id has relationships yet; an empty result is a true negative, not an error. Get record\_id values from archive\_search or colour\_card.

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

  • 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. Essential for image generation prompts, brand storytelling, and creative briefs. Example: '#DC143C' returns the story of crimson from Byzantine imperial courts through Tudor England to modern sport.

  • 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\_context (category, positioning, audience, channels) + constraints (avoid, must\_work\_on) + markets + medium. Output: verdict, strategy summary, archive anchor, commercial signal, category cliche risk level, market reading per market, material notes, usage rules (primary use, secondary use, avoid, pair\_with), copy hooks (one\_liner, social, brand\_rationale), and alternatives. Examples: luxury fragrance brand UK/France/Japan, heritage interior specification, premium ecommerce packaging, SaaS brand identity.

  • 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 appeared, with primary sources. Use for historical research, provenance chains, and understanding why a colour carries the cultural weight it does. Example: 'indigo' traces from ancient Indian trade routes through Roman imports to Tudor sumptuary law to synthetic aniline displacement in 1897.

  • 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 carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 better alternatives where needed. Backed by CIEDE2000 archive matching and Claude cultural intelligence. Examples: 'luxury hotel brand in Japan', 'ecommerce CTA button UK', 'heritage interior lime plaster wall', 'premium packaging Middle East'.

  • 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 accessibility check, illuminant behaviour, and a ready-made image generation prompt. Replaces chaining query\_conceptual + palette\_from\_concept + colour\_story + match\_paint\_system + accessibility\_check + get\_colour\_metrics. Use when an AI agent or user needs a complete, deployable colour direction in a single call. Not for iterative refinement — use individual tools for that. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 description, alt text, Instagram caption, and cross-sell suggestion. Every piece of copy is grounded in archive provenance -- never generic AI colour copy. The colour name comes from the nearest archive match, not invented. Examples: velvet cushion in Murex Luxury, ceramic vase in Woad Vat Blue, linen throw in Standlake Silt. Directly useful for Shopify, WooCommerce, and editorial product pages.

  • 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 product description, dE2000 match distance, match quality, and confidence score. Every name is archive-sourced, not invented. Each carries a primary source citation that can be defended to buyers, press, and brand teams. Use for paint ranges, candle collections, fashion lines, homeware, cosmetics. Style options: geographical, poetic, material, literary, mixed.

  • 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 public URL (e.g. a local file path or a ChatGPT file attachment without a usable download\_url), call ingest\_image first to get an image\_id, then pass that image\_id here. Returns hex values with proportional weights. Optionally matches colours against the archive with style\_context for coherent cultural naming. Use this before image\_brief when you have an uploaded photograph.

  • 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), Bradley (rotating-disc apparatus, 1895), Vanderpoel (quantified object analyses, 1902), Beaumont (woven colour relationships), Hay (harmonic proportional powers, 1838), Guichard (measured spatial extents, 1880) and Hokusai (subject-conditioned colour application, 1848). Each answer names its source, its locator and what that kind of evidence CANNOT support. Use it for questions like 'how do I paint a leaf', 'what did Bradley's disc proportions measure', 'what's the difference between making a colour and applying it', or to check a claim someone has attributed to one of these authors. Crucially, these sources' numbers are NOT interchangeable: a recipe part, a disc share, an object percentage, a proportional power and a measured extent answer different questions, and the response says so explicitly rather than averaging them.

  • 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, same source citation, same designer, same period+institution); where it does not, they are grouped by perceptual similarity and the response says so -- grouping\_basis reports which, and provenance\_credit reports how many delivered colours are individually evidenced versus documented as a GROUP (often zero). Every colour is a real archive record either way. Each room gets a full colour card set (dominant/secondary/joinery/textile/accent roles) with paint matches, LRV, illuminant behaviour, and WCAG data. A documentary grouping states exactly which documented fact ties its colours together (e.g. 'documented on the same Fitzwilliam Museum record for the Artichoke hanging, accession T.1-1979') and its weighted grouping\_strength score -- historical claims are templated only from fields the archive record actually states; room/surface assignment is disclosed as editorial, never as historical fact. Orientation (north/south/east/west) is recorded as room context and surfaced in each room's light\_context; in the current model it does not alter palette selection. Example: concept='Arts and Crafts movement family house', archive='ArtsAndCrafts', rooms=\[{label:'Entrance Hall', room\_type:'hallway', orientation:'north'}, {label:'Living Room', room\_type:'living', orientation:'south'}]. Use interior\_specify instead for a single room without cross-room grouping. The response includes house\_ref -- pass that (not the full response) to palette\_pdf's house\_ref input to render the flagship document; the full response is often 60-100KB+, too large to safely resend as another tool call's input. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 style period, suggests product directions by category (textiles, interiors, fashion), generates an image generation prompt, and returns a swatch URL. Use instead of chaining palette\_extract + palette\_analyse + agent\_brief separately. Pass style\_context for coherent archive matching e.g. 'English cottage garden', 'Victorian', 'MarsColour'. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 plus Bradford chromatic adaptation for accuracy. Returns up to 5 dominant colours, each with archive name, cultural story, nearest RAL standard, and WCAG accessibility data. Works for product photography, interior photos, artwork, brand assets, and mood boards. The image is never stored — processed in memory only. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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, or neutral). Returns a curated palette of archive colours that genuinely suit you — each with full historical provenance and cultural context — plus colours to avoid. Uses Claude Vision for skin, hair, and eye analysis, then matches to the archive by CIEDE2000 perceptual distance. The photo is never stored. Example: a Deep Winter might wear Ottoman Carbon Ink while a True Spring suits Kogi Mango.

  • 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 prognosis, ash as finality). 0.80 = institution mediates the colour (paint as deterrence, flag as authority). 0.50 = symbolic or associative only. Input: list of colour entries with name, hex, archive, source, notes. Output: resonance score, material origin, social function, alignment reason, confidence. Use for investigative reports, forensic briefs, museum content, editorial PDFs. This is the metric that separates Colour Memory from palette generators.

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

  • 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, archive colour names with full cultural provenance, Farrow and Ball and Little Greene paint matches, three-illuminant light behaviour (D65 daylight, F11 atrium, Illuminant A incandescent), WCAG accessibility for digital use, and a written cultural rationale explaining why each colour belongs in this room. Examples: 'bold maximalist living room', 'calm Scandi bedroom', 'Victorian study', 'coastal kitchen', 'gallery hallway'. Pass `archive` to lock the whole scheme to one named archive (e.g. 'ArtsAndCrafts', 'GeorgianPleasures') -- every returned colour will belong to it, or you get a clear error listing valid archive names rather than a silent unrestricted search. Use /interior-specification/pdf for a downloadable branded PDF version. Use house\_specify instead for a multi-room scheme with cross-room provenance grouping. This is the tool that replaces a colour consultation. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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. Deterministic -- no LLM cost.

  • 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 alternatives when confidence is low. Palette-level deduplication ensures no two colours map to the same archive entry. Use after extracting colours from a photo or generating a palette. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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. Enterprise quality gate -- use before shipping any palette. Deterministic, no LLM cost. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 use case. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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', 'Ottoman court', 'Japanese wabi-sabi', 'Scandinavian winter', 'West African kente', 'Renaissance Florence'. Every colour returned is sourced from the archive with documented history. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

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

  • 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 palette\_analyse on the results. Use this instead of image\_palette when you need hex values with proportions for palette\_analyse or palette\_swatch. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 your decision and returns the palette image plus PNG, SVG, PDF, ASE, JSON and CSS. It does not search, select, replace or improve anything: the colours you send are the colours that come back, in your order. Send every final colour with its name, and mark a colour source-backed only if it really is a Colour Memory archive record -- anything unverified is presented as your recommendation, which is the honest description of it.

  • 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 archive filter restricts fills to one archive. Returns full citation — name, archive, primary source, colour notes — for every filled slot. Example: lock a client's existing wall colour and fill a 5-colour scheme from Oxfordshire. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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. Choose linear (physically accurate Lab interpolation) or chroma\_preserved (LCh interpolation, short-arc hue, avoids desaturated midpoints). Returns stop array, CSS linear-gradient string, or SVG swatch bar. Use for design briefs, colour journey visualisations, and gradient systems. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 palette gaps and fills them from the archive. Returns full palette with roles, confidence scores, CSS tokens, and production notes. Every addition has a named historical origin. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 palette with archive grounding and change rationale. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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, chroma, WCAG contrast data, and Colour Memory branding. Use this to create client deliverables, specification sheets, and print assets. Two supported entry sources: (1) the flat entries array from query\_hex or palette\_from\_concept -- each item needs name, hex, archive\_source, colour\_notes, primary\_source, zone; or (2) archive\_report\_brief's output -- pass report\['presented\_cards'] as entries, NOT report\['colour\_cards'] (the legacy field is kept only for backward compatibility and does not carry family-card presentation). presented\_cards may mix three card shapes, all rendered as exactly one page each regardless of how many underlying records they represent: single\_cultivar (a normal flat card), colour\_family (card\_type='colour\_family', many near-identical records summarised as one card with member\_count/supported\_by/family\_delta\_e\_max), and conservative-mode hero cards (a single\_cultivar card carrying family\_grouping\_suppressed=true and also\_supported\_by, representing a larger natural family that was folded into one promoted cultivar instead of shown as a group). delivery controls how the PDF is returned: 'url' (default) gives a signed, time-limited R2 download link; 'base64' returns the PDF bytes inline in the response for callers that need the file directly rather than a link. Alternative input mode: pass `sections` instead of `entries` for a grouped, multi-section document (e.g. house\_specify's rooms) instead of one page per flat colour card. Each section has a title, rationale, and its own entries. `presentation.template` picks the layout: 'sectioned\_specification' (clean grid-per-section spec sheet) or 'colour\_drenched\_lookbook' (hero colour fills the page, swatches cover most of it, citations collected into a final appendix rather than shrunk onto every page). Third input mode: pass `house` (house\_specify's full response object, unmodified) for the flagship document-plan pipeline -- a complete, editorial multi-archetype publication: a cover, a house\_thesis argument page, a whole\_house\_progression chart, one room\_hero + one implementation (practical specification) page per room, and a redesigned source\_appendix, all sharing one design system. Takes priority over `sections`/`entries` when supplied.

  • 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 palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 filter weak concept matches. Fixes cross-archive drift when cultural specificity matters. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 palette extraction, equal distribution, grid layout, a true smooth LCh-interpolated gradient (no hard colour edges, best for mood/atmosphere/colour-grade references rather than literal composition), and 13 fixed design ratios (6310, 7020, triptych, quad, filmstrip, etc.).

  • 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 (exact / close / approximate / loose) and full provenance. Use to translate a client's paint colours into Shakespeare language, map a brand palette into historical Japanese pigments, or find the nearest Oxfordshire equivalents to a French scheme. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 weakness, and a concrete suggestion for what to add to fix it. Each colour is matched to the nearest archive entry for cultural grounding. Examples: 'premium cushion collection UK ecommerce', 'hotel lobby interior', 'SaaS brand identity global digital'. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 which case occurred. Version rows are never physically erased. Once deleted, a project can no longer be resolved by project\_id or house\_ref.

  • 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 materials/procurement schedule from it. Accepts exactly one of house, house\_ref, or project\_id (same resolution and ownership rules as palette\_pdf: an authenticated project\_id or house\_ref requires its owner; an anonymous temporary house\_ref works bearer-only). Never calls house\_specify, never re-runs reasoning or re-matches archives -- it renders exactly what was already resolved and stored. DOCX mirrors the PDF flagship's structure (title page, house thesis, whole-house progression, one section per room, implementation details with the same historical/digital-estimate/commercial-candidate distinction, and a deduplicated source appendix) as real editable paragraphs and tables, never images. XLSX produces three sheets: Finishes Schedule (one row per room-surface-colour assignment), Evidence Register (one row per unique colour, the full citation/claim-strength/do\_not\_say trail), and Paint Procurement (one row per unique paint product, deduplicated for ordering). Every field left blank where the underlying stored data doesn't have it -- nothing is invented. delivery="url" (default) gives a signed R2 download link; delivery="base64" returns the file inline unless the encoded result is too large, in which case it fails closed with OUTPUT\_TOO\_LARGE\_FOR\_INLINE\_DELIVERY and a repair instruction to use delivery="url" instead.

  • 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 version. Requires an API key; the project must belong to the calling key. Does NOT return the full house specification (rooms, colours, sources) -- use house\_ref with palette\_pdf to render a document from a project, or project\_versions to see its version history. An unknown, deleted, expired, or not-owned project\_id all return the same generic not-found response, by design.

  • 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 resolvable directly by their house\_ref. Requires an API key.

  • 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 present. Earlier versions remain renderable via palette\_pdf's project\_version input even after a newer version exists. Requires an API key and ownership.

  • 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 Grief), 'toxic Victorian pigments' (returns Nightshade Poison Berry Purple, Victorian Arsenic Mirror Silver), or 'the sea at dusk' (returns Evening Sea, Thames Blue Dusk). Even a vague or personal-sounding query never comes back empty -- result\_path in the response tells you honestly whether this was a 'direct' hit, a 'broadened' retry (relaxed match threshold), or a 'redirected' fallback (dropped an archive restriction or switched to full-corpus semantic search).

  • query_hex

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

  • 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 already have and chooses nothing. Do not call it for a single contrast figure, a colour history question with no palette, or tool guidance. Send the story with it: one sentence on what the scheme IS, the design decision you made, and the one rule worth remembering. The colours cannot carry those on their own.

  • 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-rejects stubs, generates editorial argument, act structure, pull quote, closing line, and image prompt via Claude. This replaces chaining coverage\_gap + archive\_report\_brief + anachronism\_guard + resonance\_index + evidence\_gap separately. Input: title, audience, themes, archives, period, tone. Output: complete deliverable package ready for PDF or editorial use. Tone options: forensic (default), editorial, clinical, narrative.

  • 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 on what works, what clashes, what is missing, and what to add. Every recommendation is backed by archive colour names and historical context — not generic colour theory, but documented cultural combinations. Also suggests one missing archive colour that would complete the look. Examples: 'I have a navy dress (#1C3A6E) and a tan bag (#C8A87A) — what shoes?' or 'Does this burgundy coat work with olive trousers?' The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette\_finalize once with those exact colours so the customer can see and download what you actually recommended.

  • 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 confirm you're seeing the current deployed schema -- e.g. if a tool you expect (like house\_specify) seems to be missing, call this first and compare schema\_hash against another connection before assuming the server is wrong; a mismatch usually means one connection is holding a stale cached manifest, not a real deployment gap.

  • 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 competitors', 'I want to paint a whole house', 'I have a photo and want the colours from it') and it returns exactly which tool to call first, what to call next, and which superficially-similar tools NOT to start with and why. Use this before guessing between similarly-named tools (e.g. palette\_specify vs interior\_specify vs house\_specify, or colour\_passport vs colour\_dna).

  • 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. All states computed for contrast against your background colour. Returns hex, contrast ratio, WCAG grade, and usage note for each state. Includes CSS custom properties ready to paste. Supports light and dark mode. Use before building any UI component system.

  • 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\_dyads.json and vanderpoel\_triads.json. Snaps an input hex to the nearest of Vanderpoel's eleven real hue-family labels, resolves that hex against the archive, and returns every documented dyad or triad the label belongs to -- each OTHER member carrying its own nearest real archive match (CIEDE2000), with hex\_collision disclosed when the match is tied. Unlike hay\_contrast, this carries NO proportional ratio -- only Vanderpoel's own categorical 'good' editorial judgement, printed verbatim on the plates. Returns groupings: null for a near-neutral input, where hue is not meaningfully defined, or when the nearest hue-family label is a member of no dyad or triad -- silence is the honest answer, not a forced match. Member names come from a transcriber's digitisation\_alt\_text (an accessibility description of the plate image), not verified printed captions; every response states this caveat explicitly (member\_source\_caveat), not just a code comment. The hue positions used to snap an input to a label are a modern matching convention, not a number Vanderpoel printed -- disclosed per response as label\_placement\_basis.

  • 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 membership in the same published combination) and returns the actual path, not just a yes/no. States plainly when two records are NOT connected, and always states what a shared connection does not prove -- e.g. that two colours sharing a Wada combination were independently asserted as a pair, not just co-published in the same numbered plate. Get record\_id values from archive\_search or colour\_card.

Resources · 2

  • Colour Memory palette

    The final palette, its values and its downloads.

  • Colour Memory result

    Shows a Colour Memory palette as colour.

Prompts · 8

  • break-the-cliche

    Find the archive contradiction to a colour concept. Love is not red. Luxury is not gold. Returns the surprising historical colour that breaks the expected choice.

  • colour-strategy

    Full brand colour strategy for any hex. Returns archive anchor, verdict, market readings, usage rules, and copy hooks.

  • image-generation-brief

    Complete colour direction package for Midjourney, Flux, or DALL-E. Archive palette, prose brief, hex colour tokens, negative prompt, lighting notes.

  • interior-spec

    Complete room colour specification from a concept. Returns 60/30/10 surface assignments, paint matches, light behaviour, and cultural rationale.

  • name-my-colour

    Generate archive-verified product colour names for any hex. Returns 5 candidates with provenance citations and a hero recommendation.

  • name-my-product-range

    Generate archive-grounded names for an entire product range. Submit up to 8 hex values and a product type, get back cited name candidates for each.

  • palette-for-concept

    Build a historically grounded palette from any cultural concept or mood. Returns archive-matched colours with provenance.

  • should-i-use-this-colour

    Decisive verdict on any colour for a specific use case and market. Returns use\_with\_confidence, use\_with\_caution, or avoid, with strengths, risks, and better alternatives.