Skip to main content
Glama

google-search-console.query_search_analytics

Query Search Console search analytics for a verified property.

Call google-search-console.list_sites to discover sites. Omit site_url to use the default property, or pass an exact site_url from that response. Returns performance rows with clicks, impressions, CTR, and average position, grouped by the requested dimensions.

Daily search analytics typically lag by two to three days. For the Search Console last-24-hours hourly view, group by hour; those rows can include partial hours and cover up to ten days.

Cost = 20 tokens.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
end_dateYesInclusive range end date in YYYY-MM-DD format.
site_urlNoOptional property URL from google-search-console.list_sites. When omitted, the default property is used. The user or agent passes an exact site_url value from that response.
row_limitNoMaximum number of rows to return. Defaults to 1000.
start_rowNoZero-based row offset for pagination. Defaults to 0.
data_stateNoWhether to return only finalized data, all available daily data, or hourly data. Use hourly_all when grouping by hour. Defaults to final.
dimensionsNoOptional dimension names to group results. Supported values: date, query, page, country, device, searchAppearance, hour. Grouping by hour uses the hourly feed.
start_dateYesInclusive range start date in YYYY-MM-DD format.
search_typeNoSearch type filter. Defaults to web.
dimension_filter_groupsNoOptional filter groups matching the Google Search Console Search Analytics API shape. Each group contains filters that restrict which rows are returned.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsNoSearch analytics result rows.
metadataNoOptional context about incomplete recent data. Present when Google is still collecting rows in the requested range.
site_urlNoVerified property URL that was queried.
response_aggregation_typeNoHow rows were aggregated (for example auto or byProperty).

Schema Changelog

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

  1. Changed4 schema fields changed
    • changedInput schema / properties / data_state / description
      Previous value: -"Whether to return only finalized data or all available data. Defaults to final."New value: +"Whether to return only finalized data, all available daily data, or hourly data. Use hourly_all when grouping by hour. Defaults to final."
    • changedInput schema / properties / dimensions / description
      Previous value: -"Optional dimension names to group results. Supported values: date, query, page, country, device, searchAppearance."New value: +"Optional dimension names to group results. Supported values: date, query, page, country, device, searchAppearance, hour. Grouping by hour uses the hourly feed."
    • addedOutput schema / $defs / QueryGoogleSearchConsoleSearchAnalyticsResponseMetadata
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "first_incomplete_date": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "First date still being collected when grouping by date, in YYYY-MM-DD format.",
      +      "title": "First Incomplete Date"
      +    },
      +    "first_incomplete_hour": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "First hour still being collected when grouping by hour, in America/Los_Angeles time.",
      +      "title": "First Incomplete Hour"
      +    }
      +  },
      +  "title": "QueryGoogleSearchConsoleSearchAnalyticsResponseMetadata",
      +  "type": "object"
      +}
    • addedOutput schema / properties / metadata
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/QueryGoogleSearchConsoleSearchAnalyticsResponseMetadata"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional context about incomplete recent data. Present when Google is still collecting rows in the requested range."
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / site_url / description
      Previous value: -"Optional verified property URL from google-search-console.list_sites. When omitted, the default property is used. The user or agent passes an exact site_url value from that response."New value: +"Optional property URL from google-search-console.list_sites. When omitted, the default property is used. The user or agent passes an exact site_url value from that response."
  3. Added

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the return payload shape, the 2–3 day daily data lag, and the partial-hour/ten-day limits of hourly rows. This goes well beyond what the schema explains. It could have explicitly stated that the tool is read-only with no side effects, but 'Query' and the return-row framing strongly imply it.

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

Conciseness5/5

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

Every sentence earns its place: purpose, site discovery, return payload, data lag caveat, hourly behavior, and cost. Information is front-loaded with the main purpose first, and the caveats are grouped logically without redundancy.

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?

For a 9-parameter tool, the description covers the non-obvious prerequisites and caveats: how to obtain a valid site_url, data lag, and hourly-view nuances. The remaining parameters are fully documented in the schema, and an output schema exists. It could have mentioned pagination/row limits or the read-only nature, but what's present is sufficient for correct invocation.

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 description coverage is 100%, so the baseline is 3. The description adds value beyond the schema for site_url (omit for default, pass exact value from list_sites) and dimensions (group by hour for last-24-hours view). This is meaningful semantic guidance beyond the field properties.

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 opens with a specific action and resource: 'Query Search Console search analytics for a verified property.' It names the returned metrics (clicks, impressions, CTR, average position) and the grouping behavior, making it unmistakably distinct from sibling tools like list_sites, inspect_url, or sitemap operations.

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 gives a concrete discovery flow — 'Call google-search-console.list_sites to discover sites' — and explains when to omit site_url or pass an exact value. It also gives usage direction for the hourly view ('group by hour; those rows can include partial hours and cover up to ten days'). It doesn't name exclusions or alternatives, but no direct alternative exists among siblings for search analytics.

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.