Skip to main content
Glama
onlymoein

Google Search Console MCP Server

by onlymoein

Compare two periods

compare_periods
Read-only

Compare search performance between two equal-length periods to spot gains and losses in clicks, impressions, and position per query or page.

Instructions

Compare search performance between two periods of equal length: totals plus a per-key breakdown with absolute and percent changes. Position change is negative when ranking improved.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filtersNoFilters, combined with AND.
sort_byNoclicks_change (default) and impressions_change rank the biggest gains and losses first; ties fall back to the other metric's change, then current impressions. clicks and impressions rank by the current period.clicks_change
site_urlYesThe property, as listed by list_sites: 'sc-domain:example.com' for a domain property or 'https://www.example.com/' for a URL-prefix property. A bare domain such as 'example.com', or any URL on the site, is resolved to the property that contains it.
row_limitNoRows to return.
data_stateNoDefaults to 'final': fresh, still-changing data in the current period would read as a decline against a complete baseline.final
dimensionsNoCompare per value of these. Omit for ['query']; [] for totals only.
current_endNoLast day of the period to analyze. Defaults to 3 days ago, the last day that is usually final.
fetch_limitNoTop rows fetched per period before joining.
search_typeNoweb
previous_endNoLast day of the baseline; same length as current.
current_startNoFirst day of the period to analyze, YYYY-MM-DD (Pacific Time).
previous_startNoFirst day of the baseline. Defaults to the period just before.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYes
notesNo
totalsYes
site_urlYes
data_stateYes
dimensionsYes
search_typeYes
current_periodYes
previous_periodYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.4.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral value beyond that: it defines the return shape and, crucially, the sign convention that a negative position change means improved ranking — a non-obvious detail an agent would otherwise misinterpret. It stops short of noting pagination or the effect of data_state on the comparison.

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?

Two sentences, front-loaded with the core purpose, followed by the one caveat an agent is most likely to get wrong. Every clause earns its place with no filler.

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?

With an output schema present, return values need not be explained, and the 12-parameter schema is 92% self-documenting. The description supplies the non-obvious semantic notes (equal-length windows, negative position change) that the schema cannot express, so it is complete enough for correct invocation.

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 92%, so the schema already documents nearly every parameter with defaults and enums. The description adds little parameter-level detail beyond the implied equal-length requirement for the current/previous windows, which is the baseline 3 case where the schema carries the load.

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?

The description states a specific verb and resource — comparing search performance between two equal-length periods — and even sketches the output shape (totals plus per-key breakdown with absolute and percent changes). It is clear on its own, but it never names or contrasts against siblings like query_search_analytics or explain_change, so the agent must infer the boundary.

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 by the framing (a period-over-period comparison) and the 'equal length' constraint hints at when it applies. However, there is no explicit when-to-use/when-not guidance and no routing to explain_change for single-change analysis or to query_search_analytics for a single period, leaving the agent to guess.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.