AEO
AI/answer-engine-optimization reports.
get_aeo_report
AI answer-engine visibility report for a SINGLE location — how visible the business is across AI assistants (ChatGPT, Gemini, Perplexity). Requires locationId. Returns: generatedAt; configuredEngines (engines with an API key); the overall visibility score (0–100) + per-engine scores; the keyword map (prompts where each engine surfaces the business, with a % hit-rate bubble per prompt); the prompt × engine matrix (per cell: score, whether you were mentioned, your rank, and the verbatim answer excerpt); a competitor gap table; the ranking-gap distribution (share of answers where you rank 1–3 / 4–10 / 11+, per engine + All); the optimization-insight radar (Relevance / Reviews / Engagement / Freshness / Citations, per engine); citations coverage (sources AI engines cite, each active/detected/missing, per engine); and sentiment mentions. Pass `prompt` to drill into ONE row of the matrix — you get that prompt's cells plus the headline scores and nothing else, which is what you want when the caller clicked a single cell. Backs the AEO single-location page.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_aeo_report",
"arguments": {
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Response shape shown for illustration — the actual content depends on the tool and your data.
get_aeo_rollup
AI-visibility roll-up across a client's (or the whole agency's) locations — the AEO 'all locations' table. Optional clientId scopes to one client; omit for agency-wide. Optional tags narrows to locations carrying ANY of the given internal tags (discover them with list_location_tags). Returns rows (per location: name, city, tags, overall AI-visibility score 0–100, per-engine ChatGPT/Gemini/Perplexity scores, latest report generatedAt + yearMonth; null score = no report generated yet) plus configuredEngines. Backs the AEO all-locations rollup.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_aeo_rollup",
"arguments": {}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Response shape shown for illustration — the actual content depends on the tool and your data.
enqueue_aeo_report
Trigger (re)generation of a SINGLE location's AI answer-engine visibility report in the BACKGROUND. Requires locationId. Queues the same concurrency-capped job the app uses (queries each configured engine — ChatGPT/Gemini/Perplexity — across discovery prompts, then scores). Idempotent per month: skips a location that already has a report for the current year-month unless force=true. Returns immediately with { enqueued: true } — the report is written asynchronously, so poll get_aeo_report afterwards to read the result. Use this to create or refresh AEO data for a location.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "enqueue_aeo_report",
"arguments": {
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Response shape shown for illustration — the actual content depends on the tool and your data.