Skip to main content
Glama

Explain a change

explain_change
Read-onlyIdempotent

Why a site's visits, pageviews or visitors changed between a range and the period before, the one get_site_summary compares with. The answer's caveats are the rules that apply to its figures, such as drivers never adding up across dimensions: read them before reporting any figure, and pass on those that change what it means. For each dimension, channel, source, path, country, device, utm_campaign, asn unless dimensions names others, the values that moved most, each with its count in both periods, delta, change and beyond_site: how far it moved beyond keeping its share of the site, which sums to nought across a dimension. drivers are the values across every dimension that moved beyond the site past the noise rule, most first; within, the first driver's own drivers, under its filter. Dimensions are cuts of the same visits, so drivers overlap: never add them across dimensions. noise marks a change too small to read into, and broad a change spread across the site. without_value and rest make each dimension add up to totals' delta. metric is visits unless asked; under a goal filter every count is conversions and metric is refused. Name the site, range and filters as for get_site_summary, but for entry and exit and all time; skipped says which dimensions were not read, and why. The periods are compared in whole days. With a period before starting before the first counted day, no_change says why nothing is explained.

Input Schema

NameRequiredDescriptionDefault
toNoWith from: the last day, as YYYY-MM-DD, not after today.
daysNoThe last this many days, ending today unless ending says yesterday.
fromNoWith to: the first day, as YYYY-MM-DD.
limitNoHow many values of each dimension, 5 by default.
rangeNoA preset, as get_site_summary's range says what each covers.
domainYesA domain from list_sites, or any public site's.
endingNoWith days: the last day, today by default.
metricNoThe count explained, visits by default, as traffic is measured; revenue, under an event goal's filter, split into visits, conversion rate and average order.
filtersNoEach narrows every figure to what has exactly that value, case and all, so google is not Google; all must hold.
dimensionsNoThe dimensions to look across, each once, at most 8.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / range / enum
      Previous value: -[
      -  "today",
      -  "yesterday",
      -  "this-week",
      -  "this-week-sun",
      -  "last-7-days",
      -  "last-week",
      -  "last-week-sun",
      -  "last-14-days",
      -  "this-month",
      -  "last-30-days",
      -  "last-month"
      -]New value: +[
      +  "today",
      +  "yesterday",
      +  "this-week",
      +  "this-week-fri",
      +  "this-week-sat",
      +  "this-week-sun",
      +  "last-7-days",
      +  "last-week",
      +  "last-week-fri",
      +  "last-week-sat",
      +  "last-week-sun",
      +  "last-14-days",
      +  "this-month",
      +  "last-30-days",
      +  "last-month"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / metric / description
      Previous value: -"The count explained, visits by default, as traffic is measured."New value: +"The count explained, visits by default, as traffic is measured; revenue, under an event goal's filter, split into visits, conversion rate and average order."
    • changedInput schema / properties / metric / enum
      Previous value: -[
      -  "visits",
      -  "pageviews",
      -  "visitors"
      -]New value: +[
      +  "visits",
      +  "pageviews",
      +  "visitors",
      +  "revenue"
      +]
  3. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent safety profile, and the description adds substantial behavior beyond them: drivers overlap and must never be summed across dimensions, noise and broad thresholds, without_value/rest reconciliation, skipped dimensions and no_change explanations, whole-day period comparison, and metric being refused under a goal filter. This is exactly the kind of caveat context an agent needs before reporting figures.

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?

Nearly every sentence carries real information, but the prose is elliptical and run-on ('which sums to nought across a dimension', 'the first driver's own drivers, under its filter'), making it hard to parse. The most important instruction — read the caveats before reporting any figure — is not front-loaded, so structure undercuts an otherwise information-dense block.

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 10-parameter analytical tool with no output schema and no nested objects, the description covers return semantics thoroughly: per-dimension movement with counts, delta, change and beyond_site, the drivers/within hierarchy, caveats, skipped and no_change. Little an agent needs in order to interpret the response correctly 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 genuine semantics: metric defaults to visits and is refused under a goal filter, dimensions default to a specific list unless overridden, and limit defaults to 5. It doesn't add anything for range, from/to, or filters beyond pointing at get_site_summary, keeping it at 4 rather than 5.

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

Purpose4/5

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

States a specific verb and resource — explains why visits/pageviews/visitors changed between a range and the prior period — and anchors it to the sibling get_site_summary whose comparison window it reuses. An agent can tell it apart from get_site_summary, though the phrasing is dense and the core purpose is buried in the first clause.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: 'Name the site, range and filters as for get_site_summary' tells the agent to reuse that tool's inputs, and 'metric is visits unless asked; under a goal filter... metric is refused' gives a conditional constraint. But there is no explicit guidance on when to reach for this tool over get_site_summary or get_site_breakdown, so selection is left to inference.

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