Skip to main content
Glama

get_rankings

Read-only

A client's keyword rankings in Google and Bing: per keyword the position among organic results and among everything on the page, the change since the last comparable check, the ranking page and whether it is the page the client wants to rank, the local pack position, whether an AI Overview was shown and cited the site, and when it was checked. Also a summary over the keywords of the chosen engine and device (top 3, 10 and 20 with sample size, average position, distribution, movement), the same per tag and for branded and non-branded keywords, monthly search ranges per keyword, and competitors' positions. Rows are paged and filterable (column, tag, search, branded, within, movement, aiOverview, needsAttention, compareDays). Definitions arrive in howToRead.

Input Schema

NameRequiredDescriptionDefault
tagNoOnly keywords with this tag.
pageNoDefault 1.
sortNoDefault keyword. volume = monthly searches.
columnNoEngine, device and list the summary, filters and sorting refer to, e.g. "google.desktop.organic", "google.mobile.organic", "bing.desktop.organic", "google.desktop.local_finder". Default: the first one switched on (see get_rank_tracking_setup).
searchNoOnly keywords containing this text.
withinNoOnly keywords ranking in the top 3 or the top 10.
brandedNoOnly keywords that name the client's brand terms (branded) or none of them (nonbranded): the client's name, website name and AI Visibility brand names plus the terms added in its brand terms, matched as whole words, any case, accents ignored. Narrows the summary too. Omit for every keyword.
crossedNoOnly keywords that entered or left the top 3 / top 10 between the two checks compared. Outside includes not found.
clientIdYesClient id (from list_clients).
movementNoOnly keywords with this kind of change against the check they are compared with.
pageSizeNoDefault 50, maximum 200.
targetIdNoWhose positions to read (from get_rank_tracking_setup targets). Default: the client's own site.
directionNoDefault asc. Keywords without a number always come last.
aiOverviewNoOnly keywords by AI Overview state: cited = shown and the site is a source; present = shown, site not cited; unknown = shown but its sources were not delivered.
compareDaysNoMeasure every change against the newest check of the same kind of results page that is at least this many whole UTC days older, instead of the last comparable check. A keyword with no check that old is not compared.
rankingPageNoOnly keywords whose ranking page differs from / matches the page the client wants to rank.
needsAttentionNoOnly keywords whose last search failed, is unconfirmed, was partial, came back as a different kind of results page, or has an AI Overview with unknown sources.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / needsAttention / description
      Previous value: -"Only keywords whose last search failed, was partial, came back as a different kind of results page, or has an AI Overview with unknown sources."New value: +"Only keywords whose last search failed, is unconfirmed, was partial, came back as a different kind of results page, or has an AI Overview with unknown sources."
  2. Changed6 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
    • addedInput schema / properties / compareDays / anyOf
      Added value: +[
      +  {
      +    "const": 7,
      +    "type": "number"
      +  },
      +  {
      +    "const": 28,
      +    "type": "number"
      +  },
      +  {
      +    "const": 90,
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / compareDays / enum
      Removed value: -[
      -  7,
      -  28,
      -  90
      -]
    • removedInput schema / properties / compareDays / type
      Removed value: -"number"
    • addedInput schema / properties / page / maximum
      Added value: +9007199254740991
  3. First observed

TDQS

A3.8/5.0
Behavior4/5

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

The read-only annotations already establish the safety profile, and the description adds substantive behavioral context: ranking metrics, summary coverage, paging, filtering dimensions, compareDays semantics, and howToRead definitions. It does not cover auth or rate limits, but for a read-only analytics tool it provides useful operational detail beyond the annotations.

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 the length is justified by the breadth of returned data and filtering options. However, the second sentence is a dense enumeration, and some filter names repeat what the schema already states more clearly.

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?

With no output schema and 17 parameters, the description carries the burden of explaining the returned data, and it does so thoroughly: per-keyword metrics, summary aggregates, monthly search ranges, competitor positions, paging, filters, and definitions via howToRead. An agent has enough information to understand what it will receive.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 17 parameters in detail. The description mentions several filter parameters and compareDays behavior, but it mostly repeats schema-level concepts rather than adding new meaning beyond what the structured parameter definitions provide.

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 states a specific resource and verb: a client's keyword rankings in Google and Bing, with per-keyword and summary detail. It is clear what the tool returns, but it does not explicitly differentiate itself from related siblings such as get_rank_tracking_setup, get_ranking_evidence, or get_visibility_trend.

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 implies usage by explaining that rows are paged and filterable, and it lists available filter dimensions. However, it gives no explicit when-to-use guidance, no exclusions, and no named alternatives that would tell an agent when to prefer another rankings-related tool.

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