Verified conversions across 205 color spaces: CSS strings, gamut checks, .cube LUTs
Colour Memory is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Colour meaning, history and evidence for AI: 45,000+ source-graded colour records and 91 tools.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http colour-memory-mcp https://api.colourmemory.com/mcp
# 2 — ask your agent for something these tools do
# query_conceptual, extract_image_colours, query_hex and 89 more
Colour Memory costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http colour-memory-mcp https://api.colourmemory.com/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
92 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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-sound
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | The colour concept or cultural question to search for |
| n_results | integer | no | Number of results (default 5) |
| archive | string | no | Optional: restrict to a named archive e.g. 'Japan', 'Pigment', 'OttomanEmpire' |
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 proportiona
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image | object | no | Image file attachment from ChatGPT |
| image_url | string | no | Public URL of image |
| image_id | string | no | Ephemeral image_id returned by ingest_image. Use this if you only have a local file path or raw file attachment with no public URL. |
| k | integer | no | Number of colours to extract (3-12, default 6) |
| style_context | string | no | e.g. English cottage garden, Victorian, Japanese |
| analyse | boolean | no | If true, match colours against archive and return names |
| grey_card_hex | string | no | Hex from a grey/white card for white balance |
Find the closest named archive colours to a hex value using CIEDE2000 perceptual distance.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex value with or without # e.g. '#8B4513' |
| n_results | integer | no | Number of results (default 5) |
| archive | string | no | Optional: restrict to a named archive |
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 ch
| Parameter | Type | Required | Notes |
|---|---|---|---|
| colours | array | yes | List of 2-8 hex values |
| room_type | string | no | e.g. 'living', 'bedroom', 'kitchen', 'study' |
| style | string | no | e.g. 'heritage', 'contemporary', 'minimal' |
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 corresponding colours under two standard illuminants. It also lists what a hex cannot support, such as thermal performance or a measured LRV. This is one component of colour_passport. Use colour_passport for a ge
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_val | string | yes | Hex value e.g. '#8B4513' |
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 i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex value e.g. '#3A5C8C' |
| harmony_types | array | no | Harmony types to include: 'complementary', 'analogous', 'triadic', 'split_complementary', 'tetradic', or 'hay_contrast' (D.R. Hay's 1838 documented contrast pairing, distinct from the geometric types |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_val | string | yes | Foreground hex value |
| background | string | no | Background hex (default 'FFFFFF') |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Array of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B'] |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Array of hex values |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex value e.g. #D4A829 |
| archive | string | no | Optional archive filter |
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 a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Array of hex values |
| use_case | string | no | Use case context e.g. UI, dashboard, report |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| background | string | yes | Background hex value |
| palette | array | yes | Candidate foreground hex values |
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). N
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Search term e.g. cerulean, Prussian, Ottoman, ochre, medieval |
| archive | string | no | Optional archive filter e.g. oxfordshire, japan, pigment, keats, eic, racingsilks |
| n_results | integer | no | Results per page (default 10, max 50 per call). This is a PAGE size, not a collection limit -- for a large collection (tens or hundreds of records) page with offset until next_offset disappears, and n |
| include_full | boolean | no | Return complete notes and source fields. Default false returns 150-char snippets. Set true for report workflows. |
| limit | integer | no | Alias for n_results |
| offset | integer | no | Skip this many ranked matches before returning results -- collection paging. The response's next_offset gives the value to pass here for the next page; it is absent on the last page. total_found alway |
| entity_mode | string | no | 'text' (default): ordinary keyword search -- 'rose' finds any name containing the word, across genera. 'exact': resolve the query to a botanical entity and return ONLY records whose structured identit |
| year_from | integer | no | Boost entries on or after this year e.g. 1400 for Renaissance, 1837 for Victorian |
| year_to | integer | no | Boost entries on or before this year e.g. 1600 for Renaissance, 1901 for Victorian |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| colours | array | yes | 2-5 hex values to assess as a combination |
| context | string | no | Usage context: UI | data viz | fashion | interior | print | branding |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Cultural concept e.g. Japanese wabi-sabi |
| allowed_archives | array | no | Archive names to restrict results e.g. ['Japan', 'China'] |
| n_colours | integer | no | Number of colours (default 5) |
| min_relevance | number | no | Minimum relevance score 0-1 (default 0.3) |
| include_neutrals | boolean | no | Include neutral tones (default true) |
Create a designed, full-colour Word (.docx) report from Colour Memory records. Use this whenever the user asks for a document, report, write-up, handout or Word file built from archive findings, instead of writing a plain document yourself. Pass the records by the record_id or slug exactly as archive_search (or another tool) returned them, grouped into sections with a heading and optional narrativ
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | Document title, under 90 characters. |
| subtitle | string | no | One-sentence subtitle. |
| sections | array | yes | Ordered sections of the report. |
| delivery | string | no | url (default) or base64. |
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. TRUST BOUNDARY: every colour rendered in this PDF is verified s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entries | array | no | Array of colour cards. Either the flat entries array from query_hex/palette_concept, or report['presented_cards'] from archive_report_brief (single_cultivar, colour_family, and conservative-mode hero |
| query | string | no | Optional title for the palette e.g. Ottoman imperial luxury |
| source | string | no | Optional source label e.g. brand, conceptual |
| delivery | string | no | 'url' (default): signed, time-limited R2 download link. 'base64': PDF bytes returned inline as pdf_base64 for callers that need the file directly. |
| sections | array | no | Alternative to entries -- one entry per document section, e.g. house_specify's rooms. Each: {grouping_basis?, hero_hex?, entries: [...colour cards, server-verified exactly like the flat entries fi |
| presentation | object | no | Used with sections or house_ref/project_id. {template: 'sectioned_specification'|'colour_drenched_lookbook' (sections only), page_size?: 'A4-portrait'|'A4-landscape'|'16:9', minimum_colour_cover |
| house | object | no | DO NOT USE. Inline house objects are REFUSED outright (400, INLINE_HOUSE_NOT_ALLOWED), even alongside a valid house_ref/project_id -- this PDF is Colour Memory-branded and can only render a house Colo |
| house_ref | string | no | THE way to render the flagship document-plan publication -- the house_ref string house_specify's own response returns (valid for 30 minutes after that call, or per project_persistence for a durable/te |
| project_id | string | no | Alternative to house_ref for an authenticated (keyed) caller's own durable project -- the project_id house_specify returned. Requires the same API key that created the project. |
| project_version | integer | no | Used with either house_ref or project_id -- render this specific immutable version instead of the project's current version. Omit to render the current version. |
| verify | boolean | no | Issue as a Verified by Colour Memory document (Colour Memory Pro). |
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 custom
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Hex values to audit |
| use_case | string | no | Use case context |
| market | string | no | Target market |
| medium | string | no | digital | print | both |
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 ancho
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Hex values |
| market | string | no | Target market e.g. global, UK, Japan |
| use_case | string | no | Use case e.g. brand identity, packaging |
| medium | string | no | digital | print | both |
| brand_category | string | no | Optional e.g. developer tool, luxury, food |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Hex values |
| market | string | no | Target market |
| use_case | string | no | Use case |
| medium | string | no | digital | print | both |
| brand_category | string | no | Optional brand name or category |
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 simulated colour had to be clipped to sRGB. Anomalous trichromacy and partial severities are not simulated. A model prediction on a standard display, not how an individual perceives colour.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_val | string | yes | Hex value e.g. '#BE0032' |
Find the nearest named colour in commercial paint systems including Farrow and Ball and Little Greene.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_val | string | yes | Hex value e.g. '#003153' |
| brand | string | no | Optional brand filter: 'farrow' or 'little_greene' |
| n | integer | no | Number of matches (default 3) |
Look up a named colour and return its hex, archive, provenance, and cultural notes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Colour name e.g. 'Prussian Blue' or 'Ottoman Carbon Ink' |
| slug | string | no | Stable colour slug from archive_search e.g. 'keats:keats-s-lung' -- preferred over name for reliable retrieval |
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.
No parameter schema on file.
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 th
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex value e.g. '#DC143C' |
| n_archives | integer | no | Number of archive sources to draw from (default 5) |
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 alread
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Cultural theme or historical period e.g. 'Victorian mourning' or 'Ottoman court' |
| n_colours | integer | no | Number of colours to return (default 5, max 8) |
| include_neutrals | boolean | no | Include neutral/background colours |
| avoid | array | no | Colours, pigments or topics to exclude e.g. ['arsenic green']. Applied before selection. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_a | string | yes | First colour hex e.g. '#003366' |
| hex_b | string | yes | Second colour hex e.g. '#C8A600' |
| ratio | number | no | Mix ratio 0.0-1.0 where 0.5 is equal parts (default 0.5) |
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 rou
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Colour name or concept to trace e.g. indigo, imperial purple, mourning black |
| n | integer | no | Number of timeline entries to return (default 10, max 20) |
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 pixels are read as D65 CIELAB for matching. Returns up to 5 dominant colours, each with archive name, cultural story, nearest RAL standard, and WCAG accessibility data. Works for product photography, int
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image_base64 | string | yes | Base64 encoded image (JPEG, PNG, WebP) |
| media_type | string | no | Image MIME type e.g. 'image/jpeg' |
| n_colours | integer | no | Number of dominant colours to extract (default 5, max 5) |
| archive | string | no | Optional: restrict archive matching to a specific archive |
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 anot
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex_a | string | yes | First colour hex e.g. '#003366' |
| hex_b | string | yes | Second colour hex e.g. '#1877F2' |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | no | Single hex value to assess e.g. '#FF9900' |
| palette | array | no | Optional list of hex values to assess as a palette |
| markets | array | no | Optional market focus e.g. ['China', 'Middle East', 'India'] |
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 + ge
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Cultural theme, mood, or brief e.g. 'Victorian mourning', 'Ottoman court', 'Scandinavian minimal' |
| medium | string | no | Application context e.g. 'interior', 'brand identity', 'fashion', 'digital', 'print' |
| n_colours | integer | no | Palette size (default 5, max 8) |
| include_accessibility | boolean | no | Include WCAG contrast check (default true) |
| include_paint_matches | boolean | no | Include commercial paint matches (default true) |
| include_prompt | boolean | no | Include image generation prompt (default true) |
| avoid | array | no | Archive names or colour terms to exclude e.g. ['neon', 'ScreenDigital'] |
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, ha
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image_base64 | string | no | Base64 encoded portrait photo (JPEG or PNG). Face should be clearly visible in natural light. Either image_base64 or image_url required. |
| image_url | string | no | URL of a portrait photo hosted online. Easier than base64 for MCP use. Either image_url or image_base64 required. |
| media_type | string | no | Image MIME type e.g. 'image/jpeg' |
| name | string | no | Optional: person's name for the report e.g. 'Sarah' |
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. Pairs are judged on hue relationship and lightness contrast; each item is named from its nearest archive record, with that record's eviden
| Parameter | Type | Required | Notes |
|---|---|---|---|
| items | array | yes | List of outfit items with label and hex colour |
| occasion | string | no | Optional: occasion context e.g. 'daytime', 'evening', 'office', 'casual', 'wedding guest' |
| ask | string | no | Optional: specific question e.g. 'what bag colour works?' or 'do the shoes work?' |
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 access
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Room concept or brief e.g. 'bold maximalist living room' or 'calm Scandi bedroom' |
| room_type | string | no | Room type e.g. 'living', 'bedroom', 'kitchen', 'study', 'bathroom', 'hallway', 'dining' |
| style | string | no | Style direction e.g. 'heritage', 'contemporary', 'maximalist', 'minimal', 'scandi', 'industrial', 'coastal' |
| orientation | string | no | Room orientation e.g. 'north', 'south', 'east', 'west' — affects light advice |
| output_format | string | no | 'scene_brief' adds a Historical Scene Colour Brief for film and image work: per colour its place, date, observer, timing, source and do-not-claim lines, then DOCUMENTED VISUAL CONSTRAINTS, NEGATIVE / |
| n_colours | integer | no | Number of colours in scheme (default 5, max 7) |
| avoid | array | no | Colours, pigments or topics to exclude e.g. ['arsenic green']. Applied before selection. |
| archive | string | no | Optional: restrict the candidate pool to this single archive before scoring, e.g. 'ArtsAndCrafts' or 'GeorgianPleasures'. Invalid names return a clear error listing valid archives rather than silently |
| role_plan | array | no | Optional: the room's spatial hierarchy, decided BEFORE colours are retrieved, so retrieval can be asked for candidates that suit a named job on a named surface. The role vocabulary is open -- field, a |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | House-level concept or brief, e.g. 'Arts and Crafts movement family house' |
| output_format | string | no | 'scene_brief' adds a Historical Scene Colour Brief for film and image work: per colour its place, date, observer, timing, source and do-not-claim lines, then DOCUMENTED VISUAL CONSTRAINTS, NEGATIVE / |
| archive | string | yes | Single archive to draw every room's colours from, e.g. 'ArtsAndCrafts'. Required -- invalid names return a clear error listing valid archives. |
| rooms | array | yes | One entry per room, e.g. [{label:'Entrance Hall', room_type:'hallway', orientation:'north'}] |
| colours_per_room | integer | no | Default 5. |
| shared_house_colours | integer | no | Default 2. |
| minimum_claim_strength | string | no | Evidence-grade floor, default 'B'. Explicitly supplied: a hard admission filter, never relaxed -- too few qualifying records fails closed with a per-grade availability map (ARCHIVE_EVIDENCE_POOL_DEPLE |
| avoid | array | no | Terms to exclude from retrieval. |
| narrative_mode | string | no | Default 'evidence_only'. |
| strict_semantic_colour | boolean | no | Default true -- excludes entries whose quoted colour language contradicts their stored hex. |
| guidance_level | string | no | Who the guidance notes are written for. 'client' (default) for a homeowner; 'decorator' for a trade reader. The specification decisions are identical either way -- only the wording differs. |
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-
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slots | array | yes | List of palette slots. Each has index (0-11), optional hex, and locked flag. |
| archive | string | no | Optional: restrict fills to one archive e.g. 'Oxfordshire', 'Shakespeare', 'Japan' |
| size | integer | no | Total CURATED palette size 2-12 (default 5). This is the designed-palette ceiling, not a product limit on how many colours exist: for a large colour COLLECTION, page archive_search instead. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| anchors | array | yes | 2-5 hex values (#RRGGBB) or exact archive colour names |
| steps | integer | no | Total stops including anchors (default 7, max 20) |
| path | string | no | linear: straight Lab lerp (may have neutral midpoint). chroma_preserved: LCh short-arc, saturation maintained. |
| snap_to_archive | boolean | no | Snap each stop to nearest archive colour (default true) |
| archive | string | no | Restrict snapping to this archive name e.g. Victorian |
| output_format | string | no | stops: array of colour objects. css: linear-gradient string. svg: swatch bar. |
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 neare
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | List of hex values to translate e.g. ['#F5F0E8', '#8B6B3D'] |
| target_archive | string | yes | Archive to translate into e.g. 'Shakespeare', 'Japan', 'Oxfordshire' |
| max_delta_e | number | no | Max acceptable CIEDE2000 distance — above this is flagged out-of-threshold (default 40) |
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 i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Colour concept to subvert e.g. 'love', 'grief', 'luxury', 'betrayal', 'power' |
| expected_colour | string | no | Optional: the cliche colour to contradict e.g. 'red', '#FF0000'. Hex or colour name. |
| n_results | integer | no | Number of archive entries to search (default 8) |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour to evaluate e.g. '#31559B' |
| use_case | string | yes | What the colour will be used for e.g. 'luxury hotel brand', 'heritage interior wall' |
| markets | array | no | Target markets e.g. ['UK', 'Japan', 'UAE'] |
| medium | string | no | Application medium e.g. 'digital', 'interior', 'print', 'fashion', 'packaging' |
| audience | string | no | Optional: target audience e.g. 'high net worth travellers', 'young professionals' |
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 l
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | List of 2-8 hex values e.g. ['#31559B', '#E8D898', '#4A2A50'] |
| use_case | string | yes | What the palette will be used for e.g. 'luxury cushion collection', 'brand identity' |
| market | string | no | Optional: target market e.g. 'UK', 'Japan', 'global' |
| medium | string | no | Application medium e.g. 'interior', 'digital', 'fashion', 'print' |
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:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task | string | yes | What the other AI needs to generate e.g. 'luxury hotel bedroom image' |
| concept | string | yes | Colour concept to draw from e.g. 'Ottoman winter luxury', 'Victorian mourning'. Negation phrases ('must never', 'without', 'not X') are extracted and kept out of retrieval. |
| palette_size | integer | no | Number of archive colours to include (default 5, max 8) |
| model | string | no | Target model: midjourney, flux, dalle, stable_diffusion |
| style_notes | string | no | Optional: additional style direction e.g. 'matte surfaces only', 'no gold' |
| locked_palette | array | no | Optional: list of hex values to use exclusively. When provided, no archive query is run and no evidence filtering applies — these exact colours are used as-is. Prevents palette drift. |
| archive | string | no | Optional: restrict palette query to this archive e.g. georgianpleasures, japan, china |
| allowed_archives | array | no | Optional: list of allowed archive names. Query restricted to these archives only. |
| avoid | array | no | Optional: terms/associations to keep out of retrieval e.g. ['mourning', 'funeral black']. Affects retrieval directly, not just post-hoc flagging. |
| minimum_claim_strength | string | no | Evidence-grade floor for archive-grounded retrieval (default 'C'). Grade controls documentary strength; claim_role='reject' entries are excluded regardless of how low this is set. Not applied to locke |
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 le
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour to evaluate e.g. '#4A2A50' |
| brand_context | object | no | Brand context object |
| constraints | object | no | Constraints object |
| markets | array | no | Target markets e.g. ['UK', 'France', 'Japan'] |
| medium | string | no | Primary medium e.g. 'packaging', 'interior', 'digital' |
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. R
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | no | Document title e.g. 'The Colours of Georgian Power' |
| audience | string | no | Target audience e.g. 'serious Georgian collector' |
| themes | array | yes | Research themes e.g. ['racing silks', 'EIC trade', 'Keats'] |
| archives | array | no | Archives to search e.g. ['RacingSilks', 'EIC', 'Keats', 'Dickens'] |
| avoid | array | no | Topics to suppress e.g. ['arsenic wallpaper', 'Wedgwood blue'] |
| n_colours | integer | no | Number of colours to return (default 8, max 16) |
| strict_sources | boolean | no | Only return entries with named primary sources (default true) |
| minimum_claim_strength | string | no | Hard evidence-grade floor: A, B, C, D, or E. Never silently relaxed. |
| confidence_threshold | number | no | Minimum confidence score (0.0-1.0) for an entry to be included. Default 0.5 filters out weakly-matched stubs. |
| period_start | integer | no | Hard period gate: exclude entries dated before this year. Default 0 (no lower bound). |
| period_end | integer | no | Hard period gate: exclude entries dated after this year. Default 9999 (no upper bound). |
| allow_partial | boolean | no | If false (default), returning fewer cards than requested sets ok=false with error_code INSUFFICIENT_PALETTE_RESULTS instead of a silent short 'success'. Set true to accept a short result. |
| family_card_mode | string | no | How near-identical cultivars/records are presented. 'auto' (default): current behaviour, groups into family cards above the standard ΔE threshold. 'always': widens the clustering threshold so more nea |
| max_family_card_share | number | no | Conservative mode only: maximum fraction (0.0-1.0, default 0.5) of presented cards that may be family cards before excess families are suppressed to hero cards. Ignored in auto/always modes. |
| output_format | string | no | Reserved for future use -- currently accepted but has no effect on the response shape (the endpoint always returns the full report). |
| strict_semantic_colour | boolean | no | Default false. When true, excludes entries whose quoted colour language contradicts their stored hex (e.g. a record naming 'Prussian blue' whose hex is actually a pale cream) rather than presenting th |
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 ca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Existing hex values |
| brand_name | string | no | Brand name for CSS tokens |
| context | string | no | Brand context |
| market | string | no | Target market |
| n_additions | integer | no | Archive colours to add (default 3) |
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 evidenc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| themes | array | yes | Themes to check e.g. ['opium', 'gin', 'gambling', 'racing'] |
| archives | array | no | Optional archives to search e.g. ['EIC', 'Dickens'] |
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 anac
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entries | array | yes | Colour entries to check |
| target_period | string | no | Period description e.g. 'Georgian England 1714-1830' |
| period_start | integer | no | Start year e.g. 1714 |
| period_end | integer | no | End year e.g. 1830 |
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 + resonanc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | no | Brief title e.g. 'The Colours of Pleasure' |
| audience | string | no | Target audience e.g. 'serious collector' |
| themes | array | yes | Research themes |
| archives | array | no | Archives to draw from |
| avoid | array | no | Themes to suppress |
| n_colours | integer | no | Number of colour cards (default 8) |
| target_period | string | no | Historical period e.g. 'Georgian England 1714-1830' |
| period_start | integer | no | Start year e.g. 1714 |
| period_end | integer | no | End year e.g. 1830 |
| strict_sources | boolean | no | Only include entries with named primary sources |
| confidence_threshold | number | no | Min confidence 0-1 (default 0.6) |
| minimum_claim_strength | string | no | Hard evidence-grade floor: A, B, C, D, or E. Never silently relaxed. |
| tone | string | no | forensic | editorial | clinical | narrative |
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, sou
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entries | array | yes | List of colour entries to score for resonance |
| score_basis | string | no | Scoring basis (default: material_origin_to_social_consequence) |
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' retur
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour to analyse e.g. '#4A535C' |
| proposed_claim | string | yes | What you want to say about this colour e.g. 'cyanosis in a death chamber' |
| archive | string | no | Optional archive to search e.g. 'DarkHistory' |
| n_candidates | integer | no | Number of archive candidates to return (default 5) |
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 commit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_hex | string | yes | Brand hero colour hex e.g. '#D4A829' |
| brand_name | string | no | Brand name e.g. 'Fortnum and Mason' |
| competitor_hexes | array | no | List of competitor hex colours |
| competitor_provenance | array | no | Where each competitor colour came from, positionally aligned to competitor_hexes. Only a verified value moves the distinctiveness score; an estimated or unverified one is kept as a QUALITATIVE compari |
| competitor_names | array | no | Competitor names matching hex order |
| market | string | no | Market context e.g. 'UK luxury food retail' |
| region | string | no | Region code e.g. 'GB', 'UAE', 'JP' |
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 +
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hero hex colour e.g. '#4A2A50' |
| brand_context | object | no | Brand context: category, positioning, audience, channels |
| markets | array | no | Target markets e.g. ['UK', 'France', 'Japan'] |
| medium | string | no | Medium e.g. 'packaging', 'digital', 'interior' |
| concept | string | no | Optional concept to search for cliche contradiction e.g. 'luxury', 'eco', 'wellness' |
| product_type | string | no | Product type for copy e.g. 'velvet cushion', 'fragrance', 'cleaning spray' |
| target_model | string | no | Image model for agent brief e.g. 'midjourney', 'flux', 'dalle' |
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 scor
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Array of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B'] |
| market | string | no | Target market e.g. 'UK luxury', 'global', 'Japan' |
| use_case | string | no | Use case e.g. 'brand identity', 'packaging', 'app UI' |
| medium | string | no | digital | print | both |
| brand_category | string | no | Optional brand category e.g. 'developer tool', 'food', 'fashion' |
| site_evidence | object | no | Evidence for a LIVE-SITE audit, supplied by the host (Colour Memory does not browse). {pages: [{url, role: 'homepage'|'about'|'work'|'services'|'product'|..., screenshot: bool, tokens: bool, observati |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target_palette | array | yes | Hex values from agent_brief colour_tokens e.g. ['#ED9921', '#E29937'] |
| image_url | string | no | URL of the generated image |
| image_base64 | string | no | Base64 encoded generated image |
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). U
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | no | Single hex colour e.g. #31559B |
| hexes | array | no | Multiple hex colours for batch lookup e.g. ['#31559B', '#8B1A1A']. Max 20. |
| include_physics | boolean | no | Include illuminant behaviour and gamut data (default true) |
| include_cultural | boolean | no | Include cultural risk and associations (default true) |
| n_archive | integer | no | Number of archive matches to return (default 3) |
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 c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hexes | array | yes | List of hex colours e.g. ['#31559B', '#8B1A1A'] |
| include_physics | boolean | no | Include illuminant behaviour and gamut data (default true) |
| include_cultural | boolean | no | Include cultural associations (default false) |
| n_archive | integer | no | Number of archive matches per colour (default 3) |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour to fingerprint e.g. '#4A2A50' |
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,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour of the product e.g. '#4A2A50' |
| product_type | string | yes | Product type e.g. 'velvet cushion', 'ceramic vase', 'linen throw', 'candle' |
| tone | string | no | Copy tone e.g. 'premium but not pompous', 'warm and accessible', 'heritage and serious' |
| channel | string | no | Sales channel e.g. 'shopify', 'etsy', 'instagram', 'editorial' |
| brand_name | string | no | Optional brand name to include in copy |
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 c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour e.g. '#154F20' |
| audience | string | no | Target audience e.g. 'general public', 'interior designers', 'children' |
| tone | string | no | Desired tone e.g. 'dinner party', 'academic', 'social media', 'brand copy' |
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 sourc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| colour_name | string | yes | Name of the archive colour e.g. 'Love Idleness', 'Woad Vat Blue', 'Murex Luxury' |
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: ultramar
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour to assess e.g. '#2A5498' |
| substrate | string | yes | Physical substrate e.g. 'lime plaster', 'gypsum board', 'brick', 'timber', 'canvas' |
| finish | string | no | Paint finish e.g. 'matt', 'eggshell', 'gloss', 'limewash' |
| orientation | string | no | Room or surface orientation e.g. 'north-facing', 'south exterior', 'east bedroom' |
| use | string | no | Specific use context e.g. 'heritage repair', 'new build interior', 'conservation project' |
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 archiv
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Current hex palette to refine |
| feedback | string | yes | Natural language refinement e.g. more melancholic |
| direction | string | no | Alias for feedback — natural language direction e.g. more dangerous, more historical, warmer |
| use_case | string | no | Use case context e.g. luxury homewares |
| markets | array | no | Target markets |
| n_results | integer | no | Number of variants to return (default 1) |
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 recommendin
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Named archive colour e.g. Bourton Honey |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette | array | yes | Hex values to export |
| format | string | no | css | figma | ase_hex | tailwind | json |
| names | array | no | Optional custom names |
| prefix | string | no | Token prefix e.g. cm, brand (default: cm) |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| palette_a | array | yes | First palette hex values |
| palette_b | array | yes | Second palette hex values |
| use_case | string | no | Context for comparison e.g. luxury packaging |
| markets | array | no | Target markets |
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, pr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hexes | array | yes | List of hex values e.g. ['#D4A829', '#1A5C6E'] |
| product_category | string | no | e.g. 'paint', 'candle', 'fashion', 'homeware' |
| brand_name | string | no | Brand name for context |
| style | string | no | geographical | poetic | material | literary | mixed (default) |
| max_dE | number | no | Max dE2000 distance to accept (default 25) |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_hex | string | yes | Brand colour hex e.g. '#D4A829' |
| background_hex | string | no | Background hex (default #FFFFFF) |
| dark_mode | boolean | no | Generate for dark mode (default false) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour to name e.g. #8B4A2A |
| style | string | no | geographical | poetic | material | literary | botanical | industrial | mixed |
| market | string | no | Target market e.g. UK luxury |
| product_type | string | no | Product type e.g. candle, paint, leather bag |
| n_names | integer | no | Number of name options (default 5) |
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 1
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hexes | string | yes | Comma-separated hex values e.g. #d4a829,#1a5c6e,#0a0a0b |
| weights | string | no | Comma-separated proportional weights from k-means extraction. Used only when layout=photo. |
| layout | string | no | photo | equal | grid | gradient | filmstrip | 6310 | 7020 | 5030 | 8010 | 5050 | 6040 | triptych | quad | 55-25-20 | quint | 70-10-20 | 40-30-20-10 | 33-33-24-10. gradient is a true smooth perceptual |
| w | integer | no | Output width in pixels (default 1200) |
| h | integer | no | Output height in pixels (default 630) |
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 al
| Parameter | Type | Required | Notes |
|---|---|---|---|
| colours | array | yes | Array of colour objects |
| archive | string | no | Optional: restrict to one archive e.g. China, Pigment, ArtsAndCrafts |
| n | integer | no | Max alternatives per colour when confidence is low (1-3, default 1) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source_url | string | no | HTTPS URL of the image |
| image | object | no | MCP file reference {download_url, mime_type, file_name} |
| image_base64 | string | no | Base64-encoded image data. Use this for locally uploaded files with no public URL. No size limit here (unlike palette_extract's image_base64). |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image_id | string | no | Ephemeral image_id from ingest_image (preferred for images over 50 KB) |
| image_url | string | no | Public URL of the image to extract colours from |
| image_base64 | string | no | Base64-encoded image data (small images only, under 50 KB) |
| k | integer | no | Number of colours to extract (3-12, default 6) |
| grey_card_hex | string | no | Hex value sampled from a grey or white card in the image for white balance correction e.g. #C8C8C8 |
| analyse | boolean | no | If true, also run palette_analyse on the extracted colours and return archive names |
| style_context | string | no | Plain English style description that restricts archive matching to a coherent set e.g. 'English cottage garden', 'Victorian', 'Japanese', 'MarsColour', 'Arts and Crafts'. Prevents palette colours from |
| archive | string | no | Explicit single archive name to restrict matching to e.g. 'MarsColour', 'Japan', 'Victorian'. |
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_anal
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image_url | string | no | Public URL of the image |
| image_base64 | string | no | Base64-encoded image data |
| k | integer | no | Number of colours to extract (3-12, default 6) |
| grey_card_hex | string | no | Hex value from a grey/white card for white balance correction |
| style_context | string | no | Plain English style e.g. 'English cottage garden', 'Victorian', 'Japanese', 'MarsColour'. Restricts archive matching to coherent cultural set. |
| archive | string | no | Explicit archive name override e.g. 'MarsColour', 'Japan' |
| product_type | string | no | Product focus e.g. 'tea towel', 'wallpaper', 'ceramic', 'textile' |
| model | string | no | Image model: midjourney | flux | dalle | stable_diffusion (default midjourney) |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project_id returned by house_specify for an authenticated (keyed) call. |
| version | integer | no | Specific version number to describe. Omit for the project's current version. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max projects to return, default 50, capped at 200. |
| cursor | string | no | Opaque pagination cursor -- pass the previous response's next_cursor to get the next page. |
| project_type | string | no | Filter by project type, e.g. 'house'. Omit for all types. |
| updated_since | string | no | ISO 8601 timestamp -- only return projects updated after this time. |
| include_deleted | boolean | no | Include soft-deleted projects (still owner-scoped). Default false. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project_id returned by house_specify for an authenticated (keyed) call. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project_id returned by house_specify for an authenticated (keyed) call. |
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_ref or project_id -- an inline house object is refused (400) (same resolution and ownership rules as palette_pdf: an authenticated project_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| house | object | no | DO NOT USE -- an inline house object is refused (400 INLINE_HOUSE_NOT_ALLOWED). Pass house_ref (returned by house_specify) or project_id instead. |
| house_ref | string | no | The house_ref string house_specify returns. For a durable (authenticated) project this also requires the same API key that created it. |
| project_id | string | no | The project_id returned by house_specify for an authenticated (keyed) call. Requires the same API key that created the project. |
| project_version | integer | no | Used with either house_ref or project_id -- export this specific immutable version instead of the project's current version. Omit to export the current version. |
| format | string | yes | Which editable format to produce. |
| delivery | string | no | 'url' (default): signed, time-limited R2 download link. 'base64': file bytes returned inline as file_base64, unless too large -- see OUTPUT_TOO_LARGE_FOR_INLINE_DELIVERY. |
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 bra
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_name | string | yes | The brand's name. |
| continue_project_id | string | no | The project_id returned by an earlier call, when this is a REFINEMENT of that same Brand Standard. Reuse it and the work joins that project as a new version; omit it and a second project is created. ' |
| brand_brief | object | no | Category, positioning, audience, personality, values, channels, markets, and named competitors with their hex colours. |
| palette_input | object | yes | Exactly how to source the candidate colours. |
| preferences | object | no | — |
| identity_assets | object | no | — |
| output_preferences | object | no | — |
| constraints | object | no | Structured negative/positive retrieval constraints, checked before archive-diversity capping. avoid_concepts takes precedence over any sentiment inferred from brand_brief prose. |
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 retu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_job_ref | string | yes | The brand_job_ref returned by brand_guideline_specify's processing response. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_ref | string | no | The brand_ref returned by brand_guideline_specify. Supply this OR project_id. |
| project_id | string | no | The project_id returned by brand_guideline_specify. Use this after a refinement (a continued project has a project_id but no new brand_ref). Supply this OR brand_ref. |
| selected_candidate_id | string | yes | Which candidate_id to make canonical. |
| locked_colour_ids | array | no | colour_id values to lock for future iteration. |
| suppressed_claim_ids | array | no | claim_id values to suppress (marked superseded). |
| note | string | no | Optional free-text rationale, e.g. "Client prefers the quieter system." |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_ref | string | no | The brand_ref returned by brand_guideline_specify or brand_guideline_select. |
| project_id | string | no | Alternative to brand_ref for an authenticated (keyed) brand project. Requires the same API key that created it. |
| project_version | integer | no | Render this specific immutable version instead of the project's current version. Omit to render the current version. |
| delivery | string | no | 'url' (default): signed, time-limited R2 download link. 'base64': PDF bytes returned inline. |
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_id
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand_ref | string | no | The brand_ref returned by brand_guideline_specify or brand_guideline_select. |
| project_id | string | no | Alternative to brand_ref for an authenticated (keyed) brand project. Requires the same API key that created it. |
| project_version | integer | no | Resolve claims against this specific immutable version instead of the project's current version. |
| claim_ids | array | no | Which claim_id values to resolve. Omit (or pass an empty list) to return every claim on the brand_ref. |
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 d
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | no | What this result is, in the customer's terms. |
| kind | string | no | palette, house, brand or audit. |
| colours | array | yes | The colours you are handing over, in order. |
| proportions | array | no | Only where a real share was decided. Every colour gets one and they total 100, or leave this out entirely -- a share nobody decided reads as a measurement nobody took. |
| verdict | string | no | One sentence, shown under the colour. |
| checks | array | no | — |
| evidence_summary | string | no | — |
| story_thesis | string | no | ONE sentence: what this scheme IS. 'Danish coastal colour, domesticated for a summer house.' Shown above the palette, so it must earn its line. |
| design_move | string | no | At most two sentences on the decision you made -- what the evidence offered and what you did with it. This is usually the most interesting thing in your answer and the part a list of colours cannot ca |
| key_rule | string | no | The one rule worth remembering, short enough to repeat to a decorator. 'Boathouse Clay stays tiny. Never a wall.' |
| evidence_thread | array | no | Three to five short sources or references that shaped this. Orientation, not a bibliography. |
| evidence_boundary | string | no | What is source-backed and what is your interpretation. Say it plainly: 'Designed contemporary interpretation, not a measured historical paint specification.' |
| bridge | object | no | Where the evidence started and where you took it. Include colours on a side ONLY if you have real colour values for it -- an invented source swatch beside a real archive one reads as evidence and is |
| rooms | array | no | For a multi-room scheme: one short line per room, in your own words. What that room is doing with the palette. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | no | What you are calling this palette. |
| brief | string | no | The customer's request, in their words. |
| colours | array | yes | The final palette, in the order you want it shown. |
| source_anchors | array | no | Archive records that informed the palette but are not in it. Give the record's name so it can be verified. |
| notes | array | no | Short usage guidance, in your words. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| goal | string | yes | Plain-English description of what you're trying to do. |
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 ex
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Plain-English historical colour question. |
| mode | string | no | 'user' (default) returns an evidence-led answer packet with structured values retained. 'evidence' additionally returns the complete underlying records. |
| sources | array | no | Optional restriction to named sources. |
| max_results | integer | no | Upper bound on evidence items (default 12). |
| high_confidence_only | boolean | no | Only high-confidence records. |
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 s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| record_id | string | yes | Stable record id, e.g. from archive_search or colour_card. |
| include_unresolved | boolean | no | Include same-name candidates across sources -- the cheapest, easiest-to-misread-as-evidence edge in the system. Default false. |
| include_computed | boolean | no | Include computed (not source-asserted) relationships where available. Default true. |
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 --
| Parameter | Type | Required | Notes |
|---|---|---|---|
| a | string | yes | First record id. |
| b | string | yes | Second record id. |
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 tri
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hex | string | yes | Hex colour, e.g. '#CC1A14'. |
| n_per_member | integer | no | Archive candidates per partner member (1-5). Default 1, which returns a single archive_match object rather than a list. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Colour Memory or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 2.3.5.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Colour Memory can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.