Aurora Docs
MCP Server

Available Tools

Reference for all tools provided by the Aurora MCP server.

What Can You Do?

Aurora's MCP server gives your AI assistant access to your GEO tracking data. Here's what you can ask:

  • Track your brand — Daily visibility trends for your brand and competitors across AI engines
  • Measure citation share — The share of AI answers that cite each domain
  • Spy on competitors — Per-competitor share of voice, the prompts they win, and the sources fueling them
  • Analyze sources — Which domains and URLs AI models cite most, with source intelligence
  • Read raw answers — The actual text AI engines produced for your prompts
  • Use insights reports — Executive summaries and recommended actions from Aurora's insights engine
  • Shopping analytics — Product win rates, rankings, destinations, and price accuracy in AI shopping answers
  • Manage tracking (opt-in) — Add prompts and competitors, run prompts on demand, and create new campaigns

For complete workflow examples, see Use Cases.

Response Format

All data tools return a structured response with three sections:

{
  "metadata": { "campaign_id": "abc-123", "period": {}, "total_rows": 847, "truncated": false },
  "summary": { },
  "data": [ ]
}
SectionDescription
metadataTime period, row counts, pagination info, and caveats
summaryPre-aggregated data (by brand, by domain, by engine) — useful for quick answers without scanning all rows
dataThe actual data rows (paginated, default 100 per request)

Large responses are automatically truncated to stay within your assistant's context budget; metadata.truncated tells you when to paginate.

Campaign & Prompt Tools

list_campaigns

List all GEO tracking campaigns for your account. Use this first — most other tools need a campaign ID.

list_prompts

List the search prompts tracked in a campaign, including whether they are active and shopping-related. Prompt IDs feed get_prompt_performance and get_answers.

ParameterRequiredDescription
campaign_idYesCampaign ID
include_inactiveNoAlso include deactivated prompts

Visibility & Trend Tools

get_visibility_trend

Daily brand visibility for your brand and competitors, plus completed answers per day so you can spot sampling swings. The summary includes per-brand averages and first-vs-last deltas.

ParameterRequiredDescription
campaign_idYesCampaign ID
daysNoLookback window (default 30, max 365)

get_citation_share

The corrected citation metric: the share of completed AI answers that cite each domain (jobs_citing / total answers), overall and per day. This matches the dashboard chart.

ParameterRequiredDescription
campaign_idYesCampaign ID
daysNoLookback window (default 30)
top_domainsNoTop domains to include (default 20)

get_brand_visibility

Row-level brand visibility entries (date × provider × prompt × brand). Prefer get_visibility_trend for time-series questions.

get_keyword_counts

Keyword frequency in AI answers, with per-keyword and per-provider summaries.

get_prompt_performance

Daily visibility, top cited domains, and keywords for a single prompt.

ParameterRequiredDescription
prompt_idYesPrompt ID from list_prompts
daysNoLookback window (default 30)

Competitive Tools

get_share_of_voice

Own-brand vs competitor share of voice — overall, per AI engine, plus mention-vs-citation rate and average citation position.

get_competitor_report

Per-competitor profiles: share of voice %, mentions per response, citation rate, engine mix, top prompts they win, and their source-type mix — plus the prompt × engine matrix.

Both accept campaign_id (required) and prompt_ids (optional filter). These reports aggregate the whole campaign server-side — call once and reuse the result.

Source & Answer Tools

get_citations

Citation rows showing which URLs AI engines cite, with per-domain citation-share aggregates. The deprecated per-citation visibility score has been removed.

get_sources

Cited-source report at level: "domain" (citation share + public directory info) or level: "url" (per-URL counts, providers, best position, and source intelligence: category, tier, source type, freshness, experimental source sentiment).

ParameterRequiredDescription
campaign_idYesCampaign ID
levelNodomain (default) or url
days / limit / offsetNoWindow and pagination

Note: source sentiment is judged per cited page, not per AI answer, and only a subset of URLs is enriched.

get_answers

The raw text of AI answers collected for a campaign or prompt — what ChatGPT, Perplexity, Gemini etc. actually said. Filter by provider, date range; control length with max_chars.

Insights & Shopping Tools

list_insights_reports / get_insights_report

Browse Aurora's AI-generated insights reports and fetch full sections (share of voice, prompt matrix, content briefs, owned-content audit) plus recommended actions with priority, effort, and expected impact. Use include_sections to keep responses small.

