Tools Reference

You don't call these tools yourself: your AI client picks them from your question. All 9 tools are read-only.

Tool What it does
list_sites The Search Console properties you can read, with your permission level
search_analytics Clicks, impressions, CTR and position, grouped and filtered
compare_periods Period-over-period change by query or page
find_opportunities Tag Pilot check: low-CTR and striking-distance queries or pages
inspect_url How Google indexed one URL
list_sitemaps, get_sitemap Submitted sitemaps and their status
connect Connects this computer: returns a link and a code to approve
connection_status Whether this computer is connected

site_url is the property exactly as list_sites shows it: sc-domain:example.com for a domain property, or a URL prefix with its trailing slash, such as https://www.example.com/. You can just name the site in your question; the AI client looks it up.

Dates are YYYY-MM-DD, today, yesterday or NdaysAgo (e.g. 7daysAgo), in Pacific Time like Search Console itself. The default range is the 28 days ending 3 days ago (30daysAgo to 3daysAgo), the latest days with final data.

Connection tools

Your AI client uses these to connect the computer to your free Tag Pilot account and Google. You don't need a terminal: just say "connect my Search Console", or ask a data question.

connect

Starts connecting (or reuses a connect already in progress) and returns a clickable link and a code like ABCD-1234. Open the link in any browser, check the code, approve, and allow Google access. Clients that support MCP URL elicitation also offer to open the link for you. If the computer is already connected, it says so. No parameters.

connection_status

Whether this computer is connected:

Answer Meaning
connected Connected, with the device name shown on the Search Console MCP page
waiting A sign-in is open; shows the link and code again
not_connected Not connected yet; the AI client calls connect
error Something failed, with the next step
Parameter Type Default
wait boolean true Wait up to 25 seconds for an open sign-in to finish before answering

Data tools called before the computer is connected return the same link and code, and the AI client retries your question once you've approved.

list_sites

Every property the signed-in Google account can see: domain properties (all subdomains and protocols) and URL-prefix properties, with the permission level: owner, full, restricted or unverified. Unverified properties are listed but their data can't be read. No parameters.

"Which Search Console properties do I have?"

search_analytics

The Search Analytics report: clicks, impressions, CTR (0–1) and average position.

Parameter Type Default
site_url string Required
start_date, end_date string 30daysAgo, 3daysAgo See Dates above
dimensions list none Any of date, hour, query, page, country, device, searchAppearance. None: one row with the property totals
filters list All must match, see Filters below
search_type string web web, image, video, news, discover, googleNews
data_state string final final: finished days only. all: include fresh, still-changing data. hourly_all: needed for the hour dimension
aggregation_type string auto auto, byPage, byProperty, byNewsShowcasePanel
row_limit integer 100 1–25,000 rows, sorted by clicks
start_row integer 0 Paging: pass next_start_row from the previous result

discover and googleNews don't support grouping by query or aggregation_type: "byProperty".

Filters are a list of {"dimension", "operator", "expression"} that must all match:

[
  {"dimension": "query", "operator": "contains", "expression": "shoes"},
  {"dimension": "country", "expression": "pol"},
  {"dimension": "page", "operator": "excludingRegex", "expression": "/blog/"}
]

The result has the rows, next_start_row when there may be more, and notes on anonymised queries and incomplete data.

"Top 20 queries by clicks last month, with CTR and position."

compare_periods

Period-over-period change by query or page: clicks, impressions, CTR and position for both periods with the deltas, rows marked new or lost, and property totals for both periods (which include anonymised queries). Biggest movers first. Uses 4 Search Analytics queries.

Parameter Type Default
site_url string Required
dimension string query query or page
start_date, end_date string last 28 days of final data The current period
compare_start_date, compare_end_date string the same number of days right before The earlier period
filters, search_type As in search_analytics
sort string clicks_change clicks_change (biggest absolute change), clicks_gain, clicks_loss, impressions_change, position_change
top integer 25 Rows to return, 1–500
rows_per_period integer 5000 Rows fetched per period, up to 25,000. Rows outside this are not compared, so "new" or "lost" can also mean "outside the top N"

A negative position_change means the page moved up.

"Which pages lost the most clicks in the last 28 days compared with the 28 days before?"

find_opportunities

A Tag Pilot SEO check over one period, by query or page:

Parameter Type Default
site_url string Required
dimension string query query or page
start_date, end_date, filters, search_type As in search_analytics
min_impressions integer 100 Ignore rows with fewer impressions
min_position, max_position number 5, 20 The striking-distance range
top integer 25 Rows per list, 1–200
rows_to_scan integer 5000 Rows fetched (by clicks), up to 25,000

"Typical CTR" is a rough benchmark curve (position 1 ≈ 28%, 3 ≈ 10%, 10 ≈ 2%), not Google data. The potential_extra_clicks estimates are for ranking the list, not a forecast.

"Find SEO opportunities on example.com: pages with a low CTR for their position, and queries just off page one."

inspect_url

Google's indexed version of one URL (the URL Inspection API): verdict and coverage state, last crawl, robots.txt and fetch state, the canonical Google chose vs the one you declared (flagged when they differ), sitemaps and referring URLs, rich results and AMP. It's not a live test of the current page.

Parameter Type Default
site_url string Required
url string Required: the full URL, inside site_url
language_code string en-US Language for the messages, e.g. pl

Google allows 2,000 inspections per day and 600 per minute per property, so use it for a handful of important URLs, not whole sitemaps.

"Is https://www.example.com/pricing indexed? Which canonical did Google pick?"

list_sitemaps and get_sitemap

Submitted sitemaps (or the ones in a sitemap index): type, whether it's an index, pending, last submitted and downloaded, errors, warnings, and submitted URL counts per content type. Google no longer reports indexed counts per sitemap; use inspect_url for single URLs.

Tool Parameters
list_sitemaps site_url; optional sitemap_index to list only the sitemaps in that index
get_sitemap site_url, sitemap_url (full URL, e.g. https://www.example.com/sitemap.xml)

"Do any of our sitemaps have errors? When did Google last download them?"

Things to know about Search Console data