Colour Memory API
Colour Memory
The cultural colour intelligence layer for AI agents, designers, and brands.
Tens of thousands of named colours across dozens of cultural archives. Every result provenance-labelled: documented fact, source type, and inferred hex always separated. Not generated. Not hallucinated.
What it is
Every other colour API tells you what colours go together. Colour Memory tells you what they mean.
The difference is the archive. Tens of thousands of colours, each provenance-labelled with source type, cultural consequence data, and material context. No LLM names colours. No hallucination. Every result separates what is documented, what is inferred, and what is interpretive.
"Patna Opium Ball White. Bengal Opium Agency Annual Report 1833. The factory produced over 4,000 chests annually, graded by the whiteness of the outer coating."
That is a colour with a receipt. No other API produces that.
Related MCP server: MCP Color Server
Why it matters for AI
AI agents make colour decisions without cultural memory. They generate hex values with no understanding of what those colours carry historically, what they mean across markets, or whether they will land badly with a global audience.
Colour Memory gives agents a grounded colour intelligence layer. Every result includes archive source, cultural consequence, market risk, and confidence score. Hallucination risk is structurally eliminated because no LLM names colours -- the names come from the archive.
The archives
Ancient Rome, Anglo-Saxon, Architecture, Austen, Australia, Brazil, Byzantine Empire, China, Dark History, Denmark, Dickens, EIC (East India Company), Finland, Football Strips, France, Georgian Pleasures, Germany, India, Islamic, Italy, Japan, Keats, Korea, Medieval Europe, Mexico, Military, Morocco, Netherlands, Nigeria, Norman Medieval, Norway, Ottoman Empire, Oxfordshire, Pigment, Pigment Historical, Plantagenet, Racing Silks, Roman Britain, Shakespeare, Space and Stars, Spain, Stuart Georgian, Sweden, Switzerland, Tingry, Tudor, USA, Viking Norse, Werner-Syme.
Quick start
Claude Desktop
claude mcp add --transport http colour-memory https://api.colourmemory.com/mcpOr add to claude_desktop_config.json:
{
"mcpServers": {
"colour-memory": {
"type": "http",
"url": "https://api.colourmemory.com/mcp",
"headers": { "X-Api-Key": "YOUR_KEY" }
}
}
}Get a free key (no card required): https://colourmemory.com/start
Try these prompts in Claude
What does the colour #D4A829 mean historically and culturally?
Build a palette for a Japanese luxury brand avoiding colours with negative cultural associations.
Is our brand colour #C0392B safe to use in a healthcare app targeting UK and Japanese markets?
Any MCP client (ChatGPT, Cursor, Windsurf)
Add this URL: https://api.colourmemory.com/mcp
REST API
# Match a hex to the archive
curl -X POST https://api.colourmemory.com/query/hex
-H "X-Api-Key: YOUR_KEY"
-H "Content-Type: application/json"
-d '{"hex": "D4A829"}'
# Query by concept or cultural brief
curl -X POST https://api.colourmemory.com/query/conceptual
-H "X-Api-Key: YOUR_KEY"
-H "Content-Type: application/json"
-d '{"query": "Ottoman luxury"}'
# Brand audit
curl -X POST https://api.colourmemory.com/brand/audit
-H "X-Api-Key: YOUR_KEY"
-H "Content-Type: application/json"
-d '{"palette": ["#D4A829","#1A5C6E","#0F2D6B","#0A0A0B"]}'Get your key at colourmemory.com
Pricing
Explorer: Free, no card, 25 archive calls, 3 intelligence credits Developer: Free, email required, 500 archive calls, 10 intelligence credits Studio: £12/month, 2,000 archive calls, 50 intelligence credits Pro: £39/month, 10,000 archive calls, 200 intelligence credits Founder Enterprise: £299/month (20 slots only), 50,000 archive calls, 500 intelligence credits
Full details: https://colourmemory.com/pricing
Architecture
Runtime: FastAPI on Railway
Search: CIEDE2000 nearest-neighbour with sentence-transformer semantic index
Colour science: CIE Lab, LRV, chroma, three-illuminant simulation
Auth: X-Api-Key header
MCP endpoint: https://api.colourmemory.com/mcp
Persistent storage: PostgreSQL on Railway
Discovery: https://api.colourmemory.com/llms.txt · https://api.colourmemory.com/.well-known/agent.json
Brand colours
Every Colour Memory brand colour was selected through the API itself.
Song Gold Sycee #D4A829 -- China archive, Song dynasty
Northanger Abbey Pool #1A5C6E -- Austen archive
Saimaa Juhannus #0F2D6B -- Finland archive
Velvet Black #0A0A0B -- Werner-Syme 1814
Archive Parchment #F4EFE5 -- Architecture archive
Legal
UK Trademark 00004387450, Classes 9, 35 and 42, 2026 PR Eye Ltd, Oxfordshire
colourmemory.com / hello@colourmemory.com
Available Tools
66 toolsaccessibility_checkCheck WCAG AccessibilityARead-only
Return WCAG 2.1 contrast ratios and AA/AAA pass/fail grades for a foreground hex against a background.
| Name | Required | Description | Default |
|---|---|---|---|
| hex_val | Yes | Foreground hex value | |
| background | No | Background hex (default 'FFFFFF') | FFFFFF |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to repeat idempotency. It adds value by specifying the output includes WCAG 2.1 criteria, which goes beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action and result. No unnecessary words; every part is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple parameters, one required, and an output schema existing (not shown but indicated), the description is fully adequate. It explains what the tool does and what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description adds context that the foreground is checked against the background, but doesn't clarify hex format or that background defaults to white. Minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact action ('Return WCAG 2.1 contrast ratios and AA/AAA pass/fail grades') and the resource ('foreground hex against a background'). It clearly distinguishes from sibling tools like accessibility_font or accessibility_matrix by focusing on contrast ratios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Sibling tools include accessibility_matrix (which likely checks multiple contrasts), accessibility_simulate (simulations), and others, but there is no mention of when to choose this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accessibility_fontFont Colour AdvisorARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| background | Yes | Background hex value | |
| palette | Yes | Candidate foreground hex values |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by detailing the output: ranked list, WCAG grades, and specific recommendations for body text, large text, and UI components. It provides behavioral context beyond the annotation, making the tool's non-destructive nature clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of about 25 words, front-loaded with input context. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required parameters, 100% schema coverage, output schema present), the description adequately covers input and output behavior. No additional details about edge cases or errors are necessary for a focused analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description rephrases parameter names ('background hex', 'palette of candidate foreground colours') without adding new semantic meaning beyond the schema. It does not clarify formatting or units beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: ranking foreground colours against a background hex using contrast ratios and WCAG grades, with specific recommendations for body text, large text, and UI components. It distinguishes itself from sibling colour tools by focusing on font/foreground contrast advice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing contrast recommendations for foreground colours, but does not explicitly state when to use this tool versus alternatives like 'accessibility_check' or other colour comparison tools. No exclusion criteria or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accessibility_matrixFull Palette Accessibility MatrixARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Array of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B'] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so no contradiction. Description adds output behavior (returns combinations and grades) but does not disclose additional side effects or requirements beyond the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core functionality followed by usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be detailed. Description covers input, output, and usage guidance adequately for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with description adding minimal context beyond the schema (e.g., that it computes combinations). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool accepts a palette array and returns all foreground/background combinations with contrast ratios and pass/fail grades for AA/AAA standards. It also distinguishes from sibling tool 'accessibility_check' by recommending this tool for multiple checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use instead of calling accessibility_check multiple times for a palette, providing clear context. No explicit when-not to use, but the sibling relationships imply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accessibility_rulesAccessibility Usage RulesARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Array of hex values |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, so the safe read operation is already clear. The description adds valuable context: it is deterministic, incurs no LLM cost, and lists the return content categories. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a colon separating the main action from details. It is front-loaded with the verb and resource, and every phrase adds value. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with a clear input schema and an output schema present, the description sufficiently conveys what the tool does and returns. No additional details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'palette' parameter already describes 'Array of hex values'). The tool description does not add additional meaning or usage constraints beyond that, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Convert' and the resource 'palette WCAG matrix into actionable design-system rules'. It lists specific outputs (safe pairs, AA-only pairs, etc.), distinguishing itself from siblings like accessibility_matrix (which generates the matrix) and accessibility_check (general check).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a WCAG matrix is available and actionable rules are needed, and notes it is deterministic with no LLM cost. However, it does not explicitly state when not to use this tool versus alternatives like accessibility_check or accessibility_matrix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accessibility_simulateSimulate Colour BlindnessARead-only
Return simulated hex values for protanopia, deuteranopia, and tritanopia using the Brettel-Vienot-Mollon model.
| Name | Required | Description | Default |
|---|---|---|---|
| hex_val | Yes | Hex value e.g. '#BE0032' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds the specific color blindness model (Brettel-Vienot-Mollon), providing useful behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly conveys the tool's purpose without extraneous information, making it highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single required parameter, existing output schema, and clear annotations, the description covers the essential behavior. It mentions the model, which is a plus, though output format could be hinted for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for hex_val. The tool description does not further elaborate on the parameter format or constraints, so no additional value is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (Return simulated hex values), the resource (hex values for protanopia, deuteranopia, tritanopia), and the model used, distinguishing it from sibling tools like colour_compare or accessibility_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It does not explicitly state when to use this tool versus alternatives such as accessibility_check or colour_metrics, leaving the agent to infer context from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_briefGenerate Colour Direction for Another AIARead-only
Generate a complete colour direction package for another AI agent or image generation model. Fetches a historically grounded archive palette from the concept, then produces: an agent brief (colour direction in prose), colour tokens with hex values and roles, a model-specific image generation prompt, a negative prompt, and lighting notes. Supports midjourney, flux, dalle, stable_diffusion. Example: task='luxury hotel bedroom', concept='Ottoman winter luxury', model='midjourney'. Use this to make Colour Memory the colour layer for other AI systems.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What the other AI needs to generate e.g. 'luxury hotel bedroom image' | |
| concept | Yes | Colour concept to draw from e.g. 'Ottoman winter luxury', 'Victorian mourning' | |
| palette_size | No | Number of archive colours to include (default 5, max 8) | |
| model | No | Target model: midjourney, flux, dalle, stable_diffusion | midjourney |
| style_notes | No | Optional: additional style direction e.g. 'matte surfaces only', 'no gold' | |
| locked_palette | No | Optional: list of hex values to use exclusively. When provided, no archive query is run — these exact colours are used. Prevents palette drift. | |
| archive | No | Optional: restrict palette query to this archive e.g. georgianpleasures, japan, china | |
| allowed_archives | No | Optional: list of allowed archive names. Query restricted to these archives only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds behavioral details: fetches archive palette, produces multiple outputs, handles locked_palette to skip archive query, and supports model-specific prompts. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that covers all essential aspects: purpose, outputs, supported models, example, and use case. It is concise but could be slightly more structured (e.g., bullet points for outputs).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and full parameter descriptions, the description provides complete context: what it generates, how it uses the concept, model options, and optional parameters. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining the locked_palette behavior ('no archive query is run') and the overall workflow. This goes beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 'complete colour direction package' for another AI, listing specific outputs (agent brief, colour tokens, prompts). It distinguishes from siblings by focusing on producing a brief for other AI systems, not just a palette or analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example (task='luxury hotel bedroom', concept='Ottoman winter luxury', model='midjourney') and states the tool's use case: 'make Colour Memory the colour layer for other AI systems.' However, it does not explicitly mention when not to use or contrast with similar tools like palette_generate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_verifyVerify AI Image Generation Colour FidelityARead-only
Verify that an AI-generated image actually used the colours specified in an agent_brief call. Supply the generated image (URL or base64) and the target palette from agent_brief colour_tokens. Returns a fidelity score 0-100, dE2000 distance per colour, match quality per colour (accurate/acceptable/drifted/ignored), and an overall verdict. Use after agent_brief + image generation to close the colour loop.
| Name | Required | Description | Default |
|---|---|---|---|
| target_palette | Yes | Hex values from agent_brief colour_tokens e.g. ['#ED9921', '#E29937'] | |
| image_url | No | URL of the generated image | |
| image_base64 | No | Base64 encoded generated image |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint annotation matches description. Description additionally details return metrics (fidelity score, dE2000, match quality, verdict), providing rich behavioral context beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph, front-loaded with purpose, then usage, then output. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and an output schema, description covers all aspects: what it does, when to use, inputs, outputs, and workflow integration. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, but description adds meaning by linking target_palette to agent_brief colour_tokens and explaining image_url/image_base64 as alternatives. Also summarizes output, though output schema exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'verify' and resource 'colour fidelity', clearly distinguishing from sibling tools like colour_compare or palette_verdict. States exactly the inputs and outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after agent_brief + image generation to close the colour loop', giving clear context for when to invoke. Does not exclude alternatives or mention when not to use, but implied by the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_auditArchive Data Quality AuditARead-only
Run a data quality audit on any named archive. Returns entry count, health score 0-100, grade A-D, and issue counts for: empty colour_notes, empty primary_source, weak notes, duplicate names, duplicate hex values, and malformed hex codes. Also returns the first 20 affected colour names per issue type and a prioritised fix list. No Claude call — pure archive data analysis. Use before building new archive content to establish a baseline, or after a batch import to verify data quality.
| Name | Required | Description | Default |
|---|---|---|---|
| archive | Yes | Archive name to audit e.g. 'British', 'Tingry', 'Byzantine' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true; the description adds further transparency by stating 'No Claude call — pure archive data analysis' and detailing all returned metrics, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, then lists outputs and usage cases. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and the description already covers key return fields and usage, the definition is fully complete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the archive parameter. The description reinforces that the tool works on 'any named archive' and provides examples in the schema, adding value without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs a data quality audit on an archive, listing specific metrics returned (entry count, health score, grade, issue counts) and noting it's pure analysis with no Claude call, distinguishing it from sibling tools like archive_status or archive_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios: before building new archive content or after a batch import. It does not explicitly list alternatives or when not to use, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_clicheBreak a Colour ClicheARead-only
Find the most surprising archive colour for a concept and generate a memorable one-liner subverting the obvious expectation. Supply a concept (e.g. 'love', 'grief', 'luxury', 'power') and optionally the expected colour (e.g. 'red' for love). The archive finds the contradiction and Claude writes the one-liner, short story, and tweet. Example: love + red returns Shakespeare's dark green with 'Love is not red. It is the green of someone still waiting in a field.' Use this for public-facing demos, content, and brand storytelling.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Colour concept to subvert e.g. 'love', 'grief', 'luxury', 'betrayal', 'power' | |
| expected_colour | No | Optional: the cliche colour to contradict e.g. 'red', '#FF0000'. Hex or colour name. | |
| n_results | No | Number of archive entries to search (default 8) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds context about searching an archive and generating content via Claude. It discloses the tool's behavior without contradiction, though it could mention that no data is mutated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two paragraphs front-loading the purpose and an example. Every sentence contributes meaning, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description's coverage of the tool's input and output (one-liner, short story, tweet) is adequate. It omits edge cases but is sufficient for typical creative use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, and the description adds value by explaining how parameters work together (e.g., concept and expected_colour) with examples. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: find the most surprising archive colour for a concept and generate a memorable one-liner subverting expectations. It uses specific verbs and resources, and the unique focus on subverting clichés distinguishes it from sibling tools like colour_story or colour_strategy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: public-facing demos, content, and brand storytelling. It includes an example but does not explicitly state when not to use or compare to alternatives, though the context is sufficient for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_coverage_gapCoverage Gap ReportARead-only
Given a list of themes, report which are well-evidenced in the archive and which are under-evidenced or missing. Returns a coverage matrix: for each theme, entries found, coverage grade (strong/moderate/weak/missing), best match with claim strength, and what source type would be needed to improve coverage. Use this BEFORE building an archive_report_brief or brief_forensic to know where the evidence is strong and where gaps will appear. Prevents building beautiful reports that quietly ignore half the brief.
| Name | Required | Description | Default |
|---|---|---|---|
| themes | Yes | Themes to check e.g. ['opium', 'gin', 'gambling', 'racing'] | |
| archives | No | Optional archives to search e.g. ['EIC', 'Dickens'] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no destructive actions. The description adds value by detailing the output structure (coverage matrix with entries, grade, best match, source type needed) and the behavioral purpose of identifying gaps before report building. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose. The second sentence is dense but well-structured, covering output and usage without fluff. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 2 parameters (1 required), no enums, and an output schema present, the description provides good context. It explains the output and usage sequence, which is sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds a concrete example for 'themes' ('opium, gin, gambling, racing') and notes 'archives' is optional, which matches schema. This adds minor value but doesn't significantly extend beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: given themes, report evidence coverage. It specifies the output (coverage matrix with entries, grade, best match, source type) and distinguishes from sibling tools by stating it should be used before archive_report_brief or brief_forensic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this BEFORE building an archive_report_brief or brief_forensic to know where the evidence is strong and where gaps will appear.' It also explains the benefit: preventing building reports that ignore gaps. While it doesn't explicitly list when not to use, the usage context is very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_cultural_anachronismAnachronism GuardARead-only
Check a list of colour entries for anachronism risk. Detects whether the primary source date falls outside the requested period, whether the archive is a known modern source (RacingSilks, FootballStrips), and returns a period_relevance score and safe phrasing. Essential for historical documents: prevents a 2011 Jockey Club racing silk registration being presented as Georgian evidence. Returns anachronism_risk (none/low/medium/elevated/high), period_relevance score 0-1, safe_phrasing, and unsafe_phrasing for each entry.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | Colour entries to check | |
| target_period | No | Period description e.g. 'Georgian England 1714-1830' | |
| period_start | No | Start year e.g. 1714 | |
| period_end | No | End year e.g. 1830 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses detection logic and returns risk scores, safe phrasing; consistent with readOnlyHint annotation. Adds context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, then outputs and example. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All required aspects covered: purpose, inputs, outputs, usage context, and safety. No gaps given schema and annotation richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds logical meaning by explaining how parameters relate to anachronism detection, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks colour entries for anachronism risk, detecting source date mismatches and modern archives, with a concrete example differentiating it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (historical documents) via an example, but does not explicitly exclude alternatives or specify when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_evidence_gapEvidence Gap AnalysisARead-only
Given a hex value and a proposed claim about it, return whether the archive supports that claim, what is missing, what kind of source would be needed, and safe agent wording. This is Colour Memory's anti-hallucination endpoint. It turns the absence of evidence into a forensic finding rather than a gap to fill with invention. Example: hex #4A535C + proposed claim 'cyanosis in a death chamber' returns: nearest archive support, support level (supported/partial/unsupported), what source type is needed, and safe wording for the agent to use. Essential for museum, documentary, editorial, legal, and forensic workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour to analyse e.g. '#4A535C' | |
| proposed_claim | Yes | What you want to say about this colour e.g. 'cyanosis in a death chamber' | |
| archive | No | Optional archive to search e.g. 'DarkHistory' | |
| n_candidates | No | Number of archive candidates to return (default 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true, so the description is not required to state read-only. The description adds behavioral context: it treats absence of evidence as a forensic finding, not an invitation to invent. This goes beyond annotations and helps the agent understand its defensive role against hallucination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (approx. 90 words), front-loaded with the core purpose and output structure. Every sentence is informative: definition, example, use cases. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 params, 2 required) and the presence of an output schema, the description provides complete context: input examples, output fields enumerated, and use case scenarios. Agent can confidently select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 4 parameters with descriptions (100% coverage). The description supplements with realistic examples (e.g., '#4A535C', 'cyanosis in a death chamber', 'DarkHistory', default n_candidates=5), which adds semantic clarity beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: given a hex color and a proposed claim, it returns archive support level, missing evidence, required source type, and safe agent wording. It distinguishes itself from sibling tools by framing as an anti-hallucination endpoint for evidence gap analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete example and lists relevant workflows (museum, documentary, editorial, legal, forensic), clearly indicating when to use. However, it does not explicitly state when not to use or contrast with similar siblings like archive_search or archive_audit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_provenanceExplain a Colour's ProvenanceARead-only
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 interpretive, hex status, and citation format. This is the trust endpoint. It answers 'how do you know this?' Essential for any use case requiring intellectual honesty about colour data provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| colour_name | Yes | Name of the archive colour e.g. 'Love Idleness', 'Woad Vat Blue', 'Murex Luxury' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds behavioral context by detailing the output structure (claim, evidence type, source specificity, etc.) and the separation of documented fact, inferred, and interpretive elements. This enriches transparency beyond the annotation alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences plus a short key phrase. The description is front-loaded with the core function in the first sentence. Every sentence adds value: purpose, output specifics, and usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 param, output schema exists). The description comprehensively covers what the tool does, what it returns (specific fields), and its role as the trust endpoint. It mentions hex status and citation format, leaving little ambiguity. With an output schema, return details are not needed, and the description effectively completes the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the single parameter 'colour_name' and examples. The tool description does not add new semantic information about the parameter beyond the schema; it focuses on the tool's function. Baseline 3 is appropriate as the schema already does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool explains provenance of a named archive colour with explicit separation of fact, derivation, and interpretation. The verb 'Explain' and resource 'provenance' are specific. It distinguishes from siblings like colour_story or colour_forensics by positioning itself as the 'trust endpoint' for provenance, making its purpose unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the tool as 'the trust endpoint' for colour data provenance and says it's 'Essential for any use case requiring intellectual honesty about colour data provenance.' This provides clear context for when to use it, but it does not explicitly state when not to use or name alternatives, so a slight gap exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_report_briefArchive Report BriefARead-only
One-call complete archive research package for a document, PDF, or editorial brief. Input: title, audience, themes, archives to draw from, things to avoid, number of colours. Output: ranked colour cards with full provenance, story order, source confidence flags, pull quote, CTA line, CSS tokens, image prompt for Midjourney/Flux/DALLE, editorial argument, weakest and strongest entries identified. Replaces chaining archive_search + get_colour_card + cliche_breaker + agent_brief separately. Two Claude calls total. This is the endpoint for building premium archive documents, PDFs, briefs, and editorial content. Use this first for any document workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Document title e.g. 'The Colours of Georgian Power' | |
| audience | No | Target audience e.g. 'serious Georgian collector' | |
| themes | Yes | Research themes e.g. ['racing silks', 'EIC trade', 'Keats'] | |
| archives | No | Archives to search e.g. ['RacingSilks', 'EIC', 'Keats', 'Dickens'] | |
| avoid | No | Topics to suppress e.g. ['arsenic wallpaper', 'Wedgwood blue'] | |
| n_colours | No | Number of colours to return (default 8, max 16) | |
| strict_sources | No | Only return entries with named primary sources (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description appropriately confirms no side effects. It adds transparency about the tool making 'Two Claude calls total', which is beyond annotations, and details the comprehensive output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads the purpose and lists inputs and outputs. It is efficient but could benefit from structure like bullet points for clarity. Still, it is concise given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (7 params, output schema exists), the description covers inputs, outputs, usage context ('first for any document workflow'), and contrasts with siblings. It is complete and leaves no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all 7 parameters. The description lists the same parameters (title, audience, themes, etc.) but adds no new meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'complete archive research package' for documents, PDFs, or briefs, with specific verbs like 'archive research' and outputs like color cards. It distinguishes itself from sibling tools by explicitly naming the tools it replaces (archive_search, get_colour_card, cliche_breaker, agent_brief).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use this first for any document workflow' and explains it replaces chaining multiple tools, providing clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_searchArchive Keyword SearchARead-only
Full-text keyword search across all archive colour names and notes. Find colours by name fragment, material, cultural reference, pigment type, or historical period. Complements conceptual embedding search with exact keyword matching.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term e.g. cerulean, Prussian, Ottoman, ochre, medieval | |
| archive | No | Optional archive filter e.g. oxfordshire, japan, pigment, keats, eic, racingsilks | |
| n_results | No | Number of results (default 10, max 50) | |
| include_full | No | Return complete notes and source fields. Default false returns 150-char snippets. Set true for report workflows. | |
| limit | No | Alias for n_results | |
| year_from | No | Boost entries on or after this year e.g. 1400 for Renaissance, 1837 for Victorian | |
| year_to | No | Boost entries on or before this year e.g. 1600 for Renaissance, 1901 for Victorian |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only behavior (readOnlyHint: true). The description adds transparency about the result format: it can return 150-character snippets or full notes depending on the 'include_full' parameter, and it clarifies search scope (names and notes). This adds useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that efficiently convey the core action, scope, and complementary relationship to a sibling tool. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, output schema exists, annotations present), the description is complete: it covers purpose, result format, relationship to sibling, and key parameters. The output schema handles return values, so no further detail needed there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have descriptions in the input schema (100% coverage), so the schema already provides good meaning. The description adds minimal extra parameter-level detail mostly repeats the search categories. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs full-text keyword search across archive colour names and notes, and lists specific types of queries (name fragment, material, cultural reference, etc.). It explicitly distinguishes itself from a sibling tool (conceptual embedding search) by specifying exact keyword matching, making the purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that this tool complements conceptual embedding search with exact keyword matching, providing clear context for when to use it. However, it does not explicitly exclude other usage scenarios or mention when-not-to-use, missing a chance for fuller guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_statusArchive and API StatusARead-only
Return live archive status: total colour count, per-archive breakdown, embedding model, search engine state, and API version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's claim of returning live status is consistent. The description adds value by listing what is returned, but does not disclose additional behavioral traits beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and lists specifics without any extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only status tool with an output schema, the description fully covers what the tool returns (six items). No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is trivially 100%. With no parameters, the description need not add parameter meaning; baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Return live archive status' and enumerates specific items (total colour count, per-archive breakdown, embedding model, search engine state, API version). This distinguishes it from sibling tools like archive_audit or archive_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when archive status is needed but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_asset_packBrand Asset Pack ExportARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Hex values | |
| market | No | Target market | global |
| use_case | No | Use case | brand identity |
| medium | No | digital | print | both | digital |
| brand_category | No | Optional brand name or category |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the deterministic nature disclosed in the description adds value. The statement 'No LLM cost' provides additional transparency about cost and behavior beyond the annotation, though more detail on output stability would strengthen this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the most important information: what the tool returns and key behavioral traits (deterministic, no cost). No filler words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple outputs) and the presence of an output schema, the description covers the main outputs but could briefly mention the expected structure or format. However, the reliance on the output schema for details makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. The description does not add new meaning beyond the schema, but the schema is already sufficient. No parameter-specific elaboration is present, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Complete brand asset pack' and lists specific outputs (CSS variables, Tailwind config, Figma tokens JSON, citation cards, Markdown brand guide). It distinguishes itself from siblings by being a comprehensive export, not a single analysis or audit tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. While the description implies it's for final shipping, it doesn't differentiate from similar sibling tools like palette_export. The 'Deterministic. No LLM cost.' hints at safe repeated use but lacks context on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_auditComplete Brand Colour AuditARead-only
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 addition, CSS variables, Tailwind config, and production notes. All computed data -- no LLM cost. Pass results to an LLM for written narrative. Replaces chaining accessibility_matrix + cultural_risk_assessment + palette_verdict separately.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Array of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B'] | |
| market | No | Target market e.g. 'UK luxury', 'global', 'Japan' | global |
| use_case | No | Use case e.g. 'brand identity', 'packaging', 'app UI' | brand identity |
| medium | No | digital | print | both | digital |
| brand_category | No | Optional brand category e.g. 'developer tool', 'food', 'fashion' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds that 'All computed data -- no LLM cost', which is a behavioral trait not in annotations. It does not contradict annotations or hide important traits like data modification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and well-structured: purpose first, then parameters, then outputs, then usage note. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, output schema exists), the description covers all key aspects: inputs, outputs (colour roles, WCAG matrix, cultural risk, verdict, CSS, Tailwind, production notes), and behavioral context (no LLM cost, replaces chaining). With output schema present, return values are sufficiently explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%—all 5 parameters have descriptions in the schema. The description restates the parameters but adds no new semantic meaning beyond stating what the tool accepts. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's action ('Complete brand colour intelligence audit') and the resource ('brand'). It distinguishes itself from siblings by stating it replaces chaining multiple separate tools (accessibility_matrix, cultural_risk_assessment, palette_verdict).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use this tool ('in one call' vs chaining separate tools) and what to do with results ('Pass results to an LLM for written narrative'). It implies not to use if you need only one component, but doesn't explicitly say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_collisionBrand Colour Collision CheckARead-only
Can this brand own this colour against these competitors in this market? Input: brand hex, brand name, competitor hexes and names, market, region. Returns CIEDE2000 distance to each competitor, archive context for each colour, a distinctiveness score (0-100), an ownership verdict (strong/viable/contested/collision), a plain-English verdict summary, and a strategic recommendation. Use before committing to a brand colour in a competitive market. Replaces manual colour distance checks and competitor palette analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| brand_hex | Yes | Brand hero colour hex e.g. '#D4A829' | |
| brand_name | No | Brand name e.g. 'Fortnum and Mason' | |
| competitor_hexes | No | List of competitor hex colours | |
| competitor_names | No | Competitor names matching hex order | |
| market | No | Market context e.g. 'UK luxury food retail' | |
| region | No | Region code e.g. 'GB', 'UAE', 'JP' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description details the non-destructive output (distances, scores, verdicts). It adds context beyond annotations by describing what is returned and the analytical process. No contradictions detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused paragraph that lists inputs and outputs efficiently. It is concise with no fluff. Could be slightly improved by separating input/output sections or using bullet points, but current structure is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers purpose, inputs, and key outputs. It explains the tool's value and use case. With 6 parameters and rich return data, the description provides sufficient context for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description clarifies that competitor_hexes and competitor_names must match order, which is not explicit in the schema. It also enumerates output components, adding value. The description slightly enhances understanding of parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: checking if a brand can own a colour against competitors. It specifies inputs and outputs, and the title 'Brand Colour Collision Check' reinforces this. The tool is clearly distinguished from sibling tools which cover other aspects of colour analysis like cultural risk or forensics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises use before committing to a brand colour in a competitive market, and mentions it replaces manual colour distance checks. While it doesn't explicitly list when not to use it, the context is clear. It could be improved by directly comparing to siblings like 'colour_cultural_risk' or 'colour_forensics', but current guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_reportComplete Brand Colour Intelligence ReportARead-only
One-call complete brand colour intelligence report. Input: hex + brand context + markets + medium + product type. Output: archive anchor, cliche contradiction, colour DNA, strategy verdict, commercial signals, market reading per market, usage rules, palette roles, ecommerce copy, memory hooks, Instagram caption, and Midjourney/Flux/DALLE agent brief. Runs entirely internally -- no chained calls, cannot be blocked by agent safety filters. Use this instead of chaining colour_strategy + cliche_breaker + ecommerce_product_copy + memory_hooks + agent_brief separately. Two Claude calls total. One complete response.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hero hex colour e.g. '#4A2A50' | |
| brand_context | No | Brand context: category, positioning, audience, channels | |
| markets | No | Target markets e.g. ['UK', 'France', 'Japan'] | |
| medium | No | Medium e.g. 'packaging', 'digital', 'interior' | general |
| concept | No | Optional concept to search for cliche contradiction e.g. 'luxury', 'eco', 'wellness' | |
| product_type | No | Product type for copy e.g. 'velvet cushion', 'fragrance', 'cleaning spray' | |
| target_model | No | Image model for agent brief e.g. 'midjourney', 'flux', 'dalle' | midjourney |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds valuable behavioral context: 'runs entirely internally -- no chained calls, cannot be blocked by agent safety filters' and mentions 'Two Claude calls total'. This goes beyond annotations, though it could detail what 'internal' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences cover purpose, inputs, outputs, usage guidance, and behavioral details. Front-loaded with 'one-call complete'. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 params, nested objects, many siblings, output schema exists), the description covers purpose, usage, safety, and output list comprehensively. Could mention that output schema is defined separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description lists input parameters but does not add new semantics beyond the schema. However, it lists output components which indirectly contextualize inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'one-call complete brand colour intelligence report' and lists both inputs and outputs. It explicitly distinguishes itself from sibling tools like colour_strategy, cliche_breaker, etc., by saying 'use this instead of chaining...'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool (instead of chaining multiple individual tools) and provides a clear context. It does not give explicit when-not-to-use scenarios, but the alternative is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_systemComplete Brand Colour SystemARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Hex values | |
| market | No | Target market e.g. global, UK, Japan | global |
| use_case | No | Use case e.g. brand identity, packaging | brand identity |
| medium | No | digital | print | both | digital |
| brand_category | No | Optional e.g. developer tool, luxury, food |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it's a safe read operation. The description adds behavioral context: 'Deterministic. No LLM cost,' indicating predictable output and no cost implications, which is valuable beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose ('Complete brand colour system in one call'), followed by a concise enumeration of outputs. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (though not provided here), the description sufficiently explains what the tool returns. It covers the key outputs and behavioral traits (deterministic, no LLM cost). With good annotations, completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 5 parameters have basic descriptions (e.g., 'Hex values', 'Target market e.g. global, UK, Japan'). The tool description adds no extra meaning beyond these schema descriptions, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a complete brand colour system with specific outputs like colour roles, light/dark mode maps, typography guidance, etc. The phrase 'Complete brand colour system in one call' differentiates it from other colour tools that may be more specialized, though it does not explicitly contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a comprehensive colour system is needed ('Complete brand colour system in one call'), but does not explicitly state when to use this tool versus alternatives like colour_card or palette_generate. No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_cardGet Colour Details by NameARead-only
Look up a named colour and return its hex, archive, provenance, and cultural notes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Colour name e.g. 'Prussian Blue' or 'Ottoman Carbon Ink' | |
| slug | No | Stable colour slug from archive_search e.g. 'keats:keats-s-lung' -- preferred over name for reliable retrieval |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns with that by describing a read operation. It adds useful behavioral details about the return fields (hex, archive, provenance, cultural notes) beyond the annotations, providing a clear picture of what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence (16 words) that front-loads the tool's purpose. There is no extraneous information; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description appropriately identifies the key return fields. While it doesn't cover error cases or edge conditions, the tool is straightforward and the description provides sufficient context for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value by providing examples for both parameters and indicating that the slug parameter is preferred for reliable retrieval, which guides the agent in parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Look up'), the resource ('named colour'), and the expected output (hex, archive, provenance, cultural notes). It distinguishes itself from sibling tools like colour_combination or colour_compare by focusing on retrieving details for a single colour by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus the many sibling colour tools, nor does it mention when not to use it or alternative approaches. Users are left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_combinationColour Combination CheckARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| colours | Yes | 2-5 hex values to assess as a combination | |
| context | No | Usage context: UI | data viz | fashion | interior | print | branding | UI |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description goes beyond by specifying output components (harmony, clash warnings, etc.), adding value without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the verb 'Assess', followed by clear input and output specification. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a combination analysis tool with an output schema, the description adequately covers input, context, and high-level output. It provides enough information for an agent to understand what the tool does without being overly verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description reinforces the input count (2-5) and context options but does not add substantial new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool assesses 2-5 colors as a combination for a given context and lists specific return values (harmony type, clash warnings, contrast summary, deployment rules). This distinguishes it from sibling tools like colour_compare or colour_harmonies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for combination assessment per context but does not explicitly state when to use this tool versus alternatives or provide exclusions. It gives context but lacks direct guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_compareCompare Two Colours — Perceptual and CulturalARead-only
Deep perceptual and semantic comparison between any two hex values. Returns quantified differences in LRV, chroma, hue angle, warmth, and CIEDE2000 distance, plus cultural context on both — which is more authoritative, more saturated, more stable under different illuminants, and what each has historically signified. Use when choosing between two colours or explaining why one works better than another. Not a harmony tool — this is a decision and reasoning tool.
| Name | Required | Description | Default |
|---|---|---|---|
| hex_a | Yes | First colour hex e.g. '#003366' | |
| hex_b | Yes | Second colour hex e.g. '#1877F2' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds detailed behavioral context about what is returned (quantified differences, cultural context, comparisons). No contradictions; description enriches understanding of tool behavior beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient but the first sentence is dense with information; could be slightly more structured. However, key points are front-loaded and no words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (perceptual and cultural comparison), the description covers inputs, outputs, usage guidance, and behavioral caveats. An output schema exists, so return values are further documented. The description is fully complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both hex parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('deep perceptual and semantic comparison') and resource ('any two hex values'), and lists concrete outputs (LRV, chroma, hue angle, etc.). It clearly distinguishes from sibling tools by stating it is not a harmony tool but a decision and reasoning tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('choosing between two colours or explaining why one works better') and when not to ('Not a harmony tool'), providing clear context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_cultural_riskAssess Cultural Risk of a Colour or PaletteARead-only
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 market flags. Use before deploying a colour in a global brand, product, or campaign context. Based on documented cultural colour associations, not generalisation.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | No | Single hex value to assess e.g. '#FF9900' | |
| palette | No | Optional list of hex values to assess as a palette | |
| markets | No | Optional market focus e.g. ['China', 'Middle East', 'India'] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: true, and the description aligns with this. The description adds behavioral details: returns warnings, positive associations, context-dependent readings per colour family, and specific market flags. It discloses the tool's foundation on documented associations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the functionality and then provide usage guidance. Every sentence adds value with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers what the tool does, what it returns, and when to use it, especially given the presence of an output schema (not shown but noted). It mentions the basis of associations, which adds trust. Minor omission: no mention of limitations or example scenarios, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description adds context by explaining the overall purpose of the parameters (e.g., 'Score a hex value or palette' and 'Optional market focus'). However, it does not add significant new meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Score a hex value or palette for cultural sensitivity, symbolic weight, regional taboos, religious associations, and potential misinterpretation across global markets.' It specifies the verb 'Score' and the resource 'cultural risk of a colour or palette,' and differentiates from sibling tools like colour_harmonies or colour_forensics by focusing on cultural risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use before deploying a colour in a global brand, product, or campaign context.' It also notes the basis is documented associations, not generalization. However, it does not explicitly mention when not to use it or suggest alternatives, which would strengthen the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_dnaColour DNA FingerprintARead-only
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 match with delta-e and notes excerpt. No Claude call -- pure archive and physics data. Fast and cacheable. Use when an agent needs to reason about a colour semantically without reading long prose. Ideal for filtering, ranking, or comparing colours.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour to fingerprint e.g. '#4A2A50' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. Description adds that it uses 'pure archive and physics data,' is fast and cacheable, and has no Claude call, providing behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each serving a distinct purpose: core function, output list, backend nature, usage guidance. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not cover return values. It lists all key output fields adequately. Single parameter and clear outputs make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'hex' parameter. Description provides an example format ('#4A2A50'), adding value over the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a compact semantic fingerprint for any hex colour, listing specific output fields. It distinguishes from siblings like colour_story or colour_metrics by emphasizing semantic reasoning without long prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when an agent needs to reason about a colour semantically without reading long prose' and 'ideal for filtering, ranking, or comparing colours.' Also notes it's fast and cacheable, without a Claude call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_forensicsColour Specification Safety CheckARead-only
Assess whether a hex colour can be safely specified for a physical application. Returns: specification_safe verdict (yes / conditional / avoid), risks, required actions, light behaviour under three illuminants (north daylight, warm artificial, direct sun), substrate-specific notes, and a recommended alternative. Backed by CIEDE2000 archive matching and Claude material knowledge. Examples: ultramarine on lime plaster, lead white on exterior timber, verdigris on north-facing interior wall, red ochre on historic brick.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour to assess e.g. '#2A5498' | |
| substrate | Yes | Physical substrate e.g. 'lime plaster', 'gypsum board', 'brick', 'timber', 'canvas' | |
| finish | No | Paint finish e.g. 'matt', 'eggshell', 'gloss', 'limewash' | matt |
| orientation | No | Room or surface orientation e.g. 'north-facing', 'south exterior', 'east bedroom' | |
| use | No | Specific use context e.g. 'heritage repair', 'new build interior', 'conservation project' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses detailed behavioral traits: it returns a verdict, risks, required actions, light behaviour under three illuminants, substrate notes, and alternative recommendations. It also mentions the underlying methods (CIEDE2000 and Claude material knowledge). This adds significant value beyond the readOnlyHint annotation, which only indicates no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (~80 words), front-loaded with the core purpose, and efficiently lists outputs and examples. Every sentence adds value without redundancy, making it easy for the agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, including context like orientation and use), the description comprehensively covers what the tool does, why, and what it returns. The presence of an output schema (mentioned) further reduces the need for additional description about return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear descriptions for all 5 parameters. The description reinforces these with example substrate values but does not add new meaning or constraints beyond what is already in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool assesses hex colour safety for physical applications, with a specific verb ('Assess') and resource ('hex colour'). The title 'Colour Specification Safety Check' reinforces this. The list of outputs and examples (e.g., ultramarine on lime plaster) further clarify its purpose and distinguish it from sibling tools like colour_card or colour_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is used when assessing safety of a hex colour for physical application, and provides concrete examples of use cases. However, it does not explicitly state when not to use it or mention alternative tools, which would strengthen guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_harmoniesGet Colour HarmoniesARead-only
Return complementary, triadic, analogous, and split-complementary harmonies matched to named archive colours.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex value e.g. '#3A5C8C' | |
| harmony_types | No | Harmony types to include |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description's 'Return...harmonies' is consistent. The description adds context about using 'named archive colours', which is helpful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous words. Every part is necessary and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of output schema (handling return values), the description is sufficient. It covers what the tool returns and that it's based on archive colours. Could optionally mention that hex is required, but with one required param it's clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both params. Description adds value by listing the specific harmony types (complementary, triadic, etc.), clarifying what 'harmony_types' can include, which goes beyond the schema's generic 'Harmony types to include'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Return' and resource 'complementary, triadic, analogous, and split-complementary harmonies', clearly distinguishing it from sibling colour tools like colour_combination or colour_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for getting harmonies matched to archive colours but offers no explicit when-to-use or when-not-to-use guidance, nor alternatives among the many colour-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_hooksMake Any Colour MemorableARead-only
Generate a hook sentence, three-sentence story, tweet, image prompt, and follow-up questions for any hex colour. Backed by the nearest archive colour's cultural provenance. Tunable by audience (general public, designers, historians, children) and tone (dinner party, academic, social media, brand copy). Use to make archive colours shareable, to generate content, or to power a public-facing colour chat experience.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour e.g. '#154F20' | |
| audience | No | Target audience e.g. 'general public', 'interior designers', 'children' | general public |
| tone | No | Desired tone e.g. 'dinner party', 'academic', 'social media', 'brand copy' | dinner party |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context beyond the readOnlyHint annotation: it reveals that the output is backed by the nearest archive colour's cultural provenance, and that audience and tone parameters tune the output. This helps the agent understand the data source and customization capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero waste. The first sentence front-loads the primary action and outputs, the second adds provenance context, and the third lists use cases. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (generating multiple content types with tunable parameters) and the existence of an output schema, the description is complete. It covers inputs, outputs, use cases, and behavioral context without needing to repeat return format details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3, but the description adds significant meaning: it explains how audience and tone are tunable with examples, and lists the specific outputs (hook, story, tweet, etc.) that the agent can expect. This goes well beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates multiple types of content (hook sentence, story, tweet, image prompt, follow-up questions) for any hex colour. It uses specific verbs and distinguishes from sibling tools like colour_story or colour_forensics by focusing on shareable content generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists use cases: 'make archive colours shareable, to generate content, or to power a public-facing colour chat experience'. It provides clear context for when to use the tool, though it does not explicitly mention when not to use it or name alternative siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_match_paintMatch to Commercial Paint SystemARead-only
Find the nearest named colour in commercial paint systems including Farrow and Ball and Little Greene.
| Name | Required | Description | Default |
|---|---|---|---|
| hex_val | Yes | Hex value e.g. '#003153' | |
| brand | No | Optional brand filter: 'farrow' or 'little_greene' | |
| n | No | Number of matches (default 3) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description aligns with a read-only operation. It adds context about brands but does not detail error handling or result ordering, which is acceptable given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loading the key action and brands concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description sufficiently covers the tool's purpose. It could mention default n=3 or multiple matches, but overall is very good.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds marginal value beyond the schema by mentioning the brands, but does not elaborate on the n parameter or hex_val format beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'nearest named colour in commercial paint systems', and distinguishes from sibling tools like colour_namer by specifying paint brands such as Farrow and Ball and Little Greene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for matching hex colors to paint brand names but does not provide explicit when-to-use, when-not-to-use, or alternatives like colour_namer for generic color naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_metricsGet Colour Metrics and PropertiesARead-only
Return perceptual colour metrics: LRV, chroma, hue angle, warmth classification, and illuminant shifts under D65 (6500K), F11 (4000K), and Illuminant A (3000K).
| Name | Required | Description | Default |
|---|---|---|---|
| hex_val | Yes | Hex value e.g. '#8B4513' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond readOnlyHint annotation by specifying exact metrics and illuminant conditions. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, lists metrics efficiently. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Good for a single-parameter tool with output schema. Could mention error handling for invalid hex, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
100% schema coverage; description repeats hex format but adds no extra meaning or validation details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Return perceptual colour metrics'. Specific metrics listed (LRV, chroma, hue angle, etc.) distinguish it from sibling tools like colour_card or colour_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Siblings include many colour tools, but description does not help agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_mixMix Two Colours (Pigment Simulation)ARead-only
Simulate perceptually modelled subtractive mixing of two colours in CIE Lab space (not RGB screen blending). Returns the resulting mixed hex value and its nearest archive match with cultural context. Uses CIE Lab subtractive model for perceptual accuracy. Example: mixing Prussian Blue and Yellow Ochre gives a muted green — the tool identifies which archive colour that green most closely matches.
| Name | Required | Description | Default |
|---|---|---|---|
| hex_a | Yes | First colour hex e.g. '#003366' | |
| hex_b | Yes | Second colour hex e.g. '#C8A600' | |
| ratio | No | Mix ratio 0.0-1.0 where 0.5 is equal parts (default 0.5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, but the description adds that the tool uses 'perceptually modelled subtractive mixing in CIE Lab space', which is not inferable from annotations alone. This provides valuable behavioral context beyond the safety hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are directly informative, no fluff. Key information is front-loaded: purpose, model, output, and an illustrative example. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (handling return values) and the parameters are well-documented, the description covers the tool's purpose, model, example, and behavioral characteristics sufficiently for an agent to understand and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already describes all three parameters with 100% coverage, including hex_a, hex_b, and ratio. The description adds an example (Prussian Blue and Yellow Ochre) but does not provide additional semantic nuance beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it simulates subtractive mixing of two colors in CIE Lab space, returning a mixed hex value and the nearest archive match with cultural context. It distinguishes itself from 'RGB screen blending', making its purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly state when to use it versus sibling tools like colour_combination or colour_harmonies. An agent lacks guidance on choosing this tool over others in the same domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_namerGenerate Archive-Grounded Colour NamesARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour to name e.g. #8B4A2A | |
| style | No | geographical | poetic | material | literary | botanical | industrial | mixed | |
| market | No | Target market e.g. UK luxury | |
| product_type | No | Product type e.g. candle, paint, leather bag | |
| n_names | No | Number of name options (default 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation, adding context about archive verification and naming styles. No contradictions, but it doesn't delve into potential edge cases or side effects beyond the archive feature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences succinctly convey purpose, key features, and use case. No fluff, front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete schema, annotations, and output schema present, the description covers the core functionality and primary use case. It could mention output format or error handling but is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds minimal extra meaning beyond what the schema provides (e.g., 'Choose from naming styles' is already implied by the style parameter description). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (generate), resource (colour names), and scope (archive-verified, for any hex value). It distinguishes itself from siblings like 'ecommerce_namer' by emphasizing archive grounding and Shopify product naming use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates usage for product naming in Shopify with archive-backed names and gives style options. However, it does not explicitly exclude alternatives or state when not to use it, leaving room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_slugsColour Name Developer TokensARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex value e.g. #D4A829 | |
| archive | No | Optional archive filter |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description's job is lighter. It adds context by mentioning 'Archive-grounded name source with dE2000 distance', but does not elaborate on any behavioral traits like performance, required prerequisites, or what happens with invalid hex values. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the first sentence front-loading the core purpose ('Return every developer token format') and listing examples. The second sentence adds relevant context about the naming source. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters, full schema coverage, an output schema, and annotations, the description adequately explains what it returns and the source of names. It could be slightly improved by noting that the output schema provides the actual structure of returned token formats, but it is already quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description provides little additional meaning beyond the schema. The 'hex' parameter is already described as 'Hex value e.g. #D4A829' in the schema, and the description does not add syntax or format details. The 'archive' parameter is merely called 'Optional archive filter' without further clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'every developer token format for a hex value', listing specific formats (CSS variable, kebab-case, etc.). It uses a specific verb ('Return') and resource ('developer token formats'), and distinguishes itself from sibling colour tools by focusing on token naming conventions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating token formats from a hex value, but provides no explicit guidance on when to use this tool versus alternatives (e.g., other naming tools like colour_namer) or when not to use it. No exclusions or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_storyGet the Cultural Story of a ColourARead-only
Given a hex value, returns a rich narrative about that colour's cultural journey — where it has appeared in history, what it has meant to different civilisations, and what archive names it carries. Essential for image generation prompts, brand storytelling, and creative briefs. Example: '#DC143C' returns the story of crimson from Byzantine imperial courts through Tudor England to modern sport.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex value e.g. '#DC143C' | |
| n_archives | No | Number of archive sources to draw from (default 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description is consistent with a read-only operation. The description adds context about the narrative covering cultural journey, history, civilizations, and archive names, which goes beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus an example, front-loaded with the core purpose, and every sentence adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return value (rich narrative about cultural journey, history, civilizations, archive names) and usage contexts. Given that an output schema exists, the description is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (hex, n_archives) are fully described in the schema with descriptions. The description provides an example hex value and explains what the tool does, but does not add significant meaning beyond the schema for the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a rich narrative about a color's cultural journey given a hex value. It specifies the verb (returns), resource (cultural story of a colour), and distinguishes from siblings like colour_dna, colour_forensics, etc., which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the tool is essential for image generation prompts, brand storytelling, and creative briefs, indicating when to use it. However, it does not explicitly state when not to use it or contrast with similar siblings, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_strategyComplete Colour StrategyARead-only
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, must_work_on) + markets + medium. Output: verdict, strategy summary, archive anchor, commercial signal, category cliche risk level, market reading per market, material notes, usage rules (primary use, secondary use, avoid, pair_with), copy hooks (one_liner, social, brand_rationale), and alternatives. Examples: luxury fragrance brand UK/France/Japan, heritage interior specification, premium ecommerce packaging, SaaS brand identity.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour to evaluate e.g. '#4A2A50' | |
| brand_context | No | Brand context object | |
| constraints | No | Constraints object | |
| markets | No | Target markets e.g. ['UK', 'France', 'Japan'] | |
| medium | No | Primary medium e.g. 'packaging', 'interior', 'digital' | general |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; the description adds valuable context about the tool's scope and outputs, enhancing transparency beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with purpose, then listing inputs and outputs, and ending with examples. Every sentence is informative and necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers the tool's purpose, all inputs with examples, and expected outputs. Given the complexity and presence of an output schema, it is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning by grouping inputs (hex, brand_context, constraints, markets, medium) and providing examples, which goes beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is the 'flagship commercial endpoint' that combines multiple analyses (archive, verdict, brand fit, etc.), clearly distinguishing it from sibling tools like colour_verdict or colour_cultural_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (for a comprehensive strategy), but does not explicitly state when not to use it or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_timelineTrace a Colour Through HistoryARead-only
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 does. Example: deep blue traces from Egyptian lapis lazuli through Byzantine imperial authority to Prussian military uniforms to modern corporate trust signals.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex value to trace through history | |
| tolerance | No | dE2000 tolerance for matching (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description confirms a read operation by describing historical tracing. Adds context about chronological order and example but does not disclose any additional behavioral traits (e.g., data sources, limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each adding value: core action, elaboration, importance statement, and illustrative example. Front-loaded with key task, no filler. Within typical length guidelines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low parameter count, presence of annotations, and existence of output schema, the description covers purpose, value, and an example. Slight gap: no mention of the scope of historical data (timeline length, cultures covered), but overall adequate for a straightforward lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds an example of usage but does not significantly enhance parameter meaning beyond what the schema already provides (hex field description, tolerance default).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'traces' and resource 'colour's appearances across cultures and centuries in chronological order', clearly distinguishing from siblings like colour_story by emphasizing chronological order and historical depth. Includes a concrete example (deep blue) that reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description says 'Essential for understanding why a colour carries the weight it does', implying usage context but does not explicitly state when to use this versus alternatives like colour_story or colour_forensics. No when-not-to-use or exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_variantsGet Colour Variants and SiblingsARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Named archive colour e.g. Bourton Honey |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds behavioral details about what is returned (historical variants, lighter/darker, cultural siblings), which enriches the context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste: first sentence states the function, second provides a usage hint. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single required parameter and presence of an output schema, the description fully explains what the tool returns and when to use it. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter 'name' has a clear description in the schema. The tool description does not add additional parameter semantics, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'return' and clearly states the resource types: historical variants, lighter/darker versions, archive matches, and cultural siblings. It distinguishes its purpose from sibling colour tools, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The statement 'Essential for designers exploring around a colour' implies the use case but does not provide explicit guidance on when to use this tool over siblings or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colour_verdictShould I Use This Colour?ARead-only
Evaluate a hex colour for a specific use case, market, and medium. Returns a decisive verdict: use_with_confidence, use_with_caution, or avoid. Includes strengths, risks, avoid-if scenarios, and better alternatives where needed. Backed by CIEDE2000 archive matching and Claude cultural intelligence. Examples: 'luxury hotel brand in Japan', 'ecommerce CTA button UK', 'heritage interior lime plaster wall', 'premium packaging Middle East'.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour to evaluate e.g. '#31559B' | |
| use_case | Yes | What the colour will be used for e.g. 'luxury hotel brand', 'heritage interior wall' | |
| markets | No | Target markets e.g. ['UK', 'Japan', 'UAE'] | |
| medium | No | Application medium e.g. 'digital', 'interior', 'print', 'fashion', 'packaging' | general |
| audience | No | Optional: target audience e.g. 'high net worth travellers', 'young professionals' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the tool returns a verdict with strengths, risks, avoid-if scenarios, and alternatives, backed by archive matching and AI. This adds behavioral context beyond the readOnlyHint annotation, which is consistent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a list of examples, efficiently conveying the core function and context. The examples are helpful but could be integrated more seamlessly; still concise overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and moderate complexity (5 params, 2 required), the description covers all necessary aspects: purpose, inputs, outputs with verdict components, and backing technology. It is fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to compensate. The provided examples of use_case values add marginal value beyond schema descriptions, but the baseline is met.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates a hex color for a specific use case, market, and medium, returning a decisive verdict. It provides concrete examples, distinguishing it as a targeted evaluation tool among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through examples (e.g., luxury hotel brand) but does not explicitly state when to use this tool over siblings or when not to use it. More explicit guidance on alternatives would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_sessionFull Design Session — Concept to Complete PaletteARead-only
One-call compound tool. Submit a concept, medium, audience, and constraints — receive a complete design package: historically grounded palette, cultural narrative, commercial paint matches, WCAG accessibility check, illuminant behaviour, and a ready-made image generation prompt. Replaces chaining query_conceptual + palette_from_concept + colour_story + match_paint_system + accessibility_check + get_colour_metrics. Use when an AI agent or user needs a complete, deployable colour direction in a single call. Not for iterative refinement — use individual tools for that.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Cultural theme, mood, or brief e.g. 'Victorian mourning', 'Ottoman court', 'Scandinavian minimal' | |
| medium | No | Application context e.g. 'interior', 'brand identity', 'fashion', 'digital', 'print' | general |
| n_colours | No | Palette size (default 5, max 8) | |
| include_accessibility | No | Include WCAG contrast check (default true) | |
| include_paint_matches | No | Include commercial paint matches (default true) | |
| include_prompt | No | Include image generation prompt (default true) | |
| avoid | No | Archive names or colour terms to exclude e.g. ['neon', 'ScreenDigital'] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with reading/generating content. The description adds behavioral context by listing the components of the output package (palette, narrative, matches, etc.) and noting it's a one-call compound tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loaded with purpose, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (compound, 7 parameters, output schema exists), the description is complete: explains purpose, usage, and outputs. The presence of an output schema means return values are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so each parameter already has a description. The description adds high-level context but does not significantly expand on parameter meanings beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool as a compound tool that takes a concept, medium, audience, and constraints to produce a complete design package. It distinguishes itself from siblings by explicitly replacing chaining of multiple individual tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use when an AI agent or user needs a complete, deployable colour direction in a single call.' And when not: 'Not for iterative refinement — use individual tools for that.' Provides clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecommerce_copyEcommerce Product Copy from Archive ColourARead-only
Generate complete ecommerce product copy for any colour. Input: hex + product type + tone + channel. Output: colour name, product title, short description, long description, SEO title, meta description, alt text, Instagram caption, and cross-sell suggestion. Every piece of copy is grounded in archive provenance -- never generic AI colour copy. The colour name comes from the nearest archive match, not invented. Examples: velvet cushion in Murex Luxury, ceramic vase in Woad Vat Blue, linen throw in Standlake Silt. Directly useful for Shopify, WooCommerce, and editorial product pages.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour of the product e.g. '#4A2A50' | |
| product_type | Yes | Product type e.g. 'velvet cushion', 'ceramic vase', 'linen throw', 'candle' | |
| tone | No | Copy tone e.g. 'premium but not pompous', 'warm and accessible', 'heritage and serious' | premium but not pompous |
| channel | No | Sales channel e.g. 'shopify', 'etsy', 'instagram', 'editorial' | shopify |
| brand_name | No | Optional brand name to include in copy |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: it grounds copy in archive provenance, avoids generic AI output, and derives color names from historical matches. This aligns with the readOnlyHint annotation (no data modification).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: purpose statement, input/output list, unique value proposition, examples. Every sentence adds value, though minor trimming could improve conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (not shown but declared), the description covers the tool's purpose, inputs, outputs, and unique value. No missing elements for a read-only content generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. The description reiterates the input types but does not add significant new semantics beyond the context of archive grounding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('generate') and resource ('complete ecommerce product copy for any colour'), clearly distinguishing from sibling tools like ecommerce_namer. It lists inputs and outputs, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (generating ecommerce copy for any color with archive provenance). However, it does not explicitly state when not to use or suggest alternatives, though the sibling tool ecommerce_namer implies a boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecommerce_namerProduct Line Colour NamerARead-only
Generate archive-grounded colour names for up to 40 product SKUs. Input: list of hex values, product category, brand name, naming style. Output: for each hex -- archive name, source citation, one-line product description, dE2000 match distance, match quality, and confidence score. Every name is archive-sourced, not invented. Each carries a primary source citation that can be defended to buyers, press, and brand teams. Use for paint ranges, candle collections, fashion lines, homeware, cosmetics. Style options: geographical, poetic, material, literary, mixed.
| Name | Required | Description | Default |
|---|---|---|---|
| hexes | Yes | List of hex values e.g. ['#D4A829', '#1A5C6E'] | |
| product_category | No | e.g. 'paint', 'candle', 'fashion', 'homeware' | |
| brand_name | No | Brand name for context | |
| style | No | geographical | poetic | material | literary | mixed (default) | |
| max_dE | No | Max dE2000 distance to accept (default 25) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the readOnlyHint annotation: it states names are archive-sourced, not invented, and include source citations. It details output fields (archive name, citation, description, dE distance, match quality, confidence), fully disclosing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with two sentences and bullet points, front-loading the core purpose. The bullet list of style options is slightly redundant with the schema's 'style' description but still useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, a rich output schema, and the need for defensible naming, the description covers all aspects: inputs, outputs, use cases, and behavioral guarantees. It is fully complete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context: hexes array format, style enumeration (geographical, poetic, etc.), and default max_dE (25). This enriches the schema without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates archive-grounded colour names for up to 40 SKUs, specifying inputs and outputs. It distinguishes from sibling 'colour_namer' by emphasizing archive sourcing and defensible citations for ecommerce contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists use cases (paint, candle, fashion, homeware, cosmetics) and style options, providing clear context. However, it does not mention when not to use or compare to alternatives like 'colour_namer'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_paletteExtract and Name Colours from an ImageARead-only
Upload an image (base64 encoded) and extract its dominant colour palette, with each colour matched to its nearest named archive entry with full cultural provenance. Uses K-means++ extraction plus Bradford chromatic adaptation for accuracy. Returns up to 5 dominant colours, each with archive name, cultural story, nearest RAL standard, and WCAG accessibility data. Works for product photography, interior photos, artwork, brand assets, and mood boards. The image is never stored — processed in memory only.
| Name | Required | Description | Default |
|---|---|---|---|
| image_base64 | Yes | Base64 encoded image (JPEG, PNG, WebP) | |
| media_type | No | Image MIME type e.g. 'image/jpeg' | image/jpeg |
| n_colours | No | Number of dominant colours to extract (default 5, max 5) | |
| archive | No | Optional: restrict archive matching to a specific archive |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond the readOnlyHint annotation: 'image is never stored — processed in memory only' (privacy guarantee), technical details (K-means++, Bradford chromatic adaptation), and a structured list of output fields (archive name, cultural story, RAL standard, WCAG data). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of four sentences, efficiently front-loading the main action. Every sentence adds value (purpose, method, output, use cases, data handling). Slight improvement could be made with bullet points for readability, but current structure is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (context signal), the description appropriately summarizes output fields. It covers purpose, use cases, behavioral detail, and parameter limitations. Could be slightly more detailed about the matching process or edge cases, but overall complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds algorithm context but does not elaborate on individual parameter values, constraints, or format beyond what the schema already provides. The max n_colours=5 is stated in schema and reinforced in description, adding minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('upload', 'extract', 'match') and clearly identifies the resource ('image'). It distinguishes from sibling tools by mentioning unique features: named archive entries with cultural provenance, Bradford chromatic adaptation, WCAG data. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists concrete use cases ('product photography, interior photos, artwork, brand assets, and mood boards'), providing clear context. However, it does not explicitly state when not to use this tool or name alternative tools for different needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_personalPersonal Colour Analysis — Find Your ColoursARead-only
Upload a portrait photo and receive a full personal colour analysis. Determines your seasonal type (Spring, Summer, Autumn, or Winter), colour depth (light, medium, or deep), and undertone (warm, cool, or neutral). Returns a curated palette of archive colours that genuinely suit you — each with full historical provenance and cultural context — plus colours to avoid. Uses Claude Vision for skin, hair, and eye analysis, then matches to the archive by CIEDE2000 perceptual distance. The photo is never stored. Example: a Deep Winter might wear Ottoman Carbon Ink while a True Spring suits Kogi Mango.
| Name | Required | Description | Default |
|---|---|---|---|
| image_base64 | No | Base64 encoded portrait photo (JPEG or PNG). Face should be clearly visible in natural light. Either image_base64 or image_url required. | |
| image_url | No | URL of a portrait photo hosted online. Easier than base64 for MCP use. Either image_url or image_base64 required. | |
| media_type | No | Image MIME type e.g. 'image/jpeg' | image/jpeg |
| name | No | Optional: person's name for the report e.g. 'Sarah' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the photo is never stored, uses Claude Vision for analysis, and matches by CIEDE2000 perceptual distance. These details go beyond the readOnlyHint annotation, which already indicates no destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with an example, efficiently conveying purpose, process, and an illustrative case. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but known), the description adequately covers the input, process, and return elements (seasonal type, depth, undertone, palette). All parameters are addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters have schema descriptions (100% coverage). The description adds extra guidance: 'Face should be clearly visible in natural light' and explains base64 vs URL usage, adding meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: upload a portrait photo for personal colour analysis, determining seasonal type, colour depth, undertone, and providing a palette. It distinguishes from sibling tools like image_palette or colour_forensics by focusing on personal analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: when you have a portrait photo and want a full personal colour analysis. It provides an example (Deep Winter, True Spring) making context clear. While it doesn't list alternatives, the purpose is sufficiently specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_resonanceResonance IndexARead-only
Colour Memory's proprietary semantic metric. Score how tightly the material origin of a colour aligns with its social consequence. 1.00 = material and consequence are indistinguishable (blood as prognosis, ash as finality). 0.80 = institution mediates the colour (paint as deterrence, flag as authority). 0.50 = symbolic or associative only. Input: list of colour entries with name, hex, archive, source, notes. Output: resonance score, material origin, social function, alignment reason, confidence. Use for investigative reports, forensic briefs, museum content, editorial PDFs. This is the metric that separates Colour Memory from palette generators.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | List of colour entries to score for resonance | |
| score_basis | No | Scoring basis (default: material_origin_to_social_consequence) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description confirms this is a read-only computation. Beyond annotations, the description adds behavioral context by explaining the scoring logic and output structure, which helps the agent understand the tool's behavior without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the core purpose. Every sentence provides useful information: definition, thresholds, input format, output fields, and use cases. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description fully covers what the tool does, what input it expects (with field details), and what output it returns. It leaves no significant gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description reinforces the input structure by listing required fields (name, hex, archive, source, notes) and output fields, adding value beyond the schema without being redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: scoring alignment between material origin and social consequence of colors. It provides specific score thresholds (1.00, 0.80, 0.50) and distinguishes it from palette generators, making the purpose highly specific and differentiating it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists explicit use cases (investigative reports, forensic briefs, museum content, editorial PDFs) and notes it as a key differentiator for Colour Memory. However, it does not explicitly mention when not to use or alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interior_specifyInterior Colour Specification — Full Room BriefARead-only
Generate a complete interior colour specification from a concept or brief. Input a room concept, type, and style — receive a professionally structured colour scheme with 60/30/10 surface assignments, archive colour names with full cultural provenance, Farrow and Ball and Little Greene paint matches, three-illuminant light behaviour (D65 daylight, F11 atrium, Illuminant A incandescent), WCAG accessibility for digital use, and a written cultural rationale explaining why each colour belongs in this room. Examples: 'bold maximalist living room', 'calm Scandi bedroom', 'Victorian study', 'coastal kitchen', 'gallery hallway'. Use /interior-specification/pdf for a downloadable branded PDF version. This is the tool that replaces a colour consultation.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Room concept or brief e.g. 'bold maximalist living room' or 'calm Scandi bedroom' | |
| room_type | No | Room type e.g. 'living', 'bedroom', 'kitchen', 'study', 'bathroom', 'hallway', 'dining' | living |
| style | No | Style direction e.g. 'heritage', 'contemporary', 'maximalist', 'minimal', 'scandi', 'industrial', 'coastal' | heritage |
| orientation | No | Room orientation e.g. 'north', 'south', 'east', 'west' — affects light advice | |
| n_colours | No | Number of colours in scheme (default 5, max 7) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true, and the description does not contradict this. The description adds behavioral context by detailing the rich output (60/30/10, light behaviour, WCAG, etc.) and notes no destructive side effects. It appropriately supplements the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded, starting with the core purpose. It is comprehensive but slightly lengthy; each sentence serves a purpose, though some trimming is possible. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, output schema exists, rich output), the description covers the purpose, inputs, outputs, and even directs to the PDF sibling. It is complete for an agent to understand and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have descriptions in the schema (100% coverage), so the description adds limited new information about parameters themselves. It provides usage examples and context but does not significantly enhance schema parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a complete interior colour specification from a concept or brief, listing specific outputs (60/30/10 assignments, paint matches, light behaviour, etc.) and provides examples. It distinguishes from the PDF sibling tool and implies it is the comprehensive alternative to simpler palette tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use (input a room concept, type, style) and mentions the PDF sibling for branding. However, it does not explicitly state when not to use this tool or how it compares to other palette tools like palette_specify.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_capabilitiesAPI Capabilities InventoryARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. Description adds details beyond this: 'live inventory', 'deterministic', 'no LLM cost'. These behavioral traits are valuable and do not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the core purpose, followed by return structure and a key behavioral note (deterministic, no cost). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a meta tool with no parameters and an output schema (as indicated by context), the description provides sufficient information about input, output, and usage context. No gaps remain for an agent to safely and effectively use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100%. The description adds value by detailing what the output includes (tool count, endpoint list, MCP-exposed tools, usage notes), which is more than just stating 'no parameters required'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'live inventory of all active endpoints and MCP tools'. It distinguishes itself from sibling tools (like accessibility_check, colour_card, etc.) by being a metatool for discovery, not a domain-specific operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this first to discover what the API can do before making calls', providing clear guidance on when to invoke. Mentions 'Deterministic -- no LLM cost', implying it's safe and cheap. No exclusions or alternatives given, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_auditPalette Quality AuditARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Hex values to audit | |
| use_case | No | Use case context | brand identity |
| market | No | Target market | global |
| medium | No | digital | print | both | digital |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses that the tool is deterministic and has no LLM cost, which helps the agent understand performance and reliability. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loads the purpose, then lists criteria, output, and usage notes. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a quality audit tool with an output schema, the description adequately covers inputs (palette), criteria checked, and output structure. It could mention that only the palette parameter is required, but the schema already indicates that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions, so description adds little extra meaning. It does mention 'Hex values' for the palette parameter, which aligns with the schema. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a 'full palette quality audit' on multiple specific criteria (accessibility, cultural risk, tonal balance, colour diversity, archive naming strength) and returns a score, grade, and fix list. This differentiates it from sibling tools like palette_generate or palette_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'use before shipping any palette', providing a clear when-to-use context. Does not list exclusions or alternatives, but the sibling tools suggest other palette operations, and this tool is positioned as a final quality gate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_compareCompare Two PalettesARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette_a | Yes | First palette hex values | |
| palette_b | Yes | Second palette hex values | |
| use_case | No | Context for comparison e.g. luxury packaging | |
| markets | No | Target markets |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the types of outputs returned (timelessness scores, etc.), which adds behavioral context beyond the readOnlyHint annotation. It does not contradict the annotation and clearly indicates a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the tool's purpose and outputs. No superfluous information; key points are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description appropriately lists return components without redundant detail. It covers the main comparison dimensions, though it could briefly mention that the use_case parameter influences the comparison (implied but not explicit).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for all four parameters. The description adds context about the use_case parameter but does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a deep perceptual, cultural, and commercial comparison between two palettes, listing specific outputs like timelessness scores and winner verdict. This distinguishes it from sibling tools like colour_compare (single colors) or palette_audit (comprehensive audit).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use by mentioning 'for the stated use case' but does not explicitly guide when to use vs alternatives like palette_verdict or palette_audit. Context from sibling names suggests differentiation, but no direct usage guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_conceptGenerate Heritage Palette from Cultural ConceptARead-only
Generate a historically grounded colour palette from a cultural concept or theme. Returns 4-6 coordinated archive colours with hex values, proportions, and provenance. Examples: 'Victorian mourning', 'Ottoman court', 'Japanese wabi-sabi', 'Scandinavian winter', 'West African kente', 'Renaissance Florence'. Every colour returned is sourced from the archive with documented history.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Cultural theme or historical period e.g. 'Victorian mourning' or 'Ottoman court' | |
| n_colours | No | Number of colours to return (default 5, max 8) | |
| include_neutrals | No | Include neutral/background colours |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint. Description adds that colors are sourced from archive with documented history, which is useful. No mention of performance or limits, but sufficient for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then examples, then sourcing detail. No wasted words, highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists (implied by 'hex values, proportions, provenance') and parameter coverage, description is fairly complete. Lacks differentiation from `palette_heritage`, but minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with good descriptions. Description reinforces with concrete examples for `concept`, adding value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (Generate), resource (colour palette), and context (from cultural concept). Examples further clarify. Distinguishes from siblings like `palette_generate` by specifying historical grounding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Examples give clear usage context, but no explicit guidance on when to use this vs. `palette_heritage` or other palette tools. However, the concept-based nature is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_exportExport Palette to Design FormatsARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Hex values to export | |
| format | No | css | figma | ase_hex | tailwind | json | |
| names | No | Optional custom names | |
| prefix | No | Token prefix e.g. cm, brand (default: cm) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by stating that colors are automatically named from the archive and that the export embeds Colour Memory into workflows. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loading the core purpose and output formats, with no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and fully documented parameters, the description covers the export purpose, formats, and behavioral context (automatic naming, workflow embedding). It lacks prerequisites or explanation of 'Colour Memory' but is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description does not add significant detail beyond listing formats, so it meets the baseline but does not enhance understanding of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Export a palette to CSS custom properties, Figma design tokens, Tailwind config, ASE hex list, or JSON,' providing a specific verb and resource with multiple output formats. This distinguishes it from sibling tools like palette_audit or palette_generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to export a palette to a design format, listing supported formats. However, it does not explicitly state when not to use it or mention alternatives, missing a clear contrast with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_generateLock-and-Fill Palette from ArchiveARead-only
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, archive, primary source, colour notes — for every filled slot. Example: lock a client's existing wall colour and fill a 5-colour scheme from Oxfordshire.
| Name | Required | Description | Default |
|---|---|---|---|
| slots | Yes | List of palette slots. Each has index (0-7), optional hex, and locked flag. | |
| archive | No | Optional: restrict fills to one archive e.g. 'Oxfordshire', 'Shakespeare', 'Japan' | |
| size | No | Total palette size 2-8 (default 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds useful behavioral details: the interpolation algorithm (CIEDE2000), archive filtering, and the full citation output. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four clear sentences plus an example, no wasted words. It is front-loaded with the core purpose and uses plain language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description sufficiently covers the process, optional inputs, and output details. It does not mention slot index uniqueness, but that is inferable. Overall, it provides adequate contextual completeness for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context beyond the schema: the limit of 8 slots, the meaning of locking, the default palette size, and an illustrative example. This enhances understanding of how parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: locking some palette hex values and filling empty slots with nearest archive matches using CIEDE2000 interpolation. It distinguishes from siblings by specifying the 'lock-and-fill' mechanism and the archive-based generation, which is unique among palette_ tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an example use case but does not explicitly state when to use this tool versus alternatives like palette_strict or palette_concept. The context is implied rather than directive, missing explicit guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_gradientArchive Gradient — Lab-Interpolated Colour JourneyARead-only
Generate a perceptually smooth gradient between 2-5 archive anchor colours. Each interpolated stop snaps to the nearest real archive colour by CIEDE2000. Anchor stops are kept true to their source. Choose linear (physically accurate Lab interpolation) or chroma_preserved (LCh interpolation, short-arc hue, avoids desaturated midpoints). Returns stop array, CSS linear-gradient string, or SVG swatch bar. Use for design briefs, colour journey visualisations, and gradient systems.
| Name | Required | Description | Default |
|---|---|---|---|
| anchors | Yes | 2-5 hex values (#RRGGBB) or exact archive colour names | |
| steps | No | Total stops including anchors (default 7, max 20) | |
| path | No | linear: straight Lab lerp (may have neutral midpoint). chroma_preserved: LCh short-arc, saturation maintained. | chroma_preserved |
| snap_to_archive | No | Snap each stop to nearest archive colour (default true) | |
| archive | No | Restrict snapping to this archive name e.g. Victorian | |
| output_format | No | stops: array of colour objects. css: linear-gradient string. svg: swatch bar. | stops |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, consistent with a generation tool. Description elaborates on key behaviors: interpolation methods (linear vs chroma_preserved), snapping to nearest archive colour via CIEDE2000, anchor stops kept true, and output formats. No contradictions; adds significant behavioral detail beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. First sentence states purpose and scope, second details key parameters (interpolation, snapping, anchor behavior), third specifies output formats and use cases. Information density is high without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: anchor count, interpolation methods, snapping to archive, output formats. With output schema present (context signal), return structure is handled. Missing details like default values for steps and snap_to_archive are covered in schema. Adequate for a tool with moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions. Description adds meaningful context: explains the difference between 'linear' (straight Lab lerp) and 'chroma_preserved' (LCh short-arc, avoids desaturated midpoints), details that anchor snaps are true to source, and explains output formats. This enriches the schema without repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Generate a perceptually smooth gradient between 2-5 archive anchor colours', specifying the action (generate), resource (gradient), and constraints (2-5 anchor colours). It distinctively focuses on color science (Lab interpolation, CIEDE2000) which differentiates it from sibling tools like palette_generate or colour_mix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: 'Use for design briefs, colour journey visualisations, and gradient systems.' No explicit when-not-to-use or alternatives, but the context of siblings (e.g., palette_generate, colour_mix, palette_specify) makes the gradient-specific purpose clear. Could be improved by noting when to avoid (e.g., for single colour generation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_heritageHeritage Palette EvolutionARead-only
Given a legacy palette, generate an archive-grounded premium support system. For each existing colour: identifies its historical archive anchor, names it, and scores its provenance confidence. Detects palette gaps and fills them from the archive. Returns full palette with roles, confidence scores, CSS tokens, and production notes. Every addition has a named historical origin.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Existing hex values | |
| brand_name | No | Brand name for CSS tokens | |
| context | No | Brand context | |
| market | No | Target market | |
| n_additions | No | Archive colours to add (default 3) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which aligns with the description of generating a non-mutating report. The description adds behavioral context beyond annotations by detailing the process (identifying, scoring, filling gaps) and listing output components, which helps the agent understand what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at four sentences, front-loaded with the main action, and avoids fluff. It could be more structured (e.g., bullet points), but efficiency is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage and presence of an output schema, the description adequately covers the tool's functionality. It mentions return values (palette, confidence scores, CSS tokens, production notes) but omits edge cases or error scenarios. Still, it is sufficient for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning for parameters, mostly echoing schema descriptions (e.g., 'legacy palette' vs 'Existing hex values'). No parameter-specific enrichment beyond the overall process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: given a legacy palette, it generates an archive-grounded system. It details specific actions (identify, name, score, detect gaps, fill) and distinguishes from siblings like palette_generate or palette_concept by focusing on historical grounding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a legacy palette exists and archive grounding is desired, but it lacks explicit when-not-to-use or alternative tool mentions. The precondition (legacy palette) is stated, but no exclusions or sibling comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_iterateIterate and Refine a PaletteA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Current hex palette to refine | |
| feedback | Yes | Natural language refinement e.g. more melancholic | |
| direction | No | Alias for feedback — natural language direction e.g. more dangerous, more historical, warmer | |
| use_case | No | Use case context e.g. luxury homewares | |
| markets | No | Target markets | |
| n_results | No | Number of variants to return (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description specifies the return includes 'archive grounding and change rationale,' adding behavioral detail beyond the readOnlyHint annotation. However, it does not disclose whether the original palette is modified or preserved, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with immediate verb 'Refine.' No wasted words, front-loaded with purpose and input/output structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param tool with output schema, the description covers core functionality and output. It omits potential error conditions and the meaning of 'archive grounding,' but overall it is adequate for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters, so the description adds limited extra meaning. Examples like 'more melancholic' are illustrative but not necessary beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool refines an existing palette using natural language feedback, distinguishing it from palette_generate (creation) and palette_audit (evaluation). The verb 'refine' and resource 'palette' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying an existing palette but does not explicitly name alternatives or state when not to use it. The context of sibling tools provides differentiation, but explicit guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_light_darkPalette Light and Dark Mode MapsARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | Array of hex values | |
| use_case | No | Use case context e.g. UI, dashboard, report | UI |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. The description adds behavioral context beyond annotations, detailing the analysis steps (LRV, role assignment, contrast, missing neutrals). This is sufficient for a read-only tool, though edge cases like palette size are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the main action, and contains no extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and only two simple parameters, the description covers the main outputs (role maps) and checks (contrast, missing neutrals). It is largely complete, though return format details are left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description explains the tool's purpose but does not add parameter-specific details beyond what the schema already provides. The 'use_case' parameter is contextualized but not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates light-mode and dark-mode role maps from a palette, specifying analyses like LRV, role assignment, contrast check, and missing neutrals. It distinguishes itself from sibling palette tools like palette_audit or palette_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for generating role maps but does not explicitly state when to use this tool versus alternatives, nor provides exclusion criteria. Sibling tools are numerous, so some guidance would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_pdfGenerate Palette PDFARead-only
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 array from query_hex or palette_from_concept directly. Use this to create client deliverables, specification sheets, and print assets.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | Array of colour entries from query_hex or palette_concept. Each needs name, hex, archive_source, colour_notes, primary_source, zone. | |
| query | No | Optional title for the palette e.g. Ottoman imperial luxury | |
| source | No | Optional source label e.g. brand, conceptual | archive |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation indicates a non-mutating operation, and the description confirms by stating it 'Returns a downloadable PDF' without mentioning side effects. The description adds behavioral context beyond annotations, such as the required entry fields and the PDF contents, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four concise sentences. The first sentence states the core purpose, the second lists PDF contents, the third gives usage guidance, and the fourth states use cases. Every sentence adds value, and the structure is front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, output, and parameter usage. Given the presence of an output schema, it does not need to explain return values. It also lists the PDF contents. However, it omits details about error handling or prerequisites (e.g., whether entries must be from the archive), but overall it is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes parameters well. The description adds value by specifying that entries come from query_hex or palette_from_concept, giving examples for the query parameter (e.g., 'Ottoman imperial luxury'), and explaining the source default and variants ('brand, conceptual'), enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a premium branded PDF specification sheet from palette entries. It specifies the action (generate), resource (palette of archive entries), and output (downloadable PDF with detailed colour data), distinguishing it from sibling palette tools that likely produce different formats or outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Pass the entries array from query_hex or palette_from_concept directly' and 'Use this to create client deliverables, specification sheets, and print assets.' It implies when to use this tool (when a PDF is needed) but does not explicitly state when not to use it or mention alternatives, leaving a slight gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_specifySpecify Colour Palette for a RoomARead-only
Generate a complete interior specification from 2-8 hex values. Returns surface assignments, 60-30-10 proportions, lighting behaviour, and archive colour names.
| Name | Required | Description | Default |
|---|---|---|---|
| colours | Yes | List of 2-8 hex values | |
| room_type | No | e.g. 'living', 'bedroom', 'kitchen', 'study' | |
| style | No | e.g. 'heritage', 'contemporary', 'minimal' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it is a safe read operation. The description adds value by detailing the behavioral traits (returns surface assignments, proportions, lighting, color names) and confirms no destructive effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a tight two-sentence structure with no filler. It front-loads the core action and results, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key return components (surface assignments, proportions, lighting, color names), and with an output schema present, the agent can infer full structure. It is complete for selection purposes, though it could mention error handling for invalid hex values or unsupported room types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description reinforces the hex value count range but adds no new semantic detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Generate' and resource 'complete interior specification', clearly distinguishing it from sibling palette tools that might only generate hex palettes. It lists concrete outputs (surface assignments, proportions, lighting, color names), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have 2-8 hex values and need a full interior specification, but it does not explicitly state when not to use it or mention alternatives like palette_generate or interior_specify. No exclusions or comparative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_strictStrict Archive-Filtered Palette from ConceptARead-only
Like palette_concept but with archive filtering and relevance controls. Use allowed_archives to restrict results to specific cultural traditions e.g. ['Japan'] for Japanese only. Use min_relevance to filter weak concept matches. Fixes cross-archive drift when cultural specificity matters.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Cultural concept e.g. Japanese wabi-sabi | |
| allowed_archives | No | Archive names to restrict results e.g. ['Japan', 'China'] | |
| n_colours | No | Number of colours (default 5) | |
| min_relevance | No | Minimum relevance score 0-1 (default 0.3) | |
| include_neutrals | No | Include neutral tones (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, and description does not contradict that. Description adds the behavioral context of solving cross-archive drift, but does not disclose other traits like auth needs or rate limits. Annotations already cover safety, so this is adequate but not outstanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the key comparison. Every sentence provides useful information: differentiation, usage, and rationale. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema (not shown but known from context), description need not explain return values. It covers purpose, parameters, and usage context sufficiently for a 5-parameter tool with 1 required. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by explaining the purpose of allowed_archives ('restrict to specific cultural traditions') and min_relevance ('filter weak concept matches'), with examples. This goes beyond the schema's brief descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with 'Like palette_concept but with archive filtering and relevance controls', clearly distinguishing it from sibling. It specifies verb 'generate' or 'create' implied, and resource 'palette' with strict filtering. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when cultural specificity matters' and 'Fixes cross-archive drift'. Gives examples for allowed_archives and min_relevance. Does not explicitly state when not to use, but context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_translateTranslate Any Palette into a Named ArchiveARead-only
Map any list of hex values into a target archive using CIEDE2000 nearest-neighbour matching. Each input hex is matched to the closest named colour in the chosen archive, with a delta-e relevance band (exact / close / approximate / loose) and full provenance. Use to translate a client's paint colours into Shakespeare language, map a brand palette into historical Japanese pigments, or find the nearest Oxfordshire equivalents to a French scheme.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | List of hex values to translate e.g. ['#F5F0E8', '#8B6B3D'] | |
| target_archive | Yes | Archive to translate into e.g. 'Shakespeare', 'Japan', 'Oxfordshire' | |
| max_delta_e | No | Max acceptable CIEDE2000 distance — above this is flagged out-of-threshold (default 40) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the algorithm (CIEDE2000 nearest-neighbour) and relevance bands (exact/close/approximate/loose), adding behavioral context beyond the readOnlyHint annotation. It also mentions 'full provenance' and the mapping process, giving the agent a clear picture of the tool's behavior without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short paragraphs that front-load the core action ('Map any list of hex values...') and immediately provide illustrative examples. Every sentence serves a purpose, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. It covers the algorithm, use cases, and behavioral traits. However, it could briefly mention what 'full provenance' includes, but overall it is sufficiently complete for a translation tool with defined outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions, achieving 100% coverage. The description adds some context (e.g., delta-e relevance bands) but does not significantly enhance understanding beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: mapping hex values to named archives using CIEDE2000 nearest-neighbour matching. It provides specific examples that distinguish it from sibling palette tools, such as palette_audit or palette_compare, by focusing on translation into named archives like 'Shakespeare' or 'Japan'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases (e.g., translating client paint colours into Shakespeare language) that implicitly guide when to use this tool. However, it lacks explicit guidance on when not to use it or how it differs from siblings like palette_compare, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palette_verdictIs This Palette Working?ARead-only
Evaluate a palette of 2-8 hex values for a use case, market, and medium. Returns a verdict (strong / strong_with_adjustment / weak / avoid), a score 0-100, the role of each colour, the single biggest weakness, and a concrete suggestion for what to add to fix it. Each colour is matched to the nearest archive entry for cultural grounding. Examples: 'premium cushion collection UK ecommerce', 'hotel lobby interior', 'SaaS brand identity global digital'.
| Name | Required | Description | Default |
|---|---|---|---|
| palette | Yes | List of 2-8 hex values e.g. ['#31559B', '#E8D898', '#4A2A50'] | |
| use_case | Yes | What the palette will be used for e.g. 'luxury cushion collection', 'brand identity' | |
| market | No | Optional: target market e.g. 'UK', 'Japan', 'global' | |
| medium | No | Application medium e.g. 'interior', 'digital', 'fashion', 'print' | general |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully describes the output: verdict, score, colour roles, weakness, suggestion, and cultural grounding via archive matching. Annotations declare readOnlyHint=true, and the description aligns with a read operation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus examples, front-loaded with the main purpose. Every sentence adds meaningful detail without verbosity. Slightly dense but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input constraints (2-8 colors, required use_case), output structure (verdict, score, roles, weakness, suggestion), and usage context (examples). With an output schema present, the description is thorough and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is described. The description adds value by specifying palette length (2-8 hex values) and including representative examples for `use_case`, `market`, and `medium`, improving semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates a palette of hex values for a use case, market, and medium, returning a verdict, score, role, weakness, and suggestion. Examples like 'premium cushion collection UK ecommerce' differentiate it from sibling tools like `palette_audit` or `colour_verdict`, though not explicitly contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete examples of when to use (e.g., 'SaaS brand identity global digital') but does not state when not to use or mention alternatives. Usage is implied through examples, but guidance is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_conceptualSearch Colours by Concept or CultureARead-only
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'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The colour concept or cultural question to search for | |
| n_results | No | Number of results (default 5) | |
| archive | No | Optional: restrict to a named archive e.g. 'Japan', 'Pigment', 'OttomanEmpire' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint: true, so the read-only nature is known. The description adds the return type (named archive colours with provenance) but does not disclose rate limits, authentication needs, or other behavioral traits. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no waste. It front-loads the purpose and provides concrete examples, making it efficient for the agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is complete. It explains what the tool returns (named archive colours with provenance and cultural context) and provides example queries. The presence of an output schema further reduces the burden on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds context for the 'query' parameter (abstract queries) but adds minimal detail for 'n_results' and 'archive' beyond what the schema provides. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to search for colours by cultural or conceptual queries. Examples like 'grief', 'Ottoman luxury' differentiate it from siblings like query_hex or colour_forensics. The verb 'Ask' and resource 'colours' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context with abstract query examples, indicating when to use this tool over more technical alternatives. It does not explicitly state when not to use it, but the examples imply a semantic search scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_hexFind Named Colours by Hex CodeARead-only
Find the closest named archive colours to a hex value using CIEDE2000 perceptual distance.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex value with or without # e.g. '#8B4513' | |
| n_results | No | Number of results (default 5) | |
| archive | No | Optional: restrict to a named archive |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds the key behavioral detail of using CIEDE2000 perceptual distance to find closest matches. It does not contradict annotations and provides enough context for understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, directly conveying the core functionality. It is optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (3 parameters, no nested objects) and presence of an output schema, the description adequately covers the tool's purpose. Minor improvements could include error handling or edge cases, but it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already described. The description adds no additional meaning beyond the schema, but it does reinforce that the hex parameter is a color value. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'closest named archive colours to a hex value', and specifies the method 'CIEDE2000 perceptual distance'. This is specific and distinguishes it from sibling tools like colour_namer or colour_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., colour_namer, colour_compare). While the name and description imply hex-based lookup, no usage context or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_briefForensic BriefARead-only
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 structure, pull quote, closing line, and image prompt via Claude. This replaces chaining coverage_gap + archive_report_brief + anachronism_guard + resonance_index + evidence_gap separately. Input: title, audience, themes, archives, period, tone. Output: complete deliverable package ready for PDF or editorial use. Tone options: forensic (default), editorial, clinical, narrative.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Brief title e.g. 'The Colours of Pleasure' | |
| audience | No | Target audience e.g. 'serious collector' | |
| themes | Yes | Research themes | |
| archives | No | Archives to draw from | |
| avoid | No | Themes to suppress | |
| n_colours | No | Number of colour cards (default 8) | |
| target_period | No | Historical period e.g. 'Georgian England 1714-1830' | |
| period_start | No | Start year e.g. 1714 | |
| period_end | No | End year e.g. 1830 | |
| strict_sources | No | Only include entries with named primary sources | |
| confidence_threshold | No | Min confidence 0-1 (default 0.6) | |
| tone | No | forensic | editorial | clinical | narrative |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals safety. The description adds transparency by detailing the internal steps (e.g., 'Runs coverage gap analysis, pulls best archive colours, checks for anachronisms') and mentioning it uses Claude. No behavioral contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key purpose ('The money endpoint') and is well-structured. It lists all components efficiently without unnecessary words. Though slightly long, each sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, many sub-steps), the description thoroughly explains what it does, its output ('complete deliverable package ready for PDF or editorial use'), and tone options. The presence of an output schema and high parameter coverage complement this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description partially lists input parameters ('title, audience, themes, archives, period, tone') but adds no new meaning beyond the schema. It does not compensate for missing parameters in the list, but schema covers all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'One call returns a complete forensic colour brief' and lists specific analyses it performs. It distinguishes itself from sibling tools by stating it replaces chaining multiple tools like coverage_gap and archive_report_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly says 'This replaces chaining coverage_gap + archive_report_brief + anachronism_guard + resonance_index + evidence_gap separately,' providing explicit context for when to use it. It does not explicitly state when not to use it, but the sibling list and this replacement hint are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
style_matchStyle Match — Does This Go With That?ARead-only
The colour question every stylist gets asked: does this bag go with this outfit? Submit your outfit items as hex values with labels (dress, bag, shoes, coat, belt, scarf, etc.) and receive a verdict on what works, what clashes, what is missing, and what to add. Every recommendation is backed by archive colour names and historical context — not generic colour theory, but documented cultural combinations. Also suggests one missing archive colour that would complete the look. Examples: 'I have a navy dress (#1C3A6E) and a tan bag (#C8A87A) — what shoes?' or 'Does this burgundy coat work with olive trousers?'
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | List of outfit items with label and hex colour | |
| occasion | No | Optional: occasion context e.g. 'daytime', 'evening', 'office', 'casual', 'wedding guest' | general |
| ask | No | Optional: specific question e.g. 'what bag colour works?' or 'do the shoes work?' |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns with this by describing a non-destructive analysis. It adds value by detailing the output: verdict, recommendations, archive color names, and historical context, which goes beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: begins with a relatable question, explains input/output, and provides concrete examples. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema (not shown but indicated), the description fully covers the tool's purpose, input requirements, output nature, and usage examples. It is complete for an agent to understand and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions. The description reinforces the input format with examples but doesn't add new semantic information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: evaluating color compatibility of outfit items. It uses specific verbs ('submit', 'receive a verdict') and distinguishes itself from sibling tools by focusing on outfit coordination with historical color context, not generic color analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases and examples ('I have a navy dress... what shoes?'), effectively guiding when to use the tool. It doesn't explicitly state when not to use it or list alternatives, but the context is strong enough for an AI agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ui_statesUI State Palette GeneratorARead-only
Generate a complete WCAG-compliant UI state palette from a brand hex. Returns colours for: brand, hover, active, disabled, focus ring, success, warning, error, info, surface subtle, surface strong. All states computed for contrast against your background colour. Returns hex, contrast ratio, WCAG grade, and usage note for each state. Includes CSS custom properties ready to paste. Supports light and dark mode. Use before building any UI component system.
| Name | Required | Description | Default |
|---|---|---|---|
| brand_hex | Yes | Brand colour hex e.g. '#D4A829' | |
| background_hex | No | Background hex (default #FFFFFF) | |
| dark_mode | No | Generate for dark mode (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| result | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the readOnlyHint annotation: it specifies that colors are computed for contrast against the background, returns hex, contrast ratio, WCAG grade, and usage notes, and supports light and dark modes. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 5 sentences, front-loaded with the main purpose. Every sentence adds value (list of outputs, contrast, WCAG, CSS, modes, usage guidance). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, output schema exists), the description fully covers what the tool does, returns, and when to use it. It mentions output details and parameter defaults, making it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minor context (e.g., 'contrast against your background colour' hints at background_hex), but does not significantly enhance understanding of parameters beyond the existing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and states the resource ('complete WCAG-compliant UI state palette from a brand hex'). It lists all output colors and mentions WCAG compliance, contrast, and CSS custom properties. It distinguishes from siblings by positioning itself as a comprehensive foundation for UI component systems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use before building any UI component system,' providing clear usage context. It does not explicitly mention when not to use or list alternatives, but the context of siblings (e.g., palette_generate, palette_light_dark) implies other tools exist for different palette tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
66 tool updates
v0.1.0- First observed
accessibility_check - First observed
accessibility_font - First observed
accessibility_matrix - First observed
accessibility_rules - First observed
accessibility_simulate - First observed
agent_brief - First observed
agent_verify - First observed
archive_audit - First observed
archive_cliche - First observed
archive_coverage_gap - First observed
archive_cultural_anachronism - First observed
archive_evidence_gap - First observed
archive_provenance - First observed
archive_report_brief - First observed
archive_search - First observed
archive_status - First observed
brand_asset_pack - First observed
brand_audit - First observed
brand_collision - First observed
brand_report - First observed
brand_system - First observed
colour_card - First observed
colour_combination - First observed
colour_compare - First observed
colour_cultural_risk - First observed
colour_dna - First observed
colour_forensics - First observed
colour_harmonies - First observed
colour_hooks - First observed
colour_match_paint - First observed
colour_metrics - First observed
colour_mix - First observed
colour_namer - First observed
colour_slugs - First observed
colour_story - First observed
colour_strategy - First observed
colour_timeline - First observed
colour_variants - First observed
colour_verdict - First observed
design_session - First observed
ecommerce_copy - First observed
ecommerce_namer - First observed
image_palette - First observed
image_personal - First observed
index_resonance - First observed
interior_specify - First observed
meta_capabilities - First observed
palette_audit - First observed
palette_compare - First observed
palette_concept - First observed
palette_export - First observed
palette_generate - First observed
palette_gradient - First observed
palette_heritage - First observed
palette_iterate - First observed
palette_light_dark - First observed
palette_pdf - First observed
palette_specify - First observed
palette_strict - First observed
palette_translate - First observed
palette_verdict - First observed
query_conceptual - First observed
query_hex - First observed
session_brief - First observed
style_match - First observed
ui_states
TDQS
Most tools have distinct purposes with detailed descriptions, but the sheer number (66) means some conceptual overlap exists (e.g., multiple colour evaluation tools like colour_strategy, colour_verdict, colour_forensics). An agent would need to read carefully to avoid misselection.
Naming follows a domain-prefix pattern (e.g., colour_, palette_, archive_), but conventions vary: some use verbs (accessibility_check), others nouns (colour_card), and there are different styles like query_conceptual (verb+adjective) and ui_states (prefix+plural noun). Overall, the system is readable but not strictly uniform.
66 tools is high but justifiable given the extensive scope (colour query, palette generation, accessibility, brand, interior, ecommerce, archive management). It borders on overwhelming, but each tool addresses a specific need within the domain.
The tool set covers an unusually broad range of colour-related tasks: querying, mixing, comparison, naming, accessibility, cultural risk, brand audits, interior specification, image analysis, archive management, and more. No obvious gaps are apparent for the stated purpose.
Maintenance
Related MCP Connectors
AI-agent design tools: fonts, font recognition, palettes, color naming, contrast, code, SVG, CSS.
Cultural color intelligence. Every colour anchored to a person, a year, and a consequence.
52 paid x402 API endpoints for AI agents — crypto, data, DeFi, market intelligence.
Curated knowledge API for AI agents - skill packs, semantic search, validated patterns.
Related MCP Servers
- FlicenseAqualityDmaintenanceGenerates harmonious color schemes for design projects using The Color API, offering eight different palette generation methods including monochrome, analogic, complement, triad, and quad schemes.88-
- AlicenseBqualityDmaintenanceEnables comprehensive color manipulation, conversion between 22+ formats (HEX, RGB, HSL, CMYK, LAB, etc.), palette generation, gradient creation, and accessibility compliance checking. Supports framework-specific outputs for CSS, Swift, Android, Flutter, and Tailwind with high-precision conversions and visualization capabilities.25MIT
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive color conversion, manipulation, analysis, and WCAG accessibility tools supporting multiple formats (hex, rgb, hsl, oklch, oklab) for design systems and web development.312MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive toolkit for color conversion, manipulation, and accessibility analysis supporting formats like OkLCH and WCAG compliance. It enables AI agents to manage design systems by generating harmonious palettes, transforming color spaces, and performing contrast checks.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DigbyO/colour-memory-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server