io.github.DigbyO/colour-memory

Colour Memory

Colour meaning, history and evidence for AI: 45,000+ source-graded colour records and 91 tools.

Endpointhttps://api.colourmemory.com/mcp (streamable-http)
Registry version2.3.5
Now92 tools · grade D (58) · pin ts_7e3bce89cbbd4de6d42e570103ba4377 · protocol 2025-11-25
First / last listed2026-11-12 01:00 UTC / 2026-11-12 01:00 UTC
Grade over time2026-11-12: D (58), 92 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-12 01:00 UTC
92 tools, grade D (58)

Tools: query_conceptual extract_image_colours query_hex palette_specify colour_metrics colour_harmonies accessibility_check accessibility_matrix accessibility_rules colour_slugs palette_light_dark accessibility_font archive_search colour_combination palette_strict archive_report_document palette_pdf palette_audit brand_system brand_asset_pack accessibility_simulate colour_match_paint colour_card meta_capabilities system_status colour_story palette_concept colour_mix colour_timeline image_palette colour_compare colour_cultural_risk design_session image_personal style_match interior_specify house_specify palette_generate palette_gradient palette_translate archive_cliche colour_verdict palette_verdict agent_brief colour_strategy archive_report_brief palette_heritage archive_coverage_gap archive_cultural_anachronism session_brief index_resonance archive_evidence_gap brand_collision brand_report brand_audit agent_verify colour_passport colour_passports colour_dna ecommerce_copy colour_hooks archive_provenance colour_forensics palette_iterate colour_variants palette_export palette_compare ecommerce_namer ui_states colour_namer palette_swatch palette_analyse ingest_image palette_extract image_brief project_get project_list project_versions project_delete project_export brand_guideline_specify brand_guideline_status brand_guideline_select brand_guideline_pdf brand_guideline_claims render_colour_result palette_finalize tool_guide historical_colour_query colour_relationships why_connected vanderpoel_pairing

Current tools (92)

