Skip to main content
Glama
eduardmur

Google Search Console MCP

by eduardmur

Search analytics

query
Read-onlyIdempotent

Retrieve Search Console analytics rows for one property, grouped by search term, page, country, device, or date, with filters, date presets, and period comparisons.

Instructions

Search Analytics rows for one property: clicks, impressions, CTR and position grouped by up to three of query, page, country, device, date, searchAppearance. Dates are resolved server-side (presets like last_28_days, anchored to the last date with data). Value filters (contains/regex/equals) run inside Search Console; min/max metric filters and non-click sorts run on a top-5000 sample. compare=previous_period or same_period_last_year returns one merged table with server-computed deltas (position_change positive = improved) — never join two windows yourself. Rows are a paginated sample, not an exhaustive export.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoRow order (default clicks desc; position sorts ascending; clicks_change requires compare).
typeNoSearch surface (default web). discover and googleNews have no query dimension.
limitNoRows per page, 1-100 (default 25).
anchorNoWhere preset ranges end: last_data_date (default) snaps to the newest date that has rows, avoiding the 2-3 day reporting lag; today uses the calendar date.
deviceNo
offsetNoRows to skip; page while has_more is true.
periodNoDate range resolved server-side in the property's timezone (default last_28_days). Use custom together with start_date and end_date.
compareNoMerge a second window and return per-row deltas (default none).
countryNoISO alpha-3 country code, e.g. usa, deu.
end_dateNoEnd date YYYY-MM-DD, only with period=custom.
propertyYesSearch Console property: a URL-prefix like https://example.com/ or a domain property like sc-domain:example.com. Use list-properties first if unsure.
data_stateNoall (default) includes fresh data Google may still revise; final returns only stabilized rows.
dimensionsNoRow grouping, in order (default [query]).
min_clicksNo
page_regexNoOnly pages matching this RE2 regex.
start_dateNoStart date YYYY-MM-DD, only with period=custom.
query_regexNoOnly queries matching this RE2 regex.
max_positionNo
min_positionNo
page_containsNoOnly pages containing this text.
query_containsNoOnly queries containing this text.
min_impressionsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantial operational context: server-side date resolution with anchor behavior, where each filter class executes, the top-5000 sampling caveat, compare's merged-table-with-deltas contract, and the sign convention for position_change. The 'paginated sample, not an exhaustive export' warning is exactly the kind of caveat annotations cannot express.

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?

Front-loaded with the purpose before moving into caveats, and each sentence carries non-redundant information (date resolution, filter execution, compare semantics, sampling). It is dense and packs several distinct rules into a single compact block, which slightly taxes parsing but wastes no words.

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 22-parameter read tool with no output schema, the description supplies the operational context an agent needs: what a row contains, how dates resolve, which filters are exact versus sampled, how compare changes the result shape, and that pagination yields a sample. Return-shape detail is minimal, but the sampling and delta semantics are the parts most likely to cause misuse and they are covered.

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?

With 77% schema coverage the baseline is 3, but the description meaningfully extends the schema: 'grouped by up to three of' dimensions, preset examples (last_28_days) with server-side resolution anchored to the last date with data, and the note that position_change requires compare and that positive means improved. It does not explain the undocumented min_clicks/min_impressions/min_position/max_position parameters, leaving a gap.

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 ('Search Analytics rows for one property') and enumerates the metrics (clicks, impressions, CTR, position) and grouping dimensions, so the agent knows exactly what comes back. It never names or contrasts the sibling tools (question-queries, opportunities) that also surface Search Console data, so the boundary is inferred rather than stated.

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?

Gives concrete routing guidance: use compare instead of joining two windows ('never join two windows yourself'), and explains that value filters execute in Search Console while min/max and non-click sorts run on a top-5000 sample, which tells the agent when results are approximate. It stops short of explicit when-not-to-use-this-tool exclusions against siblings.

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