Skip to main content
Glama

RevenueScope: revenue-first analytics for your EC site

Site KPI summary

get_summary
Read-only

Return the full headline summary for a site and period in ONE call: the 5 KPIs (revenue, sessions, RPS, AOV, CVR) PLUS two engagement KPIs (avg_duration = average dwell time in seconds, bounce_rate = % single-page-exit sessions) each with value AND the period-over-period change vs the previous equal-length window, PLUS a daily revenue/sessions/conversions trend, PLUS ad-spend availability (connected_channels, ad_spend_data_status, ad_spend_channels_in_period) and the Path A/B recommendation. avg_duration/bounce_rate are useful for sites with no revenue yet (engagement view). scroll_depth is the average scroll depth (%), taken per session as its deepest point then averaged; its change is a percentage-point delta. IMPORTANT: its denominator differs from avg_duration/bounce_rate — depth only covers sessions whose exit beacon landed, and sessions without one are excluded rather than counted as 0. scroll_depth is null when the window holds no depth signal at all (0% would read as 'read shallowly' when the truth is 'not measured'); depth has only been collected since 2026-06-15, so longer windows are partial. Pass optional country (ISO2, e.g. 'JP') and/or device ('mobile'/'desktop'/'tablet') to scope the session-derived KPIs and trend to that segment (omit = all); ROAS stays site-wide (ad spend has no country/device dimension). This is what the dashboard's KPI cards + revenue-trend chart show, merged with the site's ad-spend context. Call this first when a user asks 'how is my site doing?'. site_id is OPTIONAL when OAuth-authenticated (server falls back to the primary site). Default period is the last 30 days; pass period='today'/'7d'/'90d' or a raw day count (1-365). change is a percentage for revenue/sessions/RPS/AOV/avg_duration and an absolute percentage-point delta for CVR and bounce_rate. For period='today' the comparison is today-so-far vs the SAME elapsed window yesterday (e.g. midnight→now vs midnight→same-time-yesterday), so 'previous' can read below yesterday's full-day total — that is expected, not a discrepancy. EXCEPTION: kpis.roas.previous uses the full prior JST calendar day because spend is daily-grained; previous_period.source_boundaries and period_boundary_definitions disclose that different window. ad_spend_data_status / ad_spend_channels_in_period reflect spend data ACTUALLY present in the period (consistent with get_channel_breakdown); path_recommendation reflects whether the requested period holds any channel with spend>0 (Path B = ad spend connected), the same definition the other tools use. kpis.roas is the SITE-WIDE ROAS (RS-measured revenue ÷ ad spend over channels that have spend — Σrevenue ÷ Σspend, the same definition as the dashboard's overall ROAS; the spend-weighted aggregate of get_breakdown's per-channel ROAS) with value/previous/change (前期比 from a current + previous 2-window computation); it is null on Path A / when the period has no ad spend (ROAS is undefined with zero spend), so render it only when present. When the PREVIOUS window has no spend, roas.previous and roas.change are null (unknown baseline, not 0.00x) — treat that as 'no prior-period comparison', never as a drop from zero.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deviceNo
periodNo30d
countryNo
site_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kpisYes
basisYes
trendYes
periodYes
site_idYes
data_freshnessYes
previous_periodYes
connected_channelsYes
presentation_hintsYes
path_recommendationYes
ad_spend_data_statusYes
ad_spend_rows_in_periodYes
ad_spend_channels_in_periodYes
period_boundary_definitionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • addedOutput schema / properties / data_freshness
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "bot_classification_delay_definitions": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "burst_cluster_fallback": {
      +          "type": "string"
      +        },
      +        "burst_cluster_primary": {
      +          "type": "string"
      +        },
      +        "single_page_zero_dwell": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "burst_cluster_primary",
      +        "burst_cluster_fallback",
      +        "single_page_zero_dwell"
      +      ],
      +      "type": "object"
      +    },
      +    "bot_classification_delay_minutes_max_by_rule": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "burst_cluster_fallback": {
      +          "const": 480,
      +          "type": "number"
      +        },
      +        "burst_cluster_primary": {
      +          "const": 20,
      +          "type": "number"
      +        },
      +        "single_page_zero_dwell": {
      +          "const": 480,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "burst_cluster_primary",
      +        "burst_cluster_fallback",
      +        "single_page_zero_dwell"
      +      ],
      +      "type": "object"
      +    },
      +    "delay_bounds_assume_scheduled_jobs_operational": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "generated_at": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "may_change_because": {
      +      "items": {
      +        "enum": [
      +          "live_ingestion",
      +          "open_window",
      +          "moving_window",
      +          "delayed_bot_classification"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "provisional": {
      +      "const": true,
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "generated_at",
      +    "provisional",
      +    "may_change_because",
      +    "bot_classification_delay_minutes_max_by_rule",
      +    "bot_classification_delay_definitions",
      +    "delay_bounds_assume_scheduled_jobs_operational"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / period / properties / calendar_dates_touched
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / period / properties / duration_hours
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / period / properties / reference_bounds
      Added value: +{
      +  "const": "start_inclusive_end_exclusive",
      +  "type": "string"
      +}
    • addedOutput schema / properties / period / properties / reference_end_at
      Added value: +{
      +  "format": "date-time",
      +  "type": "string"
      +}
    • addedOutput schema / properties / period / properties / reference_start_at
      Added value: +{
      +  "format": "date-time",
      +  "type": "string"
      +}
    • addedOutput schema / properties / period / properties / source_alignment
      Added value: +{
      +  "enum": [
      +    "exact",
      +    "mixed"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / period / properties / source_boundaries
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "applies_to": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "boundary": {
      +        "enum": [
      +          "reference_timestamp_window",
      +          "database_statement_time_window",
      +          "jst_calendar_dates_from_reference_start",
      +          "jst_calendar_dates_from_database_window_start",
      +          "jst_calendar_dates_inclusive",
      +          "account_registry_not_period_scoped",
      +          "derived_previous_daily_window",
      +          "derived_from_current_and_previous",
      +          "defined_per_output_item"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "applies_to",
      +      "boundary"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / period / properties / timezone
      Added value: +{
      +  "const": "Asia/Tokyo",
      +  "type": "string"
      +}
    • addedOutput schema / properties / period / properties / window_type
      Added value: +{
      +  "enum": [
      +    "rolling",
      +    "calendar_to_date",
      +    "comparison"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / period / required
      Previous value: -[
      -  "start",
      -  "end",
      -  "days"
      -]New value: +[
      +  "start",
      +  "end",
      +  "days",
      +  "reference_start_at",
      +  "reference_end_at",
      +  "window_type",
      +  "reference_bounds",
      +  "timezone",
      +  "duration_hours",
      +  "calendar_dates_touched",
      +  "source_alignment",
      +  "source_boundaries"
      +]
    • addedOutput schema / properties / period_boundary_definitions
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "account_registry_not_period_scoped": {
      +      "type": "string"
      +    },
      +    "database_statement_time_window": {
      +      "type": "string"
      +    },
      +    "defined_per_output_item": {
      +      "type": "string"
      +    },
      +    "derived_from_current_and_previous": {
      +      "type": "string"
      +    },
      +    "derived_previous_daily_window": {
      +      "type": "string"
      +    },
      +    "jst_calendar_dates_from_database_window_start": {
      +      "type": "string"
      +    },
      +    "jst_calendar_dates_from_reference_start": {
      +      "type": "string"
      +    },
      +    "jst_calendar_dates_inclusive": {
      +      "type": "string"
      +    },
      +    "path_syntax": {
      +      "const": "dot_path_with_array_wildcard",
      +      "type": "string"
      +    },
      +    "reference_timestamp_window": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "path_syntax",
      +    "reference_timestamp_window",
      +    "database_statement_time_window",
      +    "jst_calendar_dates_from_reference_start",
      +    "jst_calendar_dates_from_database_window_start",
      +    "jst_calendar_dates_inclusive",
      +    "account_registry_not_period_scoped",
      +    "derived_previous_daily_window",
      +    "derived_from_current_and_previous",
      +    "defined_per_output_item"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / previous_period / $ref
      Added value: +"#/properties/period"
    • removedOutput schema / properties / previous_period / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / previous_period / properties
      Removed value: -{
      -  "end": {
      -    "type": "string"
      -  },
      -  "start": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / previous_period / required
      Removed value: -[
      -  "start",
      -  "end"
      -]
    • removedOutput schema / properties / previous_period / type
      Removed value: -"object"
    • changedOutput schema / required
      Previous value: -[
      -  "site_id",
      -  "period",
      -  "previous_period",
      -  "basis",
      -  "kpis",
      -  "trend",
      -  "path_recommendation",
      -  "ad_spend_data_status",
      -  "connected_channels",
      -  "ad_spend_channels_in_period",
      -  "ad_spend_rows_in_period",
      -  "presentation_hints"
      -]New value: +[
      +  "site_id",
      +  "period",
      +  "previous_period",
      +  "data_freshness",
      +  "period_boundary_definitions",
      +  "basis",
      +  "kpis",
      +  "trend",
      +  "path_recommendation",
      +  "ad_spend_data_status",
      +  "connected_channels",
      +  "ad_spend_channels_in_period",
      +  "ad_spend_rows_in_period",
      +  "presentation_hints"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / presentation_hints
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "avoid_long_prose": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "prefer_compact_visual_summary": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "primary_metric": {
      +      "type": "string"
      +    },
      +    "recommended_followup_tools": {
      +      "items": {
      +        "enum": [
      +          "get_breakdown",
      +          "get_priority_insights"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "recommended_sections": {
      +      "items": {
      +        "enum": [
      +          "kpi_summary",
      +          "trend",
      +          "ad_spend_context",
      +          "breakdown",
      +          "priority_insights",
      +          "recommended_actions"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "response_type": {
      +      "enum": [
      +        "analytics_summary",
      +        "analytics_breakdown",
      +        "priority_insights"
      +      ],
      +      "type": "string"
      +    },
      +    "show_breakdown": {
      +      "type": "boolean"
      +    },
      +    "show_period_comparison": {
      +      "type": "boolean"
      +    },
      +    "show_priority_insights": {
      +      "type": "boolean"
      +    },
      +    "show_trend": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "response_type",
      +    "primary_metric",
      +    "show_period_comparison",
      +    "show_trend",
      +    "show_breakdown",
      +    "show_priority_insights",
      +    "prefer_compact_visual_summary",
      +    "avoid_long_prose",
      +    "recommended_followup_tools",
      +    "recommended_sections"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "site_id",
      -  "period",
      -  "previous_period",
      -  "basis",
      -  "kpis",
      -  "trend",
      -  "path_recommendation",
      -  "ad_spend_data_status",
      -  "connected_channels",
      -  "ad_spend_channels_in_period",
      -  "ad_spend_rows_in_period"
      -]New value: +[
      +  "site_id",
      +  "period",
      +  "previous_period",
      +  "basis",
      +  "kpis",
      +  "trend",
      +  "path_recommendation",
      +  "ad_spend_data_status",
      +  "connected_channels",
      +  "ad_spend_channels_in_period",
      +  "ad_spend_rows_in_period",
      +  "presentation_hints"
      +]
  3. Changed4 schema fields changed
    • addedOutput schema / properties / kpis / properties / avg_duration_depth_basis
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "change": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "previous": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "value": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "value",
      +        "previous",
      +        "change"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / kpis / properties / median_duration_depth_basis
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/properties/kpis/properties/avg_duration_depth_basis/anyOf/0"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / kpis / properties / median_scroll_depth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/properties/kpis/properties/avg_duration_depth_basis/anyOf/0"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / kpis / required
      Previous value: -[
      -  "revenue",
      -  "sessions",
      -  "rps",
      -  "aov",
      -  "cvr",
      -  "avg_duration",
      -  "bounce_rate",
      -  "scroll_depth",
      -  "roas"
      -]New value: +[
      +  "revenue",
      +  "sessions",
      +  "rps",
      +  "aov",
      +  "cvr",
      +  "avg_duration",
      +  "bounce_rate",
      +  "scroll_depth",
      +  "avg_duration_depth_basis",
      +  "median_duration_depth_basis",
      +  "median_scroll_depth",
      +  "roas"
      +]
  4. Changed2 schema fields changed
    • addedOutput schema / properties / kpis / properties / scroll_depth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/properties/kpis/properties/revenue"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / kpis / required
      Previous value: -[
      -  "revenue",
      -  "sessions",
      -  "rps",
      -  "aov",
      -  "cvr",
      -  "avg_duration",
      -  "bounce_rate",
      -  "roas"
      -]New value: +[
      +  "revenue",
      +  "sessions",
      +  "rps",
      +  "aov",
      +  "cvr",
      +  "avg_duration",
      +  "bounce_rate",
      +  "scroll_depth",
      +  "roas"
      +]
  5. Changed1 schema field changed
    • changedOutput schema / properties / kpis / properties / roas / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/properties/kpis/properties/revenue"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "change": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "previous": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "value": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "value",
      +      "previous",
      +      "change"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  6. Changed2 schema fields changed
    • removedOutput schema / properties / ad_spend_rows_last_7d
      Removed value: -{
      -  "type": "number"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "site_id",
      -  "period",
      -  "previous_period",
      -  "basis",
      -  "kpis",
      -  "trend",
      -  "path_recommendation",
      -  "ad_spend_data_status",
      -  "connected_channels",
      -  "ad_spend_channels_in_period",
      -  "ad_spend_rows_in_period",
      -  "ad_spend_rows_last_7d"
      -]New value: +[
      +  "site_id",
      +  "period",
      +  "previous_period",
      +  "basis",
      +  "kpis",
      +  "trend",
      +  "path_recommendation",
      +  "ad_spend_data_status",
      +  "connected_channels",
      +  "ad_spend_channels_in_period",
      +  "ad_spend_rows_in_period"
      +]
  7. Changed5 schema fields changed
    • addedInput schema / properties / country
      Added value: +{
      +  "maxLength": 2,
      +  "minLength": 2,
      +  "type": "string"
      +}
    • addedInput schema / properties / device
      Added value: +{
      +  "enum": [
      +    "mobile",
      +    "desktop",
      +    "tablet"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / kpis / properties / avg_duration
      Added value: +{
      +  "$ref": "#/properties/kpis/properties/revenue"
      +}
    • addedOutput schema / properties / kpis / properties / bounce_rate
      Added value: +{
      +  "$ref": "#/properties/kpis/properties/revenue"
      +}
    • changedOutput schema / properties / kpis / required
      Previous value: -[
      -  "revenue",
      -  "sessions",
      -  "rps",
      -  "aov",
      -  "cvr",
      -  "roas"
      -]New value: +[
      +  "revenue",
      +  "sessions",
      +  "rps",
      +  "aov",
      +  "cvr",
      +  "avg_duration",
      +  "bounce_rate",
      +  "roas"
      +]
  8. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "ad_spend_channels_in_period": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "ad_spend_data_status": {
      +      "enum": [
      +        "connected",
      +        "pending",
      +        "none"
      +      ],
      +      "type": "string"
      +    },
      +    "ad_spend_rows_in_period": {
      +      "type": "number"
      +    },
      +    "ad_spend_rows_last_7d": {
      +      "type": "number"
      +    },
      +    "basis": {
      +      "type": "string"
      +    },
      +    "connected_channels": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "kpis": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "aov": {
      +          "$ref": "#/properties/kpis/properties/revenue"
      +        },
      +        "cvr": {
      +          "$ref": "#/properties/kpis/properties/revenue"
      +        },
      +        "revenue": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "change": {
      +              "type": "number"
      +            },
      +            "previous": {
      +              "type": "number"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "previous",
      +            "change"
      +          ],
      +          "type": "object"
      +        },
      +        "roas": {
      +          "anyOf": [
      +            {
      +              "$ref": "#/properties/kpis/properties/revenue"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "rps": {
      +          "$ref": "#/properties/kpis/properties/revenue"
      +        },
      +        "sessions": {
      +          "$ref": "#/properties/kpis/properties/revenue"
      +        }
      +      },
      +      "required": [
      +        "revenue",
      +        "sessions",
      +        "rps",
      +        "aov",
      +        "cvr",
      +        "roas"
      +      ],
      +      "type": "object"
      +    },
      +    "path_recommendation": {
      +      "enum": [
      +        "A",
      +        "B"
      +      ],
      +      "type": "string"
      +    },
      +    "period": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "days": {
      +          "type": "number"
      +        },
      +        "end": {
      +          "type": "string"
      +        },
      +        "start": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "start",
      +        "end",
      +        "days"
      +      ],
      +      "type": "object"
      +    },
      +    "previous_period": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "end": {
      +          "type": "string"
      +        },
      +        "start": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "start",
      +        "end"
      +      ],
      +      "type": "object"
      +    },
      +    "site_id": {
      +      "type": "string"
      +    },
      +    "trend": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "conversions": {
      +            "type": "number"
      +          },
      +          "cvr": {
      +            "type": "number"
      +          },
      +          "date": {
      +            "type": "string"
      +          },
      +          "revenue": {
      +            "type": "number"
      +          },
      +          "sessions": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "date",
      +          "revenue",
      +          "sessions",
      +          "conversions",
      +          "cvr"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "site_id",
      +    "period",
      +    "previous_period",
      +    "basis",
      +    "kpis",
      +    "trend",
      +    "path_recommendation",
      +    "ad_spend_data_status",
      +    "connected_channels",
      +    "ad_spend_channels_in_period",
      +    "ad_spend_rows_in_period",
      +    "ad_spend_rows_last_7d"
      +  ],
      +  "type": "object"
      +}
  9. Added

TDQS

A4.7/5.0
Behavior5/5

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

With readOnlyHint=true and openWorldHint=false annotations already covering safety and closed-world semantics, the description adds exceptional behavioral context: scroll_depth's different denominator and null-when-unmeasured semantics, change as percentage vs percentage-point delta, the period='today' same-elapsed-window comparison, ROAS null on Path A / zero-spend periods, and previous/change null when the prior window has no spend. It even discloses data-coverage caveats ('depth has only been collected since 2026-06-15').

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 long, but the tool is genuinely complex with many KPIs, edge cases, and null semantics that need explanation. It is front-loaded with the core purpose, then layers details sensibly. Minor redundancy exists: Path A/B definitions are restated in both the ad-spend context paragraph and the ROAS paragraph, and the parenthetical '前期比' is an odd inclusion. Every sentence mostly earns its place.

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 high-complexity tool, the description is remarkably complete: return payload, param semantics, defaults, auth behavior, comparison-window definitions, null-handling rules, data-coverage caveats, and consistency with sibling tools are all covered. An output schema exists, so the description correctly focuses on meaning and edge cases rather than restating return structure. Nothing needed to invoke this tool correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and delivers: country is explained as ISO2 with the example 'JP' and scoping semantics, device is mapped to the enum values with segmentation behavior, period is fully documented (defaults to last 30 days, valid values 'today'/'7d'/'90d'/1-365), and site_id's OAuth-dependent optionality with primary-site fallback is spelled out. It also clarifies that ROAS ignores country/device scoping.

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 opening line 'Return the full headline summary for a site and period in ONE call' states a specific verb and resource, then enumerates the exact payload (5 KPIs, 2 engagement KPIs, trend, ad-spend context, Path recommendation). The 'ONE call' framing plus 'This is what the dashboard's KPI cards + revenue-trend chart show' distinguishes it from the more granular sibling tools like get_breakdown and get_page_trend.

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 instructs 'Call this first when a user asks "how is my site doing?"', giving clear entry-point guidance. It also notes definitional consistency with get_channel_breakdown and get_breakdown, which signals when results can be cross-referenced. However, it never names an alternative tool or states a when-not-to-use condition, leaving some routing 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