Skip to main content
Glama

Make the consent banner match a site — derive and check its design

demo.suggestDesign
Read-only

THE TOOL TO USE when the banner needs to look like the site it sits on. Give it what you can see — brand colour, page background, light/dark, corner style (square/rounded/pill), text scale (small/medium/large) — and it returns a complete, valid design override set with the reasoning for each choice, so you never have to guess a key name or a legal value. It also validates design values you already have, and checks every colour pair a visitor must actually read (body text and headings on the banner background, and button labels on the brand colour) against WCAG AA, picking body text colours by measured contrast and button labels white whenever white reaches 4.5:1 (otherwise the more legible colour). Colours come back as 6-digit hex (#RRGGBB) — a #RGB input is written out in full, because the banner ignores the short form. Themes: light/dark. A font is never derived: pass design.fontFamily (site/sans-serif/serif/system) only when the site owner has chosen one. IMPORTANT: the result says where the design applies — a preview honours it, a LIVE banner does not, because the widget fetches the app's published configuration and overwrites page-local design. To change a real banner use account.previewDesignChange then account.updateDesign, which need an authenticated connection — call help.explainTokenSetup. To see the design on a page without an account, pass it to demo.generateSnippet; to install the real banner use install.getSnippet.

Input Schema

NameRequiredDescriptionDefault
brandNoFacts about the site's own look. Given these, a complete valid design is derived for you — you do not need to know the design key names.
designNoExplicit huOptions.design overrides to validate. Applied on top of anything derived from brand.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

The readOnlyHint=true annotation is consistent with a tool that derives and validates rather than mutates. The description adds substantial behavioral context beyond annotations: WCAG AA contrast checking, measured body-text selection, white button labels when they reach 4.5:1, #RGB-to-#RRGGBB normalization, theme inference, no font derivation, and the important preview-versus-live limitation.

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?

The description is front-loaded and every major clause supports a real decision or caveat. It is long and dense, but the length is mostly justified by the derivation, validation, contrast, and routing details.

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 complex read-only derivation and validation tool with no output schema, the description covers what is returned, how colors are normalized, how contrast is checked, and where the resulting design applies. It also explains the important limitation that live banners ignore page-local design overrides.

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 brand fields are already documented. The description still adds useful semantics not in the schema, especially the allowed design.fontFamily values (site/sans-serif/serif/system), the role of brandColor as button/accent, and the theme inference from pageBackground.

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 description states a specific resource and action: derive and validate a consent-banner design override set matching a site. It distinguishes itself from siblings by explicitly naming demo.generateSnippet, install.getSnippet, account.previewDesignChange, and account.updateDesign for the alternative workflows.

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?

It gives explicit when-to-use guidance and routes the agent to alternatives based on conditions: use demo.generateSnippet to preview without an account, install.getSnippet to install the real banner, and account.previewDesignChange plus account.updateDesign to change a live banner. It also flags the authentication prerequisite for the account path.

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.

Resources