Skip to main content
Glama

Read cited sources

read_visibility_sources
Read-onlyIdempotent

Rank the domains or pages AI answers cited in one run, to find the sources worth earning a place on. Each row has how many answers and prompts cited it, its citation share and rate, ownership (yours, a competitor's or third party) and category; page rows also list up to 3 brands named on the page and whether there is an Action for it. It defaults to the latest run; unavailable no_completed_run means none has finished. Rows come in pages; pass next_cursor for more. level domain lists publishers; level url, or passing domain, lists pages. Use read_source_url for one page in depth, and read_visibility_results for the answers that cite it.

Input Schema

NameRequiredDescriptionDefault
levelNodomain counts publishers (the default); url counts individual pages.domain
limitNoHow many rows to return; omit for the default page size.
cohortNocore is the scored prompts (the default); comparison is the prompts that also name a competitor, reported separately; all is both.core
cursorNoThe next_cursor a previous page returned.
domainNoA cited domain such as example.com; with level url, lists its pages.
engineNoRead one engine only; omit for every engine.
audit_idNoA run id (audit_id); omit for the latest run.
market_idNoA market id from get_project_business_context; omit for the default market. Markets are never pooled.
project_idYesA project id that list_projects returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / cohort / description
      Added value: +"core is the scored prompts (the default); comparison is the prompts that also name a competitor, reported separately; all is both."
    • addedInput schema / properties / domain / description
      Added value: +"A cited domain such as example.com; with level url, lists its pages."
    • addedInput schema / properties / engine / description
      Added value: +"Read one engine only; omit for every engine."
    • addedInput schema / properties / level / description
      Added value: +"domain counts publishers (the default); url counts individual pages."
    • addedInput schema / properties / limit / description
      Added value: +"How many rows to return; omit for the default page size."
    • addedInput schema / properties / market_id / description
      Added value: +"A market id from get_project_business_context; omit for the default market. Markets are never pooled."
    • addedInput schema / properties / project_id / description
      Added value: +"A project id that list_projects returned."
  2. Changed1 schema field changed
    • changedInput schema / properties / cohort / enum
      Previous value: -[
      -  "core",
      -  "comparison"
      -]New value: +[
      +  "core",
      +  "comparison",
      +  "all"
      +]
  3. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, closed-world, so the description's added value is in return shape and pagination: row fields (answers, prompts, citation share and rate, ownership, category), page-level brands and Action flag, and next_cursor paging. With no output schema this is genuinely useful context. It stops short of any rate-limit, ordering, or freshness detail beyond 'latest run', so it is good but not exhaustive.

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

Conciseness4/5

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

Front-loaded with purpose and ranking, then row contents, then defaults, then paging, then level semantics, then alternatives. Every sentence carries information. It is one dense block with an awkward clause ('unavailable no_completed_run means none has finished') that costs a little readability.

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

Completeness5/5

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

No output schema exists, and the description compensates by enumerating the row fields and the page-specific extras. Pagination, default run selection, error signal, level behavior, and sibling alternatives are all covered, leaving nothing an agent needs to call it correctly.

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 baseline is 3. The description still adds semantics the schema does not spell out — notably that passing a domain with level url lists that domain's pages — and reinforces the default-to-latest-run behavior for audit_id. cohort and engine are left entirely to the schema, which is acceptable given full coverage.

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?

States a specific verb and resource — 'Rank the domains or pages AI answers cited in one run' — plus the goal ('find the sources worth earning a place on'). This separates it cleanly from read_source_url (one page in depth) and read_visibility_results (the answers themselves).

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

Usage Guidelines5/5

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

Explicit routing: read_source_url for a single page, read_visibility_results for citing answers, and a rule for domain-level vs url-level or domain-filtered listings. It also states the default run and what no_completed_run means, so an agent knows when to switch runs rather than retry.

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