CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Colour Memory

digbyo/colour-memory-api
65 toolsHTTPregistry active
Summary

If you've ever wondered why a particular shade matters beyond hex codes, this connects Claude to a curated database of colors tied to their cultural origins and historical impact. Each color comes with attribution to the person who created or popularized it, the year it emerged, and the real-world consequences that followed. Reach for this when you're doing design research, writing about color theory, or need to ground aesthetic decisions in cultural context rather than just visual appeal. It's essentially a searchable archive that treats color as cultural artifact rather than just wavelength.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

65 tools
query_conceptualAsk a cultural, historical, or material colour question. Returns named archive colours with provenance and cultural context. Works for abstract queries like 'grief', 'Ottoman luxury', 'toxic Victorian pigments', or 'the sea at dusk'.3 params

Ask a cultural, historical, or material colour question. Returns named archive colours with provenance and cultural context. Works for abstract queries like 'grief', 'Ottoman luxury', 'toxic Victorian pigments', or 'the sea at dusk'.

Parameters* required
querystring
The colour concept or cultural question to search for
archivestring
Optional: restrict to a named archive e.g. 'Japan', 'Pigment', 'OttomanEmpire'
n_resultsinteger
Number of results (default 5)default: 5
query_hexFind the closest named archive colours to a hex value using CIEDE2000 perceptual distance.3 params

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

Parameters* required
hexstring
Hex value with or without # e.g. '#8B4513'
archivestring
Optional: restrict to a named archive
n_resultsinteger
Number of results (default 5)default: 5
palette_specifyGenerate a complete interior specification from 2-8 hex values. Returns surface assignments, 60-30-10 proportions, lighting behaviour, and archive colour names.3 params

Generate a complete interior specification from 2-8 hex values. Returns surface assignments, 60-30-10 proportions, lighting behaviour, and archive colour names.

Parameters* required
stylestring
e.g. 'heritage', 'contemporary', 'minimal'
coloursarray
List of 2-8 hex values
room_typestring
e.g. 'living', 'bedroom', 'kitchen', 'study'
colour_metricsReturn perceptual colour metrics: LRV, chroma, hue angle, warmth classification, and illuminant shifts under D65 (6500K), F11 (4000K), and Illuminant A (3000K).1 params

Return perceptual colour metrics: LRV, chroma, hue angle, warmth classification, and illuminant shifts under D65 (6500K), F11 (4000K), and Illuminant A (3000K).

Parameters* required
hex_valstring
Hex value e.g. '#8B4513'
colour_harmoniesReturn complementary, triadic, analogous, and split-complementary harmonies matched to named archive colours.2 params

Return complementary, triadic, analogous, and split-complementary harmonies matched to named archive colours.

Parameters* required
hexstring
Hex value e.g. '#3A5C8C'
harmony_typesarray
Harmony types to include
accessibility_checkReturn WCAG 2.1 contrast ratios and AA/AAA pass/fail grades for a foreground hex against a background.2 params

Return WCAG 2.1 contrast ratios and AA/AAA pass/fail grades for a foreground hex against a background.

Parameters* required
hex_valstring
Foreground hex value
backgroundstring
Background hex (default 'FFFFFF')default: FFFFFF
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. Use this instead of calling accessibility_check multiple times for a palette.1 params

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.

Parameters* required
palettearray
Array of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B']
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.1 params

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.

Parameters* required
palettearray
Array of hex values
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.2 params

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.

Parameters* required
hexstring
Hex value e.g. #D4A829
archivestring
Optional archive filter
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.2 params

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.

Parameters* required
palettearray
Array of hex values
use_casestring
Use case context e.g. UI, dashboard, reportdefault: UI
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.2 params

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.

Parameters* required
palettearray
Candidate foreground hex values
backgroundstring
Background hex value
archive_searchFull-text keyword search across all 17,346 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.5 params

Full-text keyword search across all 17,346 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.

Parameters* required
limitinteger
Alias for n_results
querystring
Search term e.g. cerulean, Prussian, Ottoman, ochre, medieval
archivestring
Optional archive filter e.g. oxfordshire, japan, pigment, keats, eic, racingsilks
n_resultsinteger
Number of results (default 10, max 50)default: 10
include_fullboolean
Return complete notes and source fields. Default false returns 150-char snippets. Set true for report workflows.
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.2 params

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.

Parameters* required
coloursarray
2-5 hex values to assess as a combination
contextstring
Usage context: UI | data viz | fashion | interior | print | brandingdefault: UI
palette_strictLike palette_from_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 spe...5 params

