Skip to main content
Glama

List the buttons on a page

detect_page_ctas
Read-onlyIdempotent

Every button and link on one page of a design — the page and the sections it renders — with its visible text, the file (block) it lives in, its href, and whether it already opens a popup form (linked_to: "form" with its form_id) or Calendly. Nothing is filtered: decide from the text which ones are calls to action. text is null for a button whose label comes from site content rather than the code. Use the text and block with link_cta.

Input Schema

NameRequiredDescriptionDefault
site_idYesThe site, from list_sites
page_slugYesThe page, by slug ("/" for the homepage, "/contact")
user_goalNoOptional: the user's goal behind this call, in one short sentence of plain words (e.g. "add a page so customers can book tables"). No names, emails or other personal details.
variation_idNovariation_id of the design to read or change (from list_variations). Omit for the site's chosen design.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / user_goal
      Added value: +{
      +  "description": "Optional: the user's goal behind this call, in one short sentence of plain words (e.g. \"add a page so customers can book tables\"). No names, emails or other personal details.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses a key behavioral trait the schema can't: nothing is filtered, and `text` is null when the label comes from site content rather than code. It also flags what the returned fields encode (linked_to "form" with form_id, or Calendly), which materially shapes how the agent interprets results.

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?

Front-loaded with what is returned, then the no-filtering caveat, the null-text exception, and the link_cta handoff. Dense but every clause earns its place; the em-dash packing makes it slightly harder to scan than a cleanly bulleted version.

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?

No output schema exists, so the description carries the return-value burden and does so by enumerating the fields produced (text, block, href, link-state). Combined with annotations covering the safety profile, an agent has everything needed to call and interpret it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so site_id, page_slug, variation_id and user_goal are already documented. The description mentions 'one page of a design' and 'the sections it renders', which loosely maps to page_slug/variation_id, but adds no syntax or format detail 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.

Purpose5/5

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

States a specific verb+resource: every button and link on one page of a design, with the fields it returns (visible text, block, href, linked_to/form_id, Calendly). It also explicitly clarifies the name's ambiguity — nothing is filtered, so the agent must judge which are CTAs — which distinguishes it from tools like link_cta.

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?

Explicitly routes the agent to the next step ('Use the text and block with link_cta') and states the decision the agent must make ('decide from the text which ones are calls to action'). It doesn't state when not to use it (e.g., versus read_design), but the per-page, unfiltered scope makes its place clear.

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