Skip to main content
Glama

Website budget by month

budget_aggregates
Read-only

Modelled monthly ad budget of one to three websites over a window of whole months (from_month/to_month YYYY-MM; default: the last six months available). MODEL ESTIMATES in USD (value_kind=modeled_estimate), never observed spend; quote them as estimates. Per site and month (oldest first): p10/p50/p90 band, method_a, method_b, budget_a (sum of the non-skipped countries' budgets), computed_at, ads_new, ads_active, creatives_active, visits; p50_change_pct (vs the previous complete calendar month, 0.1), p50_acceleration_pp (change minus the previous change), ads_new_change_pct, visits_change_pct — null for the first month, the partial current month (partial=true, never used in a change) or a missing/zero base. countries: the top_countries (default 15, max 30) by the latest complete month's budget_a, each with its months (budget_a, budget_share, ads_share, geo_share, geo_source, skipped), budget_share_change_pp and budget_a_change_pct between the last two complete months. creatives per month: creatives counted, allocated_share, top1/top3/top10 shares of the site budget, hhi (sum of squared shares) and the top_creatives (default 10, max 20) with creative_key, share, budget_base, p50, ads, countries. seasonal_multiplier (> 0, <= 10) adds p50_change_adjusted_pct per month and budget_a_change_adjusted_pct per country = round(100 x ((1 + change/100) / multiplier - 1), 1), and echoes seasonal_multiplier. Shares also come as percents: budget_share_pct, top1/top3/top10_share_pct, hhi_pct, share_pct. trend: trailing consecutive declines of p50 and ads_new, last_change_pct, last_acceleration_pp. With 2-3 sites, ranking orders them by last_acceleration_pp, unknown last. A site without a reliable estimate answers status=no_estimate with empty lists (not an error). QUOTA: 1 MCP credit per call. PRICING: on paid plans ×1 after 500 MCP credits/month; one-time consent via accept_pricing_terms; before calling, get the maximum debit from estimate_cost (free) and tell the user.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "domains": "<domains>"
    },
    "name": "budget_aggregates"
  }
}

Input Schema

NameRequiredDescriptionDefault
domainsYes1-3 website domains (e.g. halara.com), as get_shop takes them
to_monthNolast month YYYY-MM; default: the newest month with an estimate
from_monthNofirst month YYYY-MM; default: six months ending at to_month
top_countriesNocountries by the latest complete month's budget, 1-30 (default 15)
top_creativesNocreatives per month in the top, 1-20 (default 10)
seasonal_multiplierNoseasonal multiplier the question names (e.g. 1.2), > 0 and <= 10; adds p50_change_adjusted_pct and budget_a_change_adjusted_pct = 100 x ((1 + change/100) / multiplier - 1)

Output Schema

NameRequiredDescriptionDefault
dataNo
errorNoPresent only when isError is true: machine-readable failure. The human explanation stays in content.
paramsNoRequest parameter echo: applied = parameters that shaped this result; normalized = parameters rewritten before applying (alias, type coercion, resolved id); ignored = parameters that were accepted but NOT applied, with the reason.
addon_hintsNoAdd-on modules that have additional data for objects of this result (no prices, no paid values). subscription_status=active: the account has the module — use its normal path. Do not push a purchase the user did not ask about.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/openWorld/non-destructive annotations, it discloses that values are model estimates that must be quoted as estimates, that a site without a reliable estimate returns status=no_estimate with empty lists rather than an error, and the full quota/pricing/consent mechanics. This is exactly the behavioral context annotations cannot carry.

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

Conciseness2/5

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

A single ~450-word paragraph that enumerates dozens of return fields (p10/p50/p90, hhi, top_creatives, trend, etc.) even though an output schema already exists. The purpose is front-loaded, but the density and duplication make it hard to scan and much of the enumeration does not earn its place in a description.

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, multi-parameter, quota-metered analytical tool, nothing an agent needs is missing: cost, consent, defaults, estimate-vs-observed semantics, no_estimate behavior, and multi-site ranking rules are all covered. Completeness is not the weakness here; verbosity is.

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 meaning: domains are taken as get_shop takes them, defaults for to_month/from_month/top_countries/top_creatives, and the precise effect of seasonal_multiplier on the adjusted change fields. It goes modestly beyond the schema rather than merely restating it.

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 first sentence names a specific resource and scope: modelled monthly ad budget for one to three websites over a window of whole months. It immediately disambiguates from observed-spend tools by stating MODEL ESTIMATES in USD, never observed spend, which no sibling provides.

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?

It gives concrete prerequisites and sequencing: get the maximum debit from estimate_cost (free) before calling, one-time consent via accept_pricing_terms, 1 credit per call, and default windows. It does not explicitly say when to prefer a different sibling (e.g. get_ads_analytics) over this tool, so it stops short of full when/when-not guidance.

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.