readOnlyHint: true, openWorldHint: false, so a client can call any of them without stopping to confirm.
What the server tells an assistant
The server sends this text once, when a client connects.Shared arguments
Each tool lists which of these it takes. A tool refuses an argument that it does not list. It also refuses a value outside a closed set, rather than reading it as no filter.Tools
get_overview
Visibility overview. The headline numbers for the whole project:- visibility, share of voice, sentiment and recommendation for this brand
- the per-day series behind the chart
- every monitored competitor
- the most-cited domains
- how many answers each platform produced.
visibility is the fraction of analysed answers that mention the brand. share_of_voice is that brand’s share of all mentions of monitored brands. Both are 0..1. delta compares the window to the one before it. It is null until that history exists.
monitored_runs is how many answers named this brand or any monitored competitor. A low visibility means different things in a category where answers name nobody and in a category that the customer is losing. monitored_runs tells the two apart.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
get_digest
Weekly digest. What changed, calendar week over calendar week. The weekly Digest mail uses the same read. It compares the last full ISO week (Monday to Sunday, UTC) with the week before it, and returns:- this brand’s visibility, with both values
- competitor movers, each with a movement verdict (appeared, disappeared, up, down)
- share-of-voice shifts past a reporting floor, with recommendation and sentiment counts from both weeks
- prompts that started or stopped naming this brand
- one highlighted recommendation flip, when a single platform-and-prompt pair cleanly collapsed
- domains newly cited
- the Actions first built last week
- the standing alarms (crawlers_blocked, prompts_silent)
- a
perceptionblock, when perception answers were collected in the week.
perception block holds this brand’s top attribute, with its score and week-over-week delta. The delta is null when the previous week measured nothing. first_objections lists objection labels first seen in the stored corpus. That is a claim about stored history, not about the platforms.
The calendar fixes this window, but every other tool uses a trailing period. Its figures may therefore legitimately differ from get_overview’s figures. Quote its week span when you report them. previous null means a first measured week, or the first week after a resume. In that case the result holds standing numbers only, and every delta field is empty. Report no change. measured false means the last full week holds no analysed answers.
Takes project from the shared arguments.
list_prompts
Prompt results. One row per tracked prompt. Each row holds the wording, how many answers the prompt produced, how many failed, and this brand’s visibility, mentions and citations in it. Weak prompts appear here. A row flagged silent is a prompt whose recent answers named no company at all. That prompt is not a buying question. It is not one that the customer is losing.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
list_competitors
Competitor breakdown. Every monitored brand with its visibility, share of voice, sentiment split and recommendation split. It also lists the brands that the analysis detected in answers and that nobody monitors yet. Use the detected list to find competitors that the customer has not noticed.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
list_sources
Cited sources. Which domains the platforms cite when they answer these prompts, how often, and sample answers behind each domain. This shows who supplies the answers in this category. list_actions returns the worklist of what this brand can do about it.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
list_searches
Searches. The web searches the platforms ran before they answered these prompts, grouped by wording: how often each ran, the prompts behind it and the monitored brands its wording names. Only ChatGPT and Grok report their searches. totals.answers_reporting counts the answers from those platforms, which is the denominator for any rate.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
list_actions
Actions. The worklist: what this brand can do to appear in more answers, built from the stored answers after each capture, over the last 28 days. Each Action has akind, a target and a headline that words the verb. answers counts the losing answers it touches: answers that named a competitor and not this brand. For an opening it counts perception answers instead. state is the customer’s: open, done, dismissed, or proposed for an Opening not yet confirmed. The open rows in the default view carry their evidence: the cited pages, the competitors the answers named, the prompts, the searches run before answering, and sample run ids for get_answer. The claim about a page is co-occurrence in the answers, never the page’s own contents. covered_answers of lost_answers sizes the list. Read-only.
Takes project from the shared arguments.
list_gaps
Actions (older name). The older name of list_actions. It answers the same. Takesproject from the shared arguments.
list_suggestions
Prompt suggestions. Prompts that the product proposes for this project. Each one comes from one thing that the project’s own answers showed:- a prompt that has named no company for a week
- a page where competitors are cited and this brand is not
- a web search an assistant ran that names competitors and not this brand.
reason says which. evidence is that thing itself, not a rationale. A gap row names the competitors that the answers put next to the page, never what the page itself says. A search row names the competitors in the search’s own wording. Read-only: only the customer generates and accepts suggestions, in the app.
Takes project from the shared arguments.
list_markets
Market breakdown. Collection and results per market: how many answers each tracked market produced, and how this brand does in each. This tool ignores the market filter, because this read is the comparison.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
list_personas
Persona breakdown. The project’s personas (who asks each prompt) with their ids, each persona’s sentence if it has one, how many prompts carry it, and how this brand does in the answers to those prompts. The last row is the prompts with no persona. This tool ignores the persona filter, because this read is the comparison. A persona’s sentence is sent in front of every prompt attached to it, so the answers are what an assistant tells that buyer.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
list_topics
Topic breakdown. The project’s topics (what each prompt is about) with their ids, how many prompts are in each, and how this brand does in the answers to those prompts. The last row is the prompts with no topic. This tool ignores the topic filter, because this read is the comparison.
Also takes
platform, market, persona, topic, competitor, period, project from the shared arguments.
get_perception
Perception. How the platforms characterise each cast brand when asked about it outright, on perception’s own weekly branded question set. It returns attribute and objection labels, each with verbatim quotes and the run ids behind them. A label scores 0-100: first mention 100, minus 10 a rank. The score is averaged over every analysed answer of that brand and family in scope, absences included. This is a separate corpus: tracked prompts and their metrics never move these numbers.entitled false beside empty lists is the plan’s answer, not an error.
Takes platform, market, period, project from the shared arguments.
list_prompt_runs
Answers to one prompt. Every answer collected for one prompt, newest first, with the platform, market, date and the brands it named. The list includes failures, although they count in no denominator. They record how often a platform blocked FullReach AI. The list also includes ‘not_shown’ rows, where Google rendered no AI Overview for the query. That is a fact about Google, not a failure. Each row holds a run id for get_answer.
Also takes
platform, market, period, project from the shared arguments.
list_projects
Every tracked brand on this organization. The projects of this organization, each with the id to pass asproject to every other tool. A project is one tracked brand.
Call this first when the organization runs more than one project. The other tools refuse to guess which project a question is about, rather than answer for the wrong one. An organization with a single project never needs this tool. A key scoped to one project reads only that project.
paused means that the project is no longer measured. Its stored answers stay readable, but no new answers arrive. Report that it is paused. Do not report its numbers as current.
Takes no arguments.
get_answer
One analysed answer. The full text of one collected answer, with the evidence behind its metrics:- every brand that the analysis found, with the character range where it found the brand
- the sentiment and recommendation for each brand
- the cited sources.
Also takes
project from the shared arguments.
Each call counts against the organization’s per-minute limit. Plan limits has the number.