Like palette_from_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 spe...

Parameters* required
conceptstring
Cultural concept e.g. Japanese wabi-sabi
n_coloursinteger
Number of colours (default 5)default: 5
min_relevancenumber
Minimum relevance score 0-1 (default 0.3)default: 0.3
allowed_archivesarray
Archive names to restrict results e.g. ['Japan', 'China']
include_neutralsboolean
Include neutral tones (default true)default: true
palette_pdfGenerate 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. Pass the entries arr...3 params

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. Pass the entries arr...

Parameters* required
querystring
Optional title for the palette e.g. Ottoman imperial luxury
sourcestring
Optional source label e.g. brand, conceptualdefault: archive
entriesarray
Array of colour entries from query_hex or palette_from_concept. Each needs name, hex, archive_source, colour_notes, primary_source, zone.
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.4 params

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.

Parameters* required
marketstring
Target marketdefault: global
mediumstring
digital | print | bothdefault: digital
palettearray
Hex values to audit
use_casestring
Use case contextdefault: brand identity
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.5 params

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.

Parameters* required
marketstring
Target market e.g. global, UK, Japandefault: global
mediumstring
digital | print | bothdefault: digital
palettearray
Hex values
use_casestring
Use case e.g. brand identity, packagingdefault: brand identity
brand_categorystring
Optional e.g. developer tool, luxury, food
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.5 params

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.

Parameters* required
marketstring
Target marketdefault: global
mediumstring
digital | print | bothdefault: digital
palettearray
Hex values
use_casestring
Use casedefault: brand identity
brand_categorystring
Optional brand name or category
accessibility_simulateReturn simulated hex values for protanopia, deuteranopia, and tritanopia using the Brettel-Vienot-Mollon model.1 params

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

Parameters* required
hex_valstring
Hex value e.g. '#BE0032'
match_paintFind the nearest named colour in commercial paint systems including Farrow and Ball and Little Greene.3 params

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

Parameters* required
ninteger
Number of matches (default 3)default: 3
brandstring
Optional brand filter: 'farrow' or 'little_greene'
hex_valstring
Hex value e.g. '#003153'
colour_cardLook up a named colour and return its hex, archive, provenance, and cultural notes.2 params

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

Parameters* required
namestring
Colour name e.g. 'Prussian Blue' or 'Ottoman Carbon Ink'
slugstring
Stable colour slug from archive_search e.g. 'keats:keats-s-lung' -- preferred over name for reliable retrieval
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.

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 in public metadata yet.

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

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

No parameter schema in public metadata yet.

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

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

Parameters* required
hexstring
Hex value e.g. '#DC143C'
n_archivesinteger
Number of archive sources to draw from (default 5)default: 5
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 k...3 params

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

Parameters* required
conceptstring
Cultural theme or historical period e.g. 'Victorian mourning' or 'Ottoman court'
n_coloursinteger
Number of colours to return (default 5, max 8)default: 5
include_neutralsboolean
Include neutral/background coloursdefault: true
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 Pruss...3 params

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

Parameters* required
hex_astring
First colour hex e.g. '#003366'
hex_bstring
Second colour hex e.g. '#C8A600'
rationumber
Mix ratio 0.0-1.0 where 0.5 is equal parts (default 0.5)default: 0.5
colour_timelineGiven a hex value, traces that colour's appearances across cultures and centuries in chronological order. Shows how a colour travelled through history — from its earliest documented use to its modern associations. Essential for understanding why a colour carries the weight it...2 params

Given a hex value, traces that colour's appearances across cultures and centuries in chronological order. Shows how a colour travelled through history — from its earliest documented use to its modern associations. Essential for understanding why a colour carries the weight it...

Parameters* required
hexstring
Hex value to trace through history
toleranceinteger
dE2000 tolerance for matching (default 20)default: 20
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 plus Bradford chromatic adaptation for accuracy. Returns up to 5 dominant colours, eac...4 params

Upload an image (base64 encoded) and extract its dominant colour palette, with each colour matched to its nearest named archive entry with full cultural provenance. Uses K-means++ extraction plus Bradford chromatic adaptation for accuracy. Returns up to 5 dominant colours, eac...

Parameters* required
archivestring
Optional: restrict archive matching to a specific archive
n_coloursinteger
Number of dominant colours to extract (default 5, max 5)default: 5
media_typestring
Image MIME type e.g. 'image/jpeg'default: image/jpeg
image_base64string
Base64 encoded image (JPEG, PNG, WebP)
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, a...2 params

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

