Skip to main content
Glama

get_query_fanouts

Read-only

Query fan-outs: the web searches each AI model ran through the provider's official API before answering the project's tracked prompts. One row per distinct search, sorted by answers, with the engines and prompts behind it, its tags, the tracked brands named inside the search string, the client's citation and mention counts, the hosts cited and matching Search Console rows. limit sets how many rows come back (default 5, max 200) and, above 10, how long the lists in signals, brandsInSearches and sequences are (default the top 10 of each, with their totals); summary: true returns those blocks without rows; distinctSearches, the totals in signals, brandsInSearches and sequences, and the per-engine coverage describe every search in the window. Filters: days, engine, promptType (shopping or other), tag. fanoutSource "peec" returns the sub-queries Peec AI recorded in its own chats instead, for clients with a Peec AI connection (a separate capture, never pooled with ours). The reading rules for these figures arrive in howToRead.

Input Schema

NameRequiredDescriptionDefault
tagNoOnly searches run for prompts carrying this tag (topic).
daysNoWindow in days (default 30).
limitNoRows to return, most answers first (default 5, max 200). The lists in signals, brandsInSearches and sequences hold the top 10, or this many when it is higher.
engineNoFilter to one engine by its short label, e.g. "ChatGPT". Falls back to all engines if it exposed no searches in the window.
summaryNotrue = the whole-window totals and the capped lists, without rows. Default false.
clientIdNoClient id — uses the AI-Visibility project its Overview opens in the app (the newest).
projectIdNoAI-Visibility project id.
promptTypeNoOnly searches run for prompts of this type: shopping = prompt category Shopping, other = every other category.
fanoutSourceNoWhose capture: "native" (default) — the searches our scans captured from the providers' official APIs; "peec" — the sub-queries Peec AI recorded in its chats (logged-out app or API, per engine), imported from the client's Peec AI connection. One source per call, pooled with the other in no figure.
peecQueryKindNofanoutSource "peec" only: Peec's web searches, its shopping (product) lookups, or both (default all). Not a prompt type.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed3 schema fields changed
    • changedInput schema / properties / fanoutSource / description
      Previous value: -"Whose capture: \"native\" (default) — the searches our scans captured from the providers' official APIs; \"peec\" — the sub-queries Peec AI recorded in its chats (logged-out app or API, per engine), imported from the client's Peec AI connection. One source per call; never pooled."New value: +"Whose capture: \"native\" (default) — the searches our scans captured from the providers' official APIs; \"peec\" — the sub-queries Peec AI recorded in its chats (logged-out app or API, per engine), imported from the client's Peec AI connection. One source per call, pooled with the other in no figure."
    • changedInput schema / properties / limit / description
      Previous value: -"Rows to return, most answers first (default 50, max 200)."New value: +"Rows to return, most answers first (default 5, max 200). The lists in signals, brandsInSearches and sequences hold the top 10, or this many when it is higher."
    • addedInput schema / properties / summary
      Added value: +{
      +  "description": "true = the whole-window totals and the capped lists, without rows. Default false.",
      +  "type": "boolean"
      +}
  3. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, which already declare a safe read-only operation, the description discloses substantial behavior: default and maximum limit values, how limit affects list lengths above 10, that summary: true returns blocks without rows, that distinctSearches and the totals describe every search in the window, and that native and Peec sources are never pooled. These are exactly the kind of non-obvious traits an agent needs in order to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, which is good. But the remaining content is packed into one very long, semicolon-heavy paragraph covering row contents, limit behavior, summary mode, aggregates, filters, Peec source handling, and howToRead, making it dense and hard to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and ten parameters, the description does a lot: it enumerates the conceptual fields and aggregate blocks, explains summary and limit behavior, and points to howToRead for interpretation rules. It stops short of fully describing the row structure or how client/project resolution behaves, but it covers what an agent needs in order to invoke the tool and read the main outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter in detail, including limit defaults and list caps. The description still adds meaning by clarifying the relationship between limit, summary, and the aggregate blocks, and by emphasizing that fanoutSource captures are separate. That is useful but largely restates what the schema says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a precise verb, resource, and scope: the web searches each AI model ran through the provider's official API before answering tracked prompts. It also gives the row granularity ('one row per distinct search') and sort order, so an agent can distinguish this from siblings like get_citations or get_signals without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool returns and lists its filters, which implies when it is useful. It also gives a conditional usage rule for fanoutSource 'peec' (clients with a Peec AI connection, never pooled with native). However, it never names a sibling tool or states when to choose this over get_citations, get_signals, or get_ai_answer, so the agent must infer the selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources