mcp:read scope (granted automatically).
Write tools additionally require mcp:write, which you grant explicitly on
the consent page. Calling a write tool without it returns JSON-RPC error
-32002 missing scope: mcp:write.
Read tools
Write tools
Notable tool behavior
get_brand_reportin raw mode (nogroup_by) orders rows newest first (date descending), so the 500-row-per-call cap returns your most recent window instead of the oldest day of a multi-day query. Grouped mode (group_byset) stays chronological, oldest first.get_url_reportrows include abrand_mentionedboolean: true when your own brand was mentioned in at least one chat that cited that URL during the window, the same signal the dashboard’s Sources table uses for its “Mentioned” column.get_chatrows includeprompt_text, the source prompt’s text at capture time; null when that prompt has since been deleted.list_search_queriesandlist_shopping_queriesreturn the fan-out sub-queries the AI engines ran while answering your project’s prompts. Raw mode is one row per (query, chat), starting withchat_id: pass that with the row’sdatetoget_chatto open the full captured chat behind any query. Each row also carries anown_brand_citedboolean (true when that same chat also cites one of your own-brand domains). Optionalgroup_by=queryinstead returns one row per distinct query withoccurrencesandown_brand_cited_count: the content-gap list of queries the engines ran that never cite you, ranked by how often each one came up.list_shopping_queriesis the same shape filtered to shopping sub-queries (naturally rarer, since they only appear behind a rendered product carousel). Both require astart_date/end_datewindow, capped at 92 days per call;limit/offsetmust be a real integer (a number, or the exact string form of one, like"40", the same rule every paginated tool’slimit/offsetfollows) or the call fails with-32602(error.data.code=MCP_ARG_INVALID) instead of silently falling back to the default page size.summary.channels_capturingis derived per call from this project’s own captured data in the requested window (any query type, ignoring this call’s channel/prompt filters), so it is always a superset of the channels in the returned rows and can never contradict them; an empty result means nothing was captured for this project in this window, not that no fan-outs happened anywhere (see issue #1774 for which channels have fan-out capture wired at all). Absence of data is not evidence of absence of fan-outs, the same principle behind every partial-coverage tool in this catalog. Data-quality caveat:perplexity-0rows currently mix Perplexity’s related/suggested-question strings in with executed search fan-outs (issue #2101); weighperplexity-0aggregates accordingly until that lands.update_domain_classificationwrites are scoped to your project: a manual reclassification only changes what your project sees. Other projects citing the same domain, including ones in a different org, are unaffected. Every report or table that shows a domain’s classification reads the effective value: your project’s override if you’ve set one, otherwise the shared classification.classify_promptsis subject to a per-organization daily budget set by your plan. Exceeding it fails the whole call with aPLAN_LIMIT_REACHEDerror naming the UTC time the budget resets.