Skip to main content
Glama

devtune_get_search_rollups

Read-onlyIdempotent

Get materialized fixed-window Search Console, legacy GA4, or selected-provider analytics aggregate totals. Missing or stale freshness pointers serve the last published rollup with its own source dates. Retained evidence is partial with isCurrent false and status unmeasured; report asOfDate and say the numbers are not current. Never-published projects return unavailable coverage with null totals. GSC source dates end at Pacific today minus three days. Report that returned finality boundary. Read with per-contributor coverage metadata. Current totals require every eligible contributor to prove full-window coverage. Stale published totals remain visible without a verified current comparison. Use measurement.availability and explanation to distinguish partial evidence, unavailable verification, verified zero, and complete totals. GSC storedEvidence reports row-presence dates, including legacy and disconnected history; it does not verify continuous coverage. Always report the returned source window. The analytics source also returns paginated daily session aggregates; limit and cursor apply only to those rows. Pass pagination.nextCursor as cursor while pagination.hasMore: it carries the generation the first page read, and a republished rollup or UTC midnight refuses it, so restart without cursor.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "source": "<source>"
    },
    "name": "devtune_get_search_rollups"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoResults per page.
cursorNopagination.nextCursor from the previous page, unchanged. Keep the other arguments the same; omit it for the first page.
offsetNoDeprecated: pass cursor instead. Zero-based result offset.
sourceYesAggregate source: Search Console, legacy GA4, or the selected analytics provider.
pageSizeNoThe same setting as limit. Send either.
generationNoDeprecated: cursor carries the generation.
windowDaysNoRolling window in days: 30 or 90. Defaults to 30.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "pagination.nextCursor from the previous page, unchanged. Keep the other arguments the same; omit it for the first page.",
      +  "maxLength": 1024,
      +  "type": "string"
      +}
    • addedInput schema / properties / generation / description
      Added value: +"Deprecated: cursor carries the generation."
    • addedInput schema / properties / limit / description
      Added value: +"Results per page."
    • addedInput schema / properties / offset / description
      Added value: +"Deprecated: pass cursor instead. Zero-based result offset."
    • addedInput schema / properties / pageSize
      Added value: +{
      +  "$ref": "#/properties/limit",
      +  "description": "The same setting as limit. Send either."
      +}
  2. Changed5 schema fields changed
    • addedInput schema / properties / generation
      Added value: +{
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / source / description
      Previous value: -"Aggregate source: Search Console or GA4."New value: +"Aggregate source: Search Console, legacy GA4, or the selected analytics provider."
    • changedInput schema / properties / source / enum
      Previous value: -[
      -  "gsc",
      -  "ga4"
      -]New value: +[
      +  "gsc",
      +  "ga4",
      +  "analytics"
      +]
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already establish this as a safe read-only, idempotent, non-destructive operation, but the description adds substantial behavioral detail beyond them: stale rollups are served with their own source dates, retained evidence is partial with isCurrent false, never-published projects return null totals, and GSC dates end at Pacific today minus three days. It also explains cursor invalidation behavior, which is valuable operational context.

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?

The purpose is front-loaded, and most sentences carry specific behavioral or reporting requirements. The description is dense and somewhat run-on, with several reporting directives packed together, but it avoids filler and remains information-rich.

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?

For a complex aggregate tool with no output schema, the description does the necessary work: it explains freshness, coverage, null totals, finality boundaries, stored evidence caveats, pagination behavior, and how to interpret measurement availability. An agent has enough context to call the tool and correctly report its output.

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 most parameters, but the description adds meaningful semantics beyond it: limit and cursor apply only to paginated daily analytics rows, cursor carries the generation read by the first page, and a republished rollup or UTC midnight requires restarting without the cursor. It does not need to repeat schema basics, and these details materially improve correct invocation.

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 description clearly states a specific verb and resource: retrieving materialized fixed-window aggregate totals from Search Console, legacy GA4, or the selected analytics provider. It distinguishes the supported sources, but it does not explicitly differentiate this tool from sibling analytics-summary tools, so it falls short of a 5.

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

Usage Guidelines4/5

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

The description gives clear contextual guidance for when the tool is relevant, including stale or missing freshness pointers, never-published projects, and source-specific finality boundaries. It does not explicitly name alternatives, but it provides enough context to understand when to use it rather than guess.

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