MCP endpoint for AI prompt fan-out (fan-out query) analysis.
When an AI engine runs a web search to answer a tracked prompt, it decomposes the prompt
into multiple targeted fan-out queries (the "fan-out"). This tool exposes those fan-out queries,
flags which fan-out queries are BRANDED — a brand counts only when it appears as a whole word/phrase in the fan-out query text (brand 'Arc' matches 'arc crm pricing', not 'architecture'), measures fan-out query specificity,
and reports how fan-out depth shapes brand mentions and citation diversity.
Modes include brand_impact (per-brand fan-out query correlation) and
provider_comparison (cross-provider fan-out analysis for shared queries).
REQUIRED: account_id is mandatory. Call tracked_configs with config_type=accounts to discover your account_id.
mode=records (DEFAULT) — one row per engine RESPONSE with fan-out queries, branded split, brands,
citations, counts, and avg_fan_out_query_token_count. ALWAYS narrow with filters.
mode=fan_out_queries — one row per INDIVIDUAL fan-out query (exploded) with text, position,
fan_out_query_is_branded, fan_out_query_token_count. ALWAYS filter.
mode=metrics — ONE row of summary stats: avg/min/max/median/p90/p95 fan-out, histogram,
branded stats, avg_fan_out_query_specificity.
mode=breakdown + dimension=<X> — one row per group ranked by avg fan-out.
mode=trend + dimension=<X> — group aggregates per collection date.
mode=brand_impact — per-brand fan-out query correlation: how often each brand appears in
fan-out queries and how that correlates with citations.
mode=provider_comparison — cross-provider fan-out for queries seen in 2+ providers.
mode=discover + dimension=<X> — distinct values of dimension X.
mode=brand_fan_out_query_share - one row per brand: of ALL individual fan-out queries run in the
window, how many mention the brand (whole-word) and what share that is. Zero-share brands are
included. Use for "what fraction of decomposed queries are about brand X"; for the
response-level question ("in what % of responses mentioning X did it appear in the fan-out")
use brand_impact instead.
mode=outliers - responses whose fan-out exceeds the p90 of whatever slice your filters select.
Each row carries p90_threshold and account_avg_searches so the comparison is self-contained.
Use for "unusually deep searching" questions; no threshold needed.
COLUMNS PER MODE (plan follow-up calls if a field you need is absent):
- records: date, prompt, topic, prompt_type, intent, persona, ai_search_engine, data_provider,
amount_of_searches, fan_out_queries, branded_fan_out_queries, unbranded_fan_out_queries,
has_branded_fan_out_query, brands, citations, brand_count, citation_count, distinct_searches,
distinct_citation_domains, fan_out_bucket, avg_fan_out_query_token_count, web_search
- fan_out_queries: date, prompt, topic, prompt_type, intent, persona, ai_search_engine,
data_provider, amount_of_searches, fan_out_query, fan_out_query_index, fan_out_query_is_branded,
fan_out_query_token_count, fan_out_bucket, brands, brand_count, citation_count,
distinct_citation_domains
- metrics: fan_out_responses, distinct_prompts, avg/min/max/median/p90/p95_searches, bucket_under_2,
bucket_2_4, bucket_5_7, bucket_8_10, bucket_11_plus, responses_with_branded_fan_out_query,
avg_branded_fan_out_queries, avg_brand_count, avg_citation_count, avg_distinct_searches,
avg_distinct_citation_domains, avg_fan_out_query_specificity
- outliers: records columns (minus branded arrays/web_search) + p90_threshold, account_avg_searches
- breakdown: dimension_value, prompt_type (only when dimension=prompt), fan_out_responses,
distinct_prompts, avg_searches, max_searches, median_searches,
responses_with_branded_fan_out_query, avg_branded_fan_out_queries, avg_brand_count,
avg_citation_count, avg_distinct_searches, avg_distinct_citation_domains,
avg_fan_out_query_specificity
- trend: breakdown columns (no prompt_type/median) keyed by date + dimension_value
- brand_impact: brand_name, brand_rank, responses_mentioning_brand,
distinct_prompts_mentioning_brand, responses_with_brand_in_fan_out_query,
fan_out_query_appearance_rate, avg_fan_out_when_mentioned,
avg_response_brand_count_when_mentioned, avg_response_citation_count_when_mentioned,
avg_response_distinct_domains_when_mentioned
- brand_fan_out_query_share: brand_name, brand_rank, fan_out_queries_mentioning_brand,
total_fan_out_queries, fan_out_query_share, distinct_prompts_with_brand_in_fan_out_queries
- provider_comparison: prompt, data_provider, responses, avg_searches, max_searches,
avg_brand_count, avg_citation_count, avg_distinct_domains, responses_with_branded_fan_out_query,
avg_fan_out_query_specificity
- discover: dimension_value, fan_out_responses
ai_query_fan_out_insights