Rankings and Google data
The MCP tools for tracked keywords, AI Overviews, Search Console, Analytics and index coverage, and the refusals that stop a missing connection reading as zero.
These tools cover both halves of Google: what RankX AI measures itself, which is your position on tracked keywords and whether an AI Overview appeared, and what Google reports about you, which is Search Console and Analytics once those are connected.
The two halves are deliberately separate. Tracked rank is RankX AI checking a keyword; Search Console's average position is Google's own aggregate. They measure different things and must never read as interchangeable.
| Tool | Scope | What it does |
|---|---|---|
get_ai_overview_presence | read | How often Google AI Overviews appeared for a Website's tracked keywords, and whether the brand was named or cited inside them. Unknown is a real third state, never zero. |
get_aio_citations | read | The domains and pages Google's AI Overviews cited for a Website's tracked keywords, ranked by how often each was cited. |
get_analytics_traffic | read | Google Analytics sessions, page views and active users for a Website, by page viewed or by session landing page. It refuses rather than reporting zero when Analytics is not connected. |
get_google_integration_status | read | Whether Search Console and Analytics are connected for a Website, which property each points at, when each last synced, and what to do about it. This is how an assistant explains missing figures instead of guessing. |
get_index_coverage | read | Google's index status across the pages of a Website that have been inspected, plus the findings that follow from it. The response states its own denominator, because it describes pages inspected rather than every page on the site. |
get_rank_tracking | read | Tracked keywords with their latest search positions to depth 20. It distinguishes not in the top 20 from never checked, and reports why a scheduled check was skipped. |
get_realtime_visitors | read | How many people are on the Website right now, from Analytics realtime. This is the only tool that calls Google live; every other Google read serves already-synced data. |
get_search_console_drilldown | read | The link between queries and pages: which search terms bring people to one page, or which pages Google shows for one term. The second mode is how you find two pages competing for the same query. |
get_search_console_opportunities | read | Two analytical views: how many queries sit in each position band with the clicks each earns, and the measured click difference on queries where Google shows an AI Overview. It refuses to conclude on a sample too small to support one. |
get_search_console_performance | read | Clicks, impressions, click-through rate and average position for a Website, broken down by query, page, country, device, search surface or rich-result appearance. |
get_search_console_trend | read | The same figures per day, plus a comparison with the equal-length window before it. The most recent day or two are marked provisional, because Google has not finalised them. |
inspect_url | read | What Google itself says about one page: indexed or not, its own reason if not, which canonical it chose, and when it last crawled. This is the only way to see a page that is not indexed at all. |
list_sitemaps | read | The sitemaps Search Console holds for a Website, when Google last read each one, and any errors it reports. Read only: submitting a sitemap is done in Search Console itself. |
run_rank_check | spend | Runs a live search-position check for one tracked keyword, including AI Overview capture. |
save_keywords | write | Starts rank tracking for up to twenty keywords. Per-keyword results: a duplicate or a plan-limit refusal is reported on its own row and never fails the batch. |
untrack_keyword | write | Stops rank tracking a keyword and frees its slot against the plan limit. Reversible: the history is kept and re-adding the phrase resumes tracking. |
update_keyword | write | Changes a tracked keyword's device, market, language or check frequency. The phrase itself cannot be changed; untrack it and add the new phrase instead. |
The table above is generated from RankX AI itself rather than written by hand, as at 19 August 2026 (source 377ef780). When the product changes, this page changes with it.
Tracked rankings
get_rank_tracking returns tracked keywords with their most recent positions, to
depth 20, and it distinguishes three states that are never merged:
| State | Meaning |
|---|---|
| Ranked | Found, position 1 to 20 |
| Not in the top 20 | Checked, and not present in the first twenty results |
| Never checked | No check has run for this keyword |
Collapsing the last two into "no position" turns an unmeasured keyword into a failing one. The tool also reports why a scheduled check was skipped when one was, so a gap in a series has an explanation.
save_keywords starts tracking up to twenty keywords in one call and returns
per-keyword results: a duplicate or a plan-limit refusal is reported on its
own row and never fails the batch. untrack_keyword is reversible, keeps the
history and frees the slot against the plan limit. update_keyword changes
device, market, language or frequency, but not the phrase: to change the
phrase, untrack it and add the new one.
run_rank_check is the spend tool here. It runs a live position check for one
keyword, including AI Overview capture.
AI Overviews
get_ai_overview_presence reports how often an AI Overview appeared for your
tracked keywords, and whether your brand was named or cited inside it.
"Unknown" is a real third state: an overview was detected but not captured. It is not "you were not mentioned", and treating it as one manufactures absences that were never measured.
get_aio_citations returns the domains and pages Google's AI Overviews cited,
ranked by citation count. These are not the same as AI Answer Citations,
which come from the assistants: different engine, different collection, different
cadence. Citations, two kinds is the page
that settles it, and it is worth reading before reporting either.
Both are collected by the rank tracker on tracked keywords, so adding keywords widens them and adding prompts does not.
Search Console
Four tools, and they answer four different questions:
get_search_console_performanceanswers "which queries and pages", broken down by query, page, country, device, search surface or rich-result appearance. Its totals are the totals Google itself reports, so they match Search Console.get_search_console_trendanswers "is this growing or falling, and when did it change", day by day, with a comparison against the equal-length window before it.get_search_console_drilldownanswers "what brings people to this page" or "which pages compete for this term". The second mode is how you find two of your own pages fighting over one query.get_search_console_opportunitiesgives two analytical views: how many queries sit in each position band with the clicks each band earns, and the measured click difference on queries where Google shows an AI Overview.
Three properties matter when reporting any of them.
Position improves as the number falls, so get_search_console_trend reports
it as a delta rather than a percentage change. A 20% "increase" in average
position is a phrase that means nothing.
The most recent day or two are provisional. Search Console publishes on a two to three day delay at source, so those days are marked, counted separately, and must never be reported as a decline. They will rise.
The opportunities tool refuses to conclude on a small sample. Its AI Overview comparison needs enough queries on both sides, and below that it says so rather than dressing a two-query gap as a finding.
Analytics
get_analytics_traffic reads already-synced Analytics data by page viewed or by
session landing page. Those are different concepts, synced from different
reports: a landing page is where a session entered, and it carries engaged
sessions where the page dimension does not.
Its user figure is summed per row, so it is not a count of unique visitors to the site. Reporting it as one is the easiest mistake to make with this tool.
get_realtime_visitors is the only tool on the whole server that calls Google
live. Everything else reads stored data, which is fast, free and survives an
upstream outage, and going live would not make Search Console fresher because the
delay is Google's rather than the sync's. Realtime is live because no stored
aggregate can answer "who is on the site right now" at any sync frequency.
Index coverage
Clicks and impressions only exist for pages Google has already indexed, so a page left out of the index is invisible in every other Google tool here. Two tools close that gap.
get_index_coverage reports index status across the pages that have been
inspected, plus the findings that follow: pages not indexed that still earn
impressions, pages where Google chose a different canonical than the page
declares, pages blocked by robots or a noindex tag, and pages that changed after
Google last crawled them. Its counts describe the pages inspected, not every
page on the site, and the response states its own denominator.
inspect_url is the one page view, and it is the only way to see a page that
is not indexed at all. Verdicts are cached, and a per-Website daily allowance set
by Google applies, which the response reports.
list_sitemaps is the third piece of the same story: a sitemap that was never
submitted, or that Google has not re-read in weeks, stops new pages being
discovered and is invisible in traffic data. It is read-only, because submitting
a sitemap is done in Search Console itself.
Both Google tools refuse rather than reporting zero
This is the most important behaviour in the group. A Google connection is in one of four states and only one yields figures:
| State | What the tool does |
|---|---|
| Not connected | Refuses, and says to connect it |
| Reconnect required | Refuses, and says to reconnect it, with the last successful sync date |
| Never synced | Refuses, and says to wait for the first sync |
| Ready | Returns figures. An empty range now genuinely means a quiet period |
get_google_integration_status exists so an assistant asked "why is there no
traffic data" can answer precisely instead of guessing. It is free to call, and
calling it before reporting an absence is the difference between a useful answer
and a wrong one. It also covers the case where a connection is healthy but no
property has been selected, which otherwise looks exactly like "wait for the
sync" and never resolves.
Example prompts
"Show me tracked keyword positions for my main site, and separate the ones that have never been checked from the ones outside the top 20."
"Did my Search Console traffic fall this month? Compare against the previous equal window and tell me if the last days are provisional."
"Which queries sit in positions 4 to 10, and how many clicks does that band earn? Then tell me whether an AI Overview is showing on them."
"Which pages does Google show for the term 'ai visibility tracking', on my site? I want to know if two of my pages are competing."
"Why is there no Analytics data for this website?"
"Which of my pages are not indexed but still earning impressions?"
Where to go next
- Citations, two kinds, before reporting either citation set.
- Why traffic data is missing, for the four availability states in full.
- Metrics defined, for what each figure means.
Websites, brand and AI visibility
The MCP tools that resolve a Website, read its brand profile and competitors, manage tracked prompts, and read AI visibility and AI Shopping.
Keywords and content
The MCP tools for keyword discovery, search trends, topic clusters, content briefs and article generation, and the two that dispatch and poll.