Skip to main content
Glama

Complete Brand Colour Audit

brand_audit
Read-only

Fast, fully deterministic brand colour audit. Accepts a palette array plus market, use_case, medium and brand_category. COMPUTED SYNCHRONOUSLY, no model call of any kind: colour roles with archive names, the full WCAG accessibility matrix, cultural risk per colour, CSS variables, Tailwind config, design tokens and production notes. NOT COMPUTED HERE: palette interpretation -- the verdict, its score and the written narrative copy. Those require an LLM call and used to be made inside this tool without saying so, which put a normal five-colour audit at 43-45s. The palette_verdict and verdict_copy keys are still returned, carrying interpretation_status='not_computed' plus a ready-to-send palette_verdict.continuation.arguments -- forward those verbatim to the palette_verdict tool to get the interpretation. Replaces chaining accessibility_matrix + cultural_risk_assessment; palette_verdict is now an explicit, optional second call rather than a hidden one. FOR A LIVE-SITE BRAND AUDIT ('audit this website'): inspect representative rendered pages FIRST (homepage, about, one deep page) and pass what you observed as site_evidence -- a CSS scrape alone is not an audit of what a visitor sees, and the response's audit_evidence.audit_status will say PARTIAL until real multi-page rendered evidence is supplied. The result already carries the rendered palette and its PNG, PDF, ASE, JSON and CSS downloads -- show them to the customer. Never present the archive anchors a colour was derived from as the colours you are recommending. If you go on to choose a final palette OF YOUR OWN from this evidence, call palette_finalize once with those exact colours so the customer can see and download what you actually recommended.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketNoTarget market e.g. 'UK luxury', 'global', 'Japan'global
mediumNodigital | print | bothdigital
paletteYesArray of hex values e.g. ['#D4A829', '#1A5C6E', '#0F2D6B', '#0A0A0B']
use_caseNoUse case e.g. 'brand identity', 'packaging', 'app UI'brand identity
site_evidenceNoEvidence for a LIVE-SITE audit, supplied by the host (Colour Memory does not browse). {pages: [{url, role: 'homepage'|'about'|'work'|'services'|'product'|..., screenshot: bool, tokens: bool, observations: [{hex, evidence_type: 'canonical_token'|'rendered_observation'|'source_verified_external'|'model_interpretation', prominence?: 'dominant'|'primary'|...}]}], competitors: [{name, colours: [hex], colour_provenance: 'verified_brand_guideline'|'verified_current_site'|'verified_identity_source'|'estimated'|'unverified', source?}]}. A FULL live-site audit needs a homepage, an about/company page and one meaningful deep page (work/approach/services/product/case study), with rendered evidence from at least two of them. Supply less and the response's audit_evidence.audit_status comes back PARTIAL or INSUFFICIENT with the specific gaps named -- it will not present as a completed multi-page audit. A competitor colour that is not verified is kept as a QUALITATIVE comparison and never enters a CIEDE2000 or distinctiveness number; do not invent a hex to fill the gap.
brand_categoryNoOptional brand category e.g. 'developer tool', 'food', 'fashion'

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the single readOnlyHint=true annotation. It discloses that the tool is synchronous and deterministic with no model call, reveals that interpretation was historically performed inside the tool without disclosure and the resulting 43-45s latency, and explains the continuation mechanism (returns palette_verdict.continuation.arguments to forward verbatim). It also discloses the PARTIAL/INSUFFICIENT audit_status behavior when site_evidence is inadequate and that the tool itself does not browse. This is exactly the kind of historical and operational transparency an agent needs. No contradiction with readOnlyHint=true — a deterministic synchronous computation is consistent with read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

This description is long, but every sentence carries operational information an agent cannot infer from the schema or annotations. The structure is well-designed: core purpose front-loaded, then COMPUTED HERE, then NOT COMPUTED HERE, then the live-site workflow, then downstream routing. Capitalized section markers ('COMPUTED SYNCHRONOUSLY', 'NOT COMPUTED HERE', 'FOR A LIVE-SITE BRAND AUDIT') make the dense content scannable. It loses one point only because some sentences could be tightened without losing meaning; at this complexity level the length is otherwise justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, nested objects, and an output schema, this description is remarkably complete. It covers the computation model, what is deliberately excluded and why, the continuation handoff to palette_verdict, the live-site evidence requirements with named status codes, the downloadable deliverables (PNG, PDF, ASE, JSON, CSS), and the anti-pattern to avoid (presenting archive anchors as recommendations). Since an output schema exists, return values need not be fully re-explained, but the description still names the key output keys. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real value beyond the schema. For site_evidence it explains the workflow prerequisite (inspect rendered pages first), the minimum evidence for a FULL audit (homepage, about, one deep page, rendered evidence from at least two), and the consequence of shortfalls (PARTIAL/INSUFFICIENT status). It also adds behavioral guidance about the palette parameter ('Never present the archive anchors a colour was derived from as the colours you are recommending'). It does not add much for market, medium, use_case, or brand_category, which the schema already covers adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource ('colour brand audit') and immediately narrows scope with 'fully deterministic' and 'no model call of any kind.' The description then enumerates precisely what is computed (WCAG matrix, cultural risk, CSS variables, Tailwind config, design tokens) and what is not (palette interpretation), which sharply distinguishes it from siblings like palette_verdict, accessibility_matrix, and cultural_risk_assessment. Even the title 'Complete Brand Colour Audit' is descriptive rather than tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

This is exemplary usage guidance. It explicitly says the tool 'Replaces chaining accessibility_matrix + cultural_risk_assessment' and that palette_verdict is 'an explicit, optional second call rather than a hidden one,' naming both the alternatives and the relationship. It gives conditional instructions for the live-site case ('inspect representative rendered pages FIRST... a CSS scrape alone is not an audit'), and it routes downstream to palette_finalize with concrete conditions. An agent knows exactly when to call this tool, what to do beforehand, and what to call next.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.7/5.0
Disambiguation2/5

Multiple tool clusters have unclear boundaries: colour_passport, colour_dna, colour_metrics, and colour_cultural_risk overlap heavily; palette_extract, extract_image_colours, image_palette, and ingest_image cover similar image-colour extraction territory; and compound tools like design_session, image_brief, session_brief, and archive_report_brief duplicate chains of component tools. The descriptions are detailed and occasionally state 'use this instead of X', but an agent still faces many near-duplicate choices.

Naming Consistency3/5

Names are consistently snake_case and often use domain prefixes (colour_, palette_, archive_, brand_, accessibility_), but verb placement is mixed: some are verb_noun (extract_image_colours, query_hex, style_match), others are noun_verb (colour_dna, palette_generate, brand_audit), and a few standalone names (ui_states, tool_guide, meta_capabilities) don't fit either pattern. The convention is readable but not uniform.

Tool Count1/5

At 88 tools, this is far beyond the reasonable well-scoped range and exceeds the 50+ extreme mismatch threshold. Many tools are compound wrappers that consolidate chains of simpler tools, adding redundancy and cognitive load rather than genuine coverage.

Completeness5/5

For the apparent domain, the tool surface is extremely comprehensive: colour extraction, analysis, naming, accessibility, cultural/provenance research, palette generation, brand systems, interior design, ecommerce copy, image briefs, project lifecycle, exports, and diagnostic tools are all present. Persistent objects have list/get/versions/delete/export support, so there are no obvious dead ends.

Resources