Skip to main content
Glama

Query cannibalization

analyze_cannibalization
Read-onlyIdempotent

Queries where 2+ pages of the property compete for the same search in the period. Per cluster: totals, Shannon entropy of impressions across pages (bits; higher = more even split = worse; level high >= 1.5, medium >= 1.0), normalized (0–1), winner (most clicks; tie: best position) and the contenders with clicks/impressions/ctr/position/impressionShare. Sorted by entropy and impressions. Protocol/host/hash variants of one URL are canonical hygiene, not cannibalization; brand + home + deep page is usually sitelinks. Use when asked which page should rank for a keyword. / Canibalização de queries.

Input Schema

NameRequiredDescriptionDefault
daysNoWindow length in days (default 28). Ignored when startDate and endDate are both given. / Janela em dias.
siteYesProperty: displayName ("example.com"), Search Console siteUrl ("sc-domain:example.com", "https://www.example.com/") or numeric id. A unique substring among visible properties also works ("exam"). list_sites shows the options. / Propriedade por nome, siteUrl ou id.
brandNoall (default); branded = only queries containing one of the property's branded_terms; non-branded = the rest. Needs branded terms set on the property in the Organiq panel, otherwise invalid_argument with the panel URL. / Marca × sem marca.
limitNoClusters (default 50).
queryNoOnly queries containing this text, or a regex as /…/ (e.g. "/^how to/"; no flag = case-insensitive).
deviceNoDevice.
countryNoCountry as ISO-3166-1 alpha-3, as in Search Console: bra, usa, prt, arg.
endDateNoEnd yyyy-mm-dd. Default: last synced date of the property (Search Console lags ~3 days; never "today"). Every response states the period used. / Fim; padrão = última data sincronizada.
minPagesNoMinimum pages per query (default 2).
startDateNoStart yyyy-mm-dd. Default: endDate − (days − 1).
searchTypeNoSearch type (default web).
pageContainsNoOnly pages whose URL contains this text (case-insensitive), e.g. "/blog/".
minImpressionsNoMinimum cluster impressions (default 10; large sites 100).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description still adds substantive output semantics: what entropy means in bits, the direction of the scale, the 1.5/1.0 level thresholds, the winner tie-break by best position, and the sort order (entropy then impressions). That is real behavioral disclosure beyond structured fields.

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 core definition and the output contract are front-loaded, and the exclusion notes are compact. The entropy threshold parenthetical (bits; higher = more even split = worse; level high >= 1.5, medium >= 1.0) is dense but earns its place by telling the agent how to read the score.

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 13 parameters but a fully documented schema and no output schema, the description's main burden is explaining the return shape — which it does thoroughly. Only minor gaps remain, such as pagination or how cluster totals relate to the contender list, which are not critical for correct invocation.

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 every one of the 13 parameters is already documented with defaults, enums and formats. The description adds no parameter-level guidance of its own, so the baseline of 3 applies.

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?

Opens with a precise definition of the resource: queries where 2+ pages compete for the same search in the period. It is immediately distinguishable from neighbors like find_page_poaching_opportunities or get_query_performance, and it enumerates the exact per-cluster outputs (entropy, normalized, winner, contenders).

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?

Gives an explicit trigger — 'Use when asked which page should rank for a keyword' — plus two exclusion rules: protocol/host/hash URL variants are hygiene not cannibalization, and brand + home + deep page is usually sitelinks. It stops short of naming a specific sibling alternative, which keeps it from a 5.

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.