Skip to main content
Glama

Get Visibility Timeline

get_visibility_timeline
Read-onlyIdempotent

One metric over time. Defaults metric=visibility and groupBy=brand. Each data record is one Scan × series observation; repeated keys belong to the same series and each page is partial history. groupBy=brand uses brand/competitorId filters and rejects brandId. Platform/region grouping tracks one entity; Topics require explicit brandId to keep the entity fixed across history. Platform aliases combine weighted evidence. Fixed pages of 20 records; history stays oldest first and excludes later completed Scans from continuation. No limit argument. Follow nextCursor with unchanged filters. Historical repairs and metadata edits require restarting. Metric dates are UTC calendar days; completedAt gives the exact Scan finish time. subjectContext is the saved Scan perspective, with null for unavailable legacy context. Percentages retain the complete evidence denominator.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNoPrompt tags from get_filter_options.
brandNoReturned entity identity IDs. Applied after percentage denominators are calculated.
stageNoJourney stage IDs or supported tokens from get_filter_options.
cursorNonextCursor from this tool and subject. Keep filters unchanged; restart after metadata or evidence edits.
metricNoDefaults to visibility; sentiment preserves signed scores and null when evidence is absent.
regionNoRegion codes from get_filter_options; unmeasured regions return empty evidence.
siteIdYesSite or Topic ID from list_sites_and_topics.
brandIdNoEntity identity ID from list_competitors or list_discovered_competitors. Inapplicable to brand-grouped timelines.
endDateNoInclusive UTC metric day, not Scan completion date.
groupByNoDefaults to brand. Platform/region tracks one entity; Topics require brandId.
personaNoPersona assignment IDs or supported tokens from get_filter_options.
productNoProduct assignment IDs or supported tokens from get_filter_options.
categoryNoPrompt categories from get_filter_options.
platformNo
promptIdNoQuestion IDs from list_prompts or get_prompt_results; includes retired prompt evidence.
startDateNoInclusive UTC metric day, not Scan completion date.
brandMentionNoClassifies prompt wording, not mentions in the collected answer.
competitorIdNoTracked competitor IDs from list_competitors; discovered competitors are refused. Combines with brand.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
brandYes
totalYes
metricYes
filtersYes
groupByYes
summaryYes
nextCursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, yet the description adds substantial non-obvious behavior: fixed 20-record partial pages, oldest-first history that excludes later completed Scans from continuation, restart-on-repair semantics, and that percentage denominators retain complete evidence. These are exactly the operational traits structured fields cannot convey.

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?

It is telegraphic and dense, with defaults and the core metric/groupBy framing front-loaded before pagination and edge-case rules. Nearly every clause carries distinct information, though the packed one-fact-per-sentence style could be slightly better grouped.

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?

An output schema exists, so return values need no explanation, and the description covers the remaining gaps for an 18-parameter paginated series: defaults, pagination contract, filter-continuation rules, date semantics (UTC calendar days vs completedAt), and subjectContext nullability for legacy scans.

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 94%, so the schema already documents most parameters and baseline is 3. The description goes beyond it with cross-parameter constraints the schema cannot express: brand-grouped timelines use brand/competitorId and reject brandId, Topics require an explicit brandId to keep the entity fixed, and platform aliases combine weighted evidence.

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

Purpose4/5

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

The opening sentence 'One metric over time' states a specific resource and shape (a time series of a single metric, selected via the metric argument), which separates it from snapshot-style siblings such as get_visibility_overview. It never names or contrasts an alternative sibling explicitly, so it falls short of the 5 bar for sibling differentiation.

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 gives real operating rules: follow nextCursor with unchanged filters, restart after metadata/evidence edits, and that groupBy=brand rejects brandId. However, it never says when to pick this tool over get_visibility_overview or get_prompt_result_trends, so the when-to-use-vs-alternatives dimension is only implied.

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