Parameters* required
hex_astring
First colour hex e.g. '#003366'
hex_bstring
Second colour hex e.g. '#1877F2'
cultural_riskScore a hex value or palette for cultural sensitivity, symbolic weight, regional taboos, religious associations, and potential misinterpretation across global markets. Returns warnings, positive associations, and context-dependent readings per colour family, with specific mark...3 params

Score a hex value or palette for cultural sensitivity, symbolic weight, regional taboos, religious associations, and potential misinterpretation across global markets. Returns warnings, positive associations, and context-dependent readings per colour family, with specific mark...

Parameters* required
hexstring
Single hex value to assess e.g. '#FF9900'
marketsarray
Optional market focus e.g. ['China', 'Middle East', 'India']
palettearray
Optional list of hex values to assess as a palette
session_designOne-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 promp...6 params

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

Parameters* required
mediumstring
Application context e.g. 'interior', 'brand identity', 'fashion', 'digital', 'print'default: general
conceptstring
Cultural theme, mood, or brief e.g. 'Victorian mourning', 'Ottoman court', 'Scandinavian minimal'
n_coloursinteger
Palette size (default 5, max 8)default: 5
include_promptboolean
Include image generation prompt (default true)default: true
include_accessibilityboolean
Include WCAG contrast check (default true)default: true
include_paint_matchesboolean
Include commercial paint matches (default true)default: true
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 su...4 params

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

Parameters* required
namestring
Optional: person's name for the report e.g. 'Sarah'
image_urlstring
URL of a portrait photo hosted online. Easier than base64 for MCP use. Either image_url or image_base64 required.
media_typestring
Image MIME type e.g. 'image/jpeg'default: image/jpeg
image_base64string
Base64 encoded portrait photo (JPEG or PNG). Face should be clearly visible in natural light. Either image_base64 or image_url required.
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. Every recommend...3 params

The colour question every stylist gets asked: does this bag go with this outfit? Submit your outfit items as hex values with labels (dress, bag, shoes, coat, belt, scarf, etc.) and receive a verdict on what works, what clashes, what is missing, and what to add. Every recommend...

Parameters* required
askstring
Optional: specific question e.g. 'what bag colour works?' or 'do the shoes work?'
itemsarray
List of outfit items with label and hex colour
occasionstring
Optional: occasion context e.g. 'daytime', 'evening', 'office', 'casual', 'wedding guest'default: general
interior_specifyGenerate 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 Littl...5 params

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

Parameters* required
stylestring
Style direction e.g. 'heritage', 'contemporary', 'maximalist', 'minimal', 'scandi', 'industrial', 'coastal'default: heritage
conceptstring
Room concept or brief e.g. 'bold maximalist living room' or 'calm Scandi bedroom'
n_coloursinteger
Number of colours in scheme (default 5, max 7)default: 5
room_typestring
Room type e.g. 'living', 'bedroom', 'kitchen', 'study', 'bathroom', 'hallway', 'dining'default: living
orientationstring
Room orientation e.g. 'north', 'south', 'east', 'west' — affects light advicedefault:
palette_generateSend a palette of up to 8 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,...3 params

Send a palette of up to 8 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,...

Parameters* required
sizeinteger
Total palette size 2-8 (default 5)default: 5
slotsarray
List of palette slots. Each has index (0-7), optional hex, and locked flag.
archivestring
Optional: restrict fills to one archive e.g. 'Oxfordshire', 'Shakespeare', 'Japan'
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...3 params

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

Parameters* required
palettearray
List of hex values to translate e.g. ['#F5F0E8', '#8B6B3D']
max_delta_enumber
Max acceptable CIEDE2000 distance — above this is flagged out-of-threshold (default 40)default: 40
target_archivestring
Archive to translate into e.g. 'Shakespeare', 'Japan', 'Oxfordshire'
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...3 params

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

Parameters* required
conceptstring
Colour concept to subvert e.g. 'love', 'grief', 'luxury', 'betrayal', 'power'
n_resultsinteger
Number of archive entries to search (default 8)default: 8
expected_colourstring
Optional: the cliche colour to contradict e.g. 'red', '#FF0000'. Hex or colour name.
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...5 params

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

