<product-name> replaced by your product’s name:
Before you ask
- Connect the server and sign in. See Connect the MCP server.
- If you belong to more than one organization, put your organization slug in the same message. See Find your organization slug.
- Use the product name as it appears in TPC.
- Your product needs a Query bank. If the keyword list comes back empty, TPC has not prepared one for your product yet.
- To follow results, mark keywords as targeted on the Query bank page in TPC first. See Find the searches behind your prompts.
- Name a date range if you want one, as a start and end date, no more than 180 days back and not in the future. Without one, the agent uses the default range, which starts at the keyword’s own target date for one keyword, or at the earliest target date for results.
What the agent does
The agent chooses its own calls. A typical run follows these steps.1
Find the product
list_organizations finds your organization slug if you did not give it. list_products returns the product’s slug and ID.2
List the keywords
list_query_bank_keywords returns your keywords, the ones that cover the most prompts first. Each row has the keyword’s ID and label, how many prompts and searches it covers, and its target, which is the page you are writing for it and since when, or null when you have not targeted it. The result also lists the domains checked for indexing, taken from the latest full Google check that checked at least one search, and totals.3
Look at one keyword
get_query_bank_keyword takes a keyword ID from the list. Its date range defaults to the keyword’s own target date through today, at most 180 days back. It returns the keyword’s prompts, its target, its rank history, and a recommendation. The rank history is grouped by engine (Google, then Bing, then Brave), newest first within each engine, up to 20 checks per engine. For a targeted keyword it also returns pageStatus, which says how the target page is doing with search engines and AI engines, and searchPerformance, which says how Google showed the target page, from Search Console. pageStatus is null when the keyword is not targeted, and searchPerformance is left out.4
Check whether targeting paid off
get_query_bank_results compares share of voice before and after targeting, for targeted prompts against other prompts. Targeted prompts are those with at least two Gemini searches in one targeted keyword. Other prompts have at least one Gemini search and none of them belong to a targeted keyword. Every remaining prompt is in neither group, such as one with a targeted search but fewer than two in each targeted keyword, or one with no Gemini searches. The comparison period is the date range, by default from the earliest target date (at most 180 days back) to today, against an equally long period just before it. It also lists each targeted keyword with its page status and Google rank before and now. The result is { comparison }, and comparison is null when no keyword is targeted yet, or when a custom range ends before the first target date.Recommendations
When a keyword has a recommendation, it has one of three kinds.Page statuses
A targeted keyword’s page has one of these statuses.Reading the numbers
-
For each engine on a keyword’s page status,
indexedistrue,false, ornull.indexInconclusiveistruewhen the lookup ran but couldn’t confirm: it returned a full page of results, or the engine reported more results than it returned, and none was this exact page, because other pages under the same address can fill it. Thenindexedisnull, and the engine counts as unchecked, so it never makes the pagenot_indexed.indexedofnullwithindexInconclusiveoffalsemeans there is no lookup result yet, or the engine has no page lookup (indexSupportedisfalse). -
indexSourcesays where an engine’sindexedcame from:search_consolewhen Google’s URL Inspection in your connected Search Console property answered,searchwhen a search for the page answered, ornullwhen it hasn’t been checked. When Search Console can’t answer for a page, the check falls back to a search. For Google,indexReasonis Google’s reason when Search Console says the page is not indexed, andnullotherwise.lastCrawledAtis when Google last crawled the page, andgoogleCanonicalis the address Google treats as the main version of the page, given only when it differs from the target page. Both arenullunless Search Console answered. Brave givessearchonce checked; Bing has no page lookup, so itsindexSourceis alwaysnull. -
searchConsoleon a keyword’s page status isconnected,needs_reconnect, ornot_connectedfor the target page’s domain, with the connectedproperty. Withneeds_reconnect, Google checks use a search until you reconnect Search Console in TPC. It isnot_connectedwhen the keyword has no page. -
searchPerformanceis how Google showed the target page over the date range, read from Search Console. Itsstateis one of the following.okhasimpressions,clicks,position(the average position, weighted by impressions), andsearches, the page’s top 10 searches by impressions. Each search haskeywordSearchset totruewhen it is one of this keyword’s searches, andkeywordSearchCountis how many of this keyword’s searches showed the page.searchesis empty when Google doesn’t list the searches that only a few people made, even thoughimpressionsis above 0.no_impressionsmeans the domain is connected but Google showed the page no times in the range.not_connectedmeans the page’s domain is not connected to Search Console.needs_reconnectmeans you must reconnect Search Console in TPC.no_target_pagemeans the keyword has no page address.errormeans the Search Console lookup failed. It does not fail the rest of the keyword.
asOfis the latest day Search Console has data for. It usually runs 2 to 3 days behind today, so the last days of the range can be missing. -
citedAvailableisfalsewhen citations couldn’t be loaded or the lookup hit its row cap. A keyword whose status isn’tcitedmay then still be cited, and the counts incitedmay be too low. -
Share of voice values are fractions, so
0.12means 12%. Before and after run from 0 to 1. A change is the value after minus the value before. It runs from -1 to 1 and is negative when that group’s share of voice fell. The difference between targeted and other prompts is the targeted change minus the other change. It runs from -2 to 2 and is negative when targeted prompts’ share of voice moved less than other prompts’, even if both rose. -
In a keyword’s rank before and now,
nullmeans no Google check covered the keyword by then, or the check that did has no search results for the keyword’s searches. A rank ofnullinside a check means it was checked and none of your pages is in the top 10. A rank is the best position of any of your pages for the keyword’s searches, not only the target page.
What you get back
- The keywords the agent suggests working on, with the recommendation behind each
- For each targeted keyword, the page status and Google rank before and now
- Share of voice for targeted prompts compared with your other prompts
tpc query-bank command.