get_shopping_analytics

AI Shopping analytics: per-product visibility/win-rate/rank over time, gainers and losers, destination split, quoted-price accuracy, and query coverage. Only meaningful for campaigns with shopping prompts.

Built-in Prompts

The server also ships ready-made prompts your assistant can run:

PromptWhat it does
weekly_visibility_pulseWeek-over-week visibility narrative with recommended focus
engine_scorecardPer-engine table of where you win and lose
competitor_moversWho gained/lost visibility and suggested counter-moves

Write Tools (opt-in)

Write access is split into two separate grants, because the two kinds of change carry very different consequences.

Write access

If you granted write access on the consent screen (or created a personal access token with write access):

ToolWhat it does
create_promptAdd a new tracked prompt to a campaign. It is first queried on the next daily run (09:00 UTC); use trigger_run to query it right away
set_prompt_activeActivate or deactivate a prompt (archive-style, no deletion)
update_insights_actionAccept or dismiss a recommended action from an insights report
list_competitorsList the own brand and the competitor brands tracked in a campaign
update_competitorsAdd up to 10 competitors per call (name, optional domain and aliases). Existing competitors with the same name or domain are left unchanged; max 20 per campaign
trigger_runQuery a campaign's active prompts immediately instead of waiting for the daily run. Uses provider credits; max 25 prompts per run, 60-minute cooldown per prompt

Campaign creation

Creating a campaign starts recurring, billable tracking across every attached engine and counts against your plan's campaign limit. It therefore needs its own grant — write access alone is not enough, so tokens you issued before this existed cannot start that spend. Tick "Also allow this application to create campaigns" on the consent screen, or create a personal access token with campaign creation enabled.

ToolWhat it does
create_campaignCreate a campaign with its brand, competitors, keywords, prompts and engines

Parameters

ParameterRequiredDescription
nameyesCampaign name (max 255 characters, unique per account)
own_brand_nameyesThe brand being tracked
own_brand_domainnoDomain or website URL, e.g. example.com — normalised to the bare domain
competitorsnoUp to 20 names or { name, domain } objects. Duplicates and the own brand are dropped
keywordsnoUp to 50 topic keywords
promptsnoUp to 50 questions a customer would ask an AI engine (max 500 characters each). Without prompts the campaign collects nothing
country_codenoISO 3166-1 alpha-2 market code, e.g. CH. Sets the geo the engines query from
languagenoISO 639-1 code, e.g. de
search_enginesnoEngine codes, e.g. perplexity, chatgpt, gemini, google_ai_mode, ai_overview. Defaults to all available engines
confirmnoOmit for a preview; true to create

Preview, then confirm

create_campaign is two-step. Called without confirm, it writes nothing and returns:

  • will_insert — exactly the campaign, brands, keywords, engines and prompts it would create
  • estimated_jobs_on_confirm — how many paid engine queries confirming starts (prompts × engines that support the chosen country)
  • plan — your campaign limit and remaining active-prompt headroom
  • warnings — e.g. prompts that contain your brand name, a missing country, engines that don't support the country, or a duplicate campaign name

Your assistant is instructed to show you this preview and only call again with confirm: true once you approve. Confirming starts data collection immediately for every prompt on every engine, then repeats daily at 09:00 UTC.

{
  "preview": true,
  "estimated_jobs_on_confirm": 15,
  "collection": "Confirming immediately starts 15 paid job(s) (3 prompt(s) × 5 engine(s)), then repeats daily at 09:00 UTC.",
  "plan": { "plan_type": "expert", "max_campaigns": 10, "current_campaigns": 1, "remaining_active_prompts": 480 },
  "warnings": []
}

Guardrails

These are enforced by Aurora's servers, regardless of which client calls the tool:

  • Plan limits — your plan's campaign limit, and the active and daily prompt limits including the new prompts
  • Request caps — max 50 prompts, 50 keywords and 20 competitors per campaign
  • No duplicates — a campaign name that already exists in your account is rejected (HTTP 409), so a retried confirm cannot create a second campaign
  • Fixed schedule — prompts always run daily at 09:00 UTC; Light-plan prompts use adaptive querying, as in the dashboard
  • All or nothing — if the brand, prompts or engines cannot be saved, the campaign is removed again before any query is started
  • Validated input — unknown country_code or search_engines values are rejected with the list of valid codes

Without the matching grant these tools are not registered at all.