query_conceptualAnswers 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). A vague or personal-soundin
params: query*, n_results, archive
extract_image_coloursExtract dominant colours from a photograph using Colour Memory's proprietary k-means++ algorithm. Requires either a public image_url, or an image_id. A raw uploaded file with no public URL (e.g. a local file path or a ChatGPT file attachment without a usable download_url) is accepted as an image_id from ingest_image. Returns hex values with proportional weights. Optionally matches colours against
params: image, image_url, image_id, k, style_context, analyse, grey_card_hex
query_hexFind the closest named archive colours to a hex value using CIEDE2000 perceptual distance.
params: hex*, n_results, archive
palette_specifyGenerate 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, ready to show the customer. The archive anchors a colour was derived from are evidence, not the recommended colours. A final palette chosen from
params: colours*, room_type, style
colour_metricsReturns 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. Returns isolated numeric val
params: hex_val*
colour_harmoniesReturn 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
params: hex*, harmony_types
accessibility_checkEvaluates 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.
params: hex_val*, background
accessibility_matrixAccept 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. One call replaces repeated accessibility_check calls for a palette.
params: palette*
accessibility_rulesConvert 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.
params: palette*
colour_slugsReturn 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.
params: hex*, archive
palette_light_darkGenerate 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, ready to show the customer. The archive anchors a colour was derived from are evidence, not the recommended c
params: palette*, use_case
accessibility_fontGiven 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.
params: background*, palette*
archive_searchFull-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). A
params: query*, archive, n_results, include_full, limit, offset, entity_mode, year_from, year_to
colour_combinationAssess 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.
params: colours*, context
palette_strictLike 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, ready to show t
params: concept*, allowed_archives, n_colours, min_relevance, include_neutrals
archive_report_documentCreate a designed, full-colour Word (.docx) report from Colour Memory records. Builds a document, report, write-up, handout or Word file from archive findings. Records are passed by the record_id or slug exactly as archive_search (or another tool) returned them, grouped into sections with a heading and optional narrative. Colour Memory resolves every record itself and draws its name, date, place,
params: title*, subtitle, sections*, delivery
palette_pdfGenerates a premium branded PDF specification sheet from a palette of archive entries: full-bleed colour panels, archive names, provenance notes, RAL nearest match, LRV, chroma, WCAG contrast data and Colour Memory branding. Suited to client deliverables, specification sheets and print assets. TRUST BOUNDARY: every colour is verified server-side against the real archive by (name, hex, archive_sour
params: entries, query, source, delivery, sections, presentation, house, house_ref, project_id, project_version, verify
palette_auditFull 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, ready to show the custome
params: palette*, use_case, market, medium
brand_systemComplete 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, ready to show the customer. The archive anchors a colour was
params: palette*, market, use_case, medium, brand_category
brand_asset_packComplete 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.
params: palette*, market, use_case, medium, brand_category
accessibility_simulateReturn 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.
params: hex_val*
colour_match_paintFind the nearest named colour in commercial paint systems including Farrow and Ball and Little Greene.
params: hex_val*, brand, n
colour_cardLook up a named colour and return its hex, archive, provenance, and cultural notes.
params: name, slug
meta_capabilitiesReturn 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.
params: none
system_statusZero-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). The schema_hash identifies the deployed tool list, so two connections can be compared: a mismatch usually means one connection holds a stale cached manifest, not a real deployment gap.
params: none
colour_storyGiven 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.
params: hex*, n_archives
palette_conceptGenerate 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
params: concept*, n_colours, include_neutrals, avoid
colour_mixSimulate 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.
params: hex_a*, hex_b*, ratio
colour_timelineGiven 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
params: concept*, n
image_paletteUpload 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
params: image_base64*, media_type, n_colours, archive
colour_compareDeep 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 anoth
params: hex_a*, hex_b*
colour_cultural_riskCultural 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.
params: hex, palette, markets
design_sessionOne-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
params: concept*, medium, n_colours, include_accessibility, include_paint_matches, include_prompt, avoid
image_personalUpload 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 the subject, each with full historical provenance and cultural context, plus colours to avoid. Uses Claude Vision for sk
params: image_base64, image_url, media_type, name
style_matchThe 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
params: items*, occasion, ask
interior_specifyGenerate a complete interior colour specification from a concept or brief. Takes a room concept, type and style and returns 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 acces
params: concept*, room_type, style, orientation, output_format, n_colours, avoid, archive, role_plan
house_specifyGenerate 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
params: concept*, output_format, archive*, rooms*, colours_per_room, shared_house_colours, minimum_claim_strength, avoid, narrative_mode, strict_semantic_colour, guidance_level
palette_generateSend 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-co
params: slots*, archive, size
palette_gradientGenerate 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
params: anchors*, steps, path, snap_to_archive, archive, output_format
palette_translateMap 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
params: palette*, target_archive*, max_delta_e
archive_clicheFind 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
params: concept*, expected_colour, n_results
colour_verdictEvaluate 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
params: hex*, use_case*, markets, medium, audience
palette_verdictEvaluate 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
params: palette*, use_case*, market, medium
agent_briefGenerate 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:
params: task*, concept*, palette_size, model, style_notes, locked_palette, archive, allowed_archives, avoid, minimum_claim_strength
colour_strategySingle-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
params: hex*, brand_context, constraints, markets, medium
archive_report_briefOne-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
params: title, audience, themes*, archives, avoid, n_colours, strict_sources, minimum_claim_strength, confidence_threshold, period_start, period_end, allow_partial, family_card_mode, max_family_card_share, output_format, strict_semantic_colour
palette_heritageGiven 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
params: palette*, brand_name, context, market, n_additions
archive_coverage_gapGiven 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
params: themes*, archives
archive_cultural_anachronismCheck 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
params: entries*, target_period, period_start, period_end
session_briefSingle-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
params: title, audience, themes*, archives, avoid, n_colours, target_period, period_start, period_end, strict_sources, confidence_threshold, minimum_claim_strength, tone
index_resonanceColour 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
params: entries*, score_basis
archive_evidence_gapGiven 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
params: hex*, proposed_claim*, archive, n_candidates
brand_collisionCan 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
params: brand_hex*, brand_name, competitor_hexes, competitor_provenance, competitor_names, market, region
brand_reportOne-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. One call covers what colour_strategy + cliche_b
params: hex*, brand_context, markets, medium, concept, product_type, target_model
brand_auditFast, 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
params: palette*, market, use_case, medium, brand_category, site_evidence
agent_verifyVerify 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
params: target_palette*, image_url, image_base64
colour_passportCanonical 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). T
params: hex, hexes, include_physics, include_cultural, n_archive
colour_passportsBatch 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
params: hexes*, include_physics, include_cultural, n_archive
colour_dnaCompact semantic fingerprint for a single hex colour. This is one component of colour_passport. Returns the fingerprint format alone; colour_passport returns the general colour profile that includes it. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads, ready to show the customer. The archive anchors a colour was derived from are evidence, not the recomm
params: hex*
ecommerce_copyGenerate 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,
params: hex*, product_type*, tone, channel, brand_name
colour_hooksGenerate 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
params: hex*, audience, tone
archive_provenanceExplains 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
params: colour_name*
colour_forensicsAssess 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
params: hex*, substrate*, finish, orientation, use
palette_iterateRefine 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, ready to show the customer. The archive anchors a col
params: palette*, feedback*, direction, use_case, markets, n_results
colour_variantsFor 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, ready to show the customer. The archive anchors a colour was derived from are evidence, not the recommended colours. A fina
params: name*
palette_exportExport 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.
params: palette*, format, names, prefix
palette_compareDeep 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, ready to show the customer. The archive anchors a colour was derived from are evidence, not the
params: palette_a*, palette_b*, use_case, markets
ecommerce_namerGenerate 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
params: hexes*, product_category, brand_name, style, max_dE
ui_statesGenerate 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
params: brand_hex*, background_hex, dark_mode
colour_namerGenerate 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.
params: hex*, style, market, product_type, n_names
palette_swatchGenerate 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
params: hexes*, weights, layout, w, h
palette_analyseAnalyse 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
params: colours*, archive, n
ingest_imageUpload an image to Colour Memory for ephemeral processing. Returns image_id valid 5 minutes. Pass image_id to palette_extract or extract_image_colours. Use for any image over 50 KB.
params: source_url, image, image_base64
palette_extractExtract 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. Returns hex values with proportions, the input palette_analyse and palette_swatch take. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and
params: image_id, image_url, image_base64, k, grey_card_hex, analyse, style_context, archive
image_briefCompound 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. One call covers what palette_extract + palette_analyse
params: image_url, image_base64, k, grey_card_hex, style_context, archive, product_type, model
project_getRetrieve 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
params: project_id*, version
project_listList 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.
params: limit, cursor, project_type, updated_since, include_deleted
project_versionsList 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.
params: project_id*
project_deleteSoft-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.
params: project_id*
project_exportExport 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_
params: house, house_ref, project_id, project_version, format*, delivery
brand_guideline_specifyGenerates 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
params: brand_name*, continue_project_id, brand_brief, palette_input*, preferences, identity_assets, output_preferences, constraints
brand_guideline_statusResolves a brand_job_ref returned by brand_guideline_specify when its race-to-complete window elapsed before generation finished. Read-only, in-process lookup; it does not re-run 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 r
params: brand_job_ref*
brand_guideline_selectRecords 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.
params: brand_ref, project_id, selected_candidate_id*, locked_colour_ids, suppressed_claim_ids, note
brand_guideline_pdfRenders 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
params: brand_ref, project_id, project_version, delivery
brand_guideline_claimsResolves 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; it does not re-run generation or mutate anything. Omit claim_
params: brand_ref, project_id, project_version, claim_ids
render_colour_resultDisplays a finished colour result to the customer as colour. Presents a palette, house scheme, brand system or audit that has already been decided; it chooses nothing. It is not designed for a single contrast figure, a colour history question with no palette, or tool guidance. Accepts a short story with it: one sentence on what the scheme is, the design decision behind it, and the one rule worth r
params: title, kind, colours*, proportions, verdict, checks, evidence_summary, story_thesis, design_move, key_rule, evidence_thread, evidence_boundary, bridge, rooms
palette_finalizePackages an already-chosen palette into a professional, visible, downloadable deliverable. Takes the final colours once they have been decided, verifies and packages that 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 sent are the colours that come back, in the same order. Each final colour is sent
params: title, brief, colours*, source_anchors, notes
tool_guideDeterministic 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
params: goal*
historical_colour_queryAnswers a question about how historical colour authorities actually reasoned, with evidence and 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
params: query*, mode, sources, max_results, high_confidence_only
colour_relationshipsWhat 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
params: record_id*, include_unresolved, include_computed
why_connectedAre 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 --
params: a*, b*
vanderpoel_pairingEmily 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
params: hex*, n_per_member

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.