Skip to main content
Glama

cromanion_set_surfaces

DestructiveIdempotent

Choose where the agent may speak and what those places look like: which layout surfaces are enabled, whether the exit modal is allowed, custom CSS, and per-surface HTML. Markup and CSS are re-checked against an allowlist on every visitor — anything that could run, or fetch a remote resource, is silently removed, so compare what comes back with what you sent. Needs the surfaces permission.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteIdNoWhich site this call is about. Only needed when your credential covers more than one — cromanion_grants lists them and says whether it is required. Omitting it with several is refused rather than guessed at.
enabledNoSurfaces the agent may use: inline_hint, card, sticky_bar, bottom_sheet, inline_block, cta_tooltip.
customCssNoCSS applied inside the intervention's shadow root. An empty string clears it.
templatesNoPer-surface HTML, keyed by surface. Use {{message}}, {{cta_label}} and {{cta_url}} as placeholders.
allowModalNoAllow the page-blocking exit modal. Off by default.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
noteNo
changedYes
enabledNoSurfaces now in use.
customCssNoThe CSS as STORED — compare with what you sent to see what the allowlist removed.
templatesNoPer-surface, what was kept and what was stripped from your markup.
allowModalNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses a key behavioral trait beyond the annotations: it states that markup and CSS are re-checked against an allowlist on every visitor and that anything that could run or fetch remote resources is silently removed. This warns the agent that the output may differ from the input, which is not indicated by the annotations alone.

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

Conciseness3/5

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

The description is somewhat repetitive and uses a quirky phrasing ('Choose where the agent may speak' and 'compare what comes back with what you sent') that could be streamlined. It is still understandable but contains redundant words and concepts that could be expressed more tightly.

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

Completeness4/5

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

The description gives enough context for the agent to use the tool effectively: it mentions the permission requirement, the filtering behavior, and the need to compare output. It does not describe the return structure since an output schema is present, which is acceptable. The overall context 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.

Parameters4/5

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

The schema already provides coverage for all five parameters, and the description adds extra semantic detail such as 'an empty string clears it' for customCss, the placeholder variables for templates, and the default off state for allowModal. This enriches the parameter meaning beyond the raw schema.

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 clearly states the tool's function: configuring where the agent may speak (surfaces), enabling/disabling the exit modal, and setting custom CSS and per-surface HTML. It distinguishes itself from siblings by focusing on surface layout and appearance rather than other configuration aspects like goals, brands, or voice.

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

Usage Guidelines4/5

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

The description provides explicit guidance: it requires the 'surfaces' permission and instructs the agent to compare the returned data with what was sent because allowlisting may silently remove content. This helps the agent know when to use this tool and what to expect, though it does not explicitly contrast with sibling tools.

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