Parameters* required
hexstring
Hex colour to evaluate e.g. '#31559B'
mediumstring
Application medium e.g. 'digital', 'interior', 'print', 'fashion', 'packaging'default: general
marketsarray
Target markets e.g. ['UK', 'Japan', 'UAE']
audiencestring
Optional: target audience e.g. 'high net worth travellers', 'young professionals'
use_casestring
What the colour will be used for e.g. 'luxury hotel brand', 'heritage interior wall'
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...4 params

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

Parameters* required
marketstring
Optional: target market e.g. 'UK', 'Japan', 'global'
mediumstring
Application medium e.g. 'interior', 'digital', 'fashion', 'print'default: general
palettearray
List of 2-8 hex values e.g. ['#31559B', '#E8D898', '#4A2A50']
use_casestring
What the palette will be used for e.g. 'luxury cushion collection', 'brand identity'
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 i...8 params

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

Parameters* required
taskstring
What the other AI needs to generate e.g. 'luxury hotel bedroom image'
modelstring
Target model: midjourney, flux, dalle, stable_diffusiondefault: midjourney
archivestring
Optional: restrict palette query to this archive e.g. georgianpleasures, japan, chinadefault:
conceptstring
Colour concept to draw from e.g. 'Ottoman winter luxury', 'Victorian mourning'
style_notesstring
Optional: additional style direction e.g. 'matte surfaces only', 'no gold'
palette_sizeinteger
Number of archive colours to include (default 5, max 8)default: 5
locked_palettearray
Optional: list of hex values to use exclusively. When provided, no archive query is run — these exact colours are used. Prevents palette drift.
allowed_archivesarray
Optional: list of allowed archive names. Query restricted to these archives only.
colour_strategyThe flagship commercial endpoint. Combines archive grounding, verdict, brand fit, market risk, category cliche check, material behaviour, copy hooks, and usage rules in a single call. Input: hex + brand_context (category, positioning, audience, channels) + constraints (avoid,...5 params

The flagship commercial endpoint. Combines archive grounding, verdict, brand fit, market risk, category cliche check, material behaviour, copy hooks, and usage rules in a single call. Input: hex + brand_context (category, positioning, audience, channels) + constraints (avoid,...

Parameters* required
hexstring
Hex colour to evaluate e.g. '#4A2A50'
mediumstring
Primary medium e.g. 'packaging', 'interior', 'digital'default: general
marketsarray
Target markets e.g. ['UK', 'France', 'Japan']
constraintsobject
Constraints object
brand_contextobject
Brand context object
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, CT...7 params

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

Parameters* required
avoidarray
Topics to suppress e.g. ['arsenic wallpaper', 'Wedgwood blue']
titlestring
Document title e.g. 'The Colours of Georgian Power'
themesarray
Research themes e.g. ['racing silks', 'EIC trade', 'Keats']
archivesarray
Archives to search e.g. ['RacingSilks', 'EIC', 'Keats', 'Dickens']
audiencestring
Target audience e.g. 'serious Georgian collector'
n_coloursinteger
Number of colours to return (default 8, max 16)
strict_sourcesboolean
Only return entries with named primary sources (default true)
heritage_paletteGiven 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 role...5 params

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

Parameters* required
marketstring
Target market
contextstring
Brand context
palettearray
Existing hex values
brand_namestring
Brand name for CSS tokens
n_additionsinteger
Archive colours to add (default 3)
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...2 params

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

Parameters* required
themesarray
Themes to check e.g. ['opium', 'gin', 'gambling', 'racing']
archivesarray
Optional archives to search e.g. ['EIC', 'Dickens']
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 hi...4 params

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

Parameters* required
entriesarray
Colour entries to check
period_endinteger
End year e.g. 1830
period_startinteger
Start year e.g. 1714
target_periodstring
Period description e.g. 'Georgian England 1714-1830'
session_briefThe money endpoint. One call returns a complete forensic colour brief. 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 struct...12 params

The money endpoint. One call returns a complete forensic colour brief. 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 struct...

Parameters* required
tonestring
forensic | editorial | clinical | narrative
avoidarray
Themes to suppress
titlestring
Brief title e.g. 'The Colours of Pleasure'
themesarray
Research themes
archivesarray
Archives to draw from
audiencestring
Target audience e.g. 'serious collector'
n_coloursinteger
Number of colour cards (default 8)
period_endinteger
End year e.g. 1830
period_startinteger
Start year e.g. 1714
target_periodstring
Historical period e.g. 'Georgian England 1714-1830'
strict_sourcesboolean
Only include entries with named primary sources
confidence_thresholdnumber
Min confidence 0-1 (default 0.6)
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 dete...2 params

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

Parameters* required
entriesarray
List of colour entries to score for resonance
score_basisstring
Scoring basis (default: material_origin_to_social_consequence)
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...4 params

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

Parameters* required
hexstring
Hex colour to analyse e.g. '#4A535C'
archivestring
Optional archive to search e.g. 'DarkHistory'
n_candidatesinteger
Number of archive candidates to return (default 5)
proposed_claimstring
What you want to say about this colour e.g. 'cyanosis in a death chamber'
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 verd...6 params

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

Parameters* required
marketstring
Market context e.g. 'UK luxury food retail'
regionstring
Region code e.g. 'GB', 'UAE', 'JP'
brand_hexstring
Brand hero colour hex e.g. '#D4A829'
brand_namestring
Brand name e.g. 'Fortnum and Mason'
competitor_hexesarray
List of competitor hex colours
competitor_namesarray
Competitor names matching hex order
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 co...7 params

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

Parameters* required
hexstring
Hero hex colour e.g. '#4A2A50'
mediumstring
Medium e.g. 'packaging', 'digital', 'interior'default: general
conceptstring
Optional concept to search for cliche contradiction e.g. 'luxury', 'eco', 'wellness'
marketsarray
Target markets e.g. ['UK', 'France', 'Japan']
product_typestring
Product type for copy e.g. 'velvet cushion', 'fragrance', 'cleaning spray'
target_modelstring
Image model for agent brief e.g. 'midjourney', 'flux', 'dalle'default: midjourney
brand_contextobject
Brand context: category, positioning, audience, channels
brand_auditComplete brand colour intelligence audit in one call. Accepts a palette array plus market, use_case, medium, and brand_category. Returns: colour roles with archive names, full WCAG accessibility matrix, cultural risk per colour, palette verdict with score and suggested additio...5 params

Complete brand colour intelligence audit in one call. Accepts a palette array plus market, use_case, medium, and brand_category. Returns: colour roles with archive names, full WCAG accessibility matrix, cultural risk per colour, palette verdict with score and suggested additio...

Parameters* required
marketstring
Target market e.g. 'UK luxury', 'global', 'Japan'default: global
mediumstring
digital | print | bothdefault: digital
palettearray
Array of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B']
use_casestring
Use case e.g. 'brand identity', 'packaging', 'app UI'default: brand identity
brand_categorystring
Optional brand category e.g. 'developer tool', 'food', 'fashion'
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...3 params

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

Parameters* required
image_urlstring
URL of the generated image
image_base64string
Base64 encoded generated image
target_palettearray
Hex values from agent_brief colour_tokens e.g. ['#ED9921', '#E29937']
colour_dnaCompact semantic fingerprint for any hex colour. Returns depth (very_dark to very_light), temperature (warm/cool), chroma band (neutral/muted/moderate/saturated), LRV, hue angle, zone, commercial signal, risk summary, best mediums, and avoid mediums. Backed by nearest archive...1 params

Compact semantic fingerprint for any hex colour. Returns depth (very_dark to very_light), temperature (warm/cool), chroma band (neutral/muted/moderate/saturated), LRV, hue angle, zone, commercial signal, risk summary, best mediums, and avoid mediums. Backed by nearest archive...

Parameters* required
hexstring
Hex colour to fingerprint e.g. '#4A2A50'
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 cop...5 params

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

Parameters* required
hexstring
Hex colour of the product e.g. '#4A2A50'
tonestring
Copy tone e.g. 'premium but not pompous', 'warm and accessible', 'heritage and serious'default: premium but not pompous
channelstring
Sales channel e.g. 'shopify', 'etsy', 'instagram', 'editorial'default: shopify
brand_namestring
Optional brand name to include in copydefault:
product_typestring
Product type e.g. 'velvet cushion', 'ceramic vase', 'linen throw', 'candle'
archive_auditRun a data quality audit on any named archive. Returns entry count, health score 0-100, grade A-D, and issue counts for: empty colour_notes, empty primary_source, weak notes, duplicate names, duplicate hex values, and malformed hex codes. Also returns the first 20 affected col...1 params

Run a data quality audit on any named archive. Returns entry count, health score 0-100, grade A-D, and issue counts for: empty colour_notes, empty primary_source, weak notes, duplicate names, duplicate hex values, and malformed hex codes. Also returns the first 20 affected col...

Parameters* required
archivestring
Archive name to audit e.g. 'British', 'Tingry', 'Byzantine'
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,...3 params

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

Parameters* required
hexstring
Hex colour e.g. '#154F20'
tonestring
Desired tone e.g. 'dinner party', 'academic', 'social media', 'brand copy'default: dinner party
audiencestring
Target audience e.g. 'general public', 'interior designers', 'children'default: general public
archive_provenanceExplain the provenance of any named archive colour with explicit separation of: documented historical fact, computational hex derivation, and cultural interpretation. Returns: claim, evidence type, source specificity, confidence, what is documented, what is inferred, what is i...1 params

Explain the provenance of any named archive colour with explicit separation of: documented historical fact, computational hex derivation, and cultural interpretation. Returns: claim, evidence type, source specificity, confidence, what is documented, what is inferred, what is i...

Parameters* required
colour_namestring
Name of the archive colour e.g. 'Love Idleness', 'Woad Vat Blue', 'Murex Luxury'
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 n...5 params

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

Parameters* required
hexstring
Hex colour to assess e.g. '#2A5498'
usestring
Specific use context e.g. 'heritage repair', 'new build interior', 'conservation project'default:
finishstring
Paint finish e.g. 'matt', 'eggshell', 'gloss', 'limewash'default: matt
substratestring
Physical substrate e.g. 'lime plaster', 'gypsum board', 'brick', 'timber', 'canvas'
orientationstring
Room or surface orientation e.g. 'north-facing', 'south exterior', 'east bedroom'default:
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.6 params

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.

Parameters* required
marketsarray
Target markets
palettearray
Current hex palette to refine
feedbackstring
Natural language refinement e.g. more melancholicdefault:
use_casestring
Use case context e.g. luxury homewares
directionstring
Alias for feedback — natural language direction e.g. more dangerous, more historical, warmerdefault:
n_resultsinteger
Number of variants to return (default 1)
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.1 params

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.

Parameters* required
namestring
Named archive colour e.g. Bourton Honey
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.4 params

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.

Parameters* required
namesarray
Optional custom names
formatstring
css | figma | ase_hex | tailwind | json
prefixstring
Token prefix e.g. cm, brand (default: cm)
palettearray
Hex values to export
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.4 params

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.

Parameters* required
marketsarray
Target markets
use_casestring
Context for comparison e.g. luxury packaging
palette_aarray
First palette hex values
palette_barray
Second palette hex values
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 sc...5 params

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

Parameters* required
hexesarray
List of hex values e.g. ['#D4A829', '#1A5C6E']
stylestring
geographical | poetic | material | literary | mixed (default)
max_dEnumber
Max dE2000 distance to accept (default 25)
brand_namestring
Brand name for context
product_categorystring
e.g. 'paint', 'candle', 'fashion', 'homeware'
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, c...3 params

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

Parameters* required
brand_hexstring
Brand colour hex e.g. '#D4A829'
dark_modeboolean
Generate for dark mode (default false)
background_hexstring
Background hex (default #FFFFFF)
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.5 params

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.

Parameters* required
hexstring
Hex colour to name e.g. #8B4A2A
stylestring
geographical | poetic | material | literary | botanical | industrial | mixed
marketstring
Target market e.g. UK luxury
n_namesinteger
Number of name options (default 5)
product_typestring
Product type e.g. candle, paint, leather bag
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
AI & LLM Tools
Registryactive
TransportHTTP
UpdatedMay 26, 2026
View on GitHub

Related AI & LLM Tools MCP Servers

View all →
SkillFM LLM Cost Optimizer

io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage

LLM cost optimizer for OpenAI, Anthropic, token usage, BYOK, and SkillFM Beacon audits.
Llm Orchestration Agent

io.github.mikerawsonnz/llm-orchestration-agent

Run a prompt through a LangChain (system + human) chain over Gemini on Vertex AI; optional LangSmith
Authenticated Llm Agent

io.github.mikerawsonnz/authenticated-llm-agent

JWT-gated LLM gateway: authenticate (bcrypt/JWT), then run a LangChain-on-Vertex Gemini completion.
Copilot Memory MCP

labforgedev/copilot-memory-mcp

Persistent semantic memory for AI agents using local ChromaDB vector search. No cloud required.
1
Agent Prompt Injection Firewall Mcp

csoai-org/agent-prompt-injection-firewall-mcp

The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Authenticated Multi Llm Agent

io.github.mikerawsonnz/authenticated-multi-llm-agent

Google-OAuth-gated LLM gateway: verify a Google ID token, then run a Gemini (Vertex AI) completion f