Skip to main content
Glama
AKzar1el

Google Search Console MCP

Detect Keyword Cannibalization

insights.cannibalization
Read-only

Detect keyword cannibalization in Google Search Console by identifying multiple pages competing for the same query, so you can consolidate or differentiate them.

Instructions

Analyze search analytics to detect instances of keyword cannibalization, where multiple pages on your site compete for the same query. Pagination metadata flags when the local 100,000-row safety ceiling stopped fetching; a false flag does not guarantee Search Console returned every underlying row.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (inclusive) in YYYY-MM-DD format. Note the 2-3 day GSC data lag.
site_urlYesThe Search Console property identifier, exactly as returned by sites.list. Two formats exist: domain properties use 'sc-domain:example.com'; URL-prefix properties use the full URL including protocol and trailing slash, e.g. 'https://www.example.com/'. Passing the wrong format returns a permission error even when the user owns the site — call sites.list first if unsure.
start_dateYesStart date (inclusive) in YYYY-MM-DD format.
min_impressionsNoMinimum impressions for a page-query pair to be considered. Must be at least 0. Default is 50.
min_page_percentageNoMinimum percentage of total query impressions a page must have to count as a cannibalizing page (0-100). Default is 10%.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
candidatesYes
paginationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With annotations readOnlyHint=true and openWorldHint=true, the safety profile is already declared. The description adds valuable behavioral context about the pagination metadata flag and the 100,000-row safety ceiling, warning that a false flag does not guarantee full data return. This is exactly the kind of limitation disclosure that helps an agent interpret results correctly and goes beyond what annotations provide.

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

Conciseness5/5

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

Three sentences: purpose, definition, and a critical data-completeness caveat. Every sentence earns its place, and the caveat is placed at the end after the main purpose. No fluff or repetition of the schema.

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?

The tool has an output schema, so return values need not be explained. The description covers what the tool does, the key limitation (pagination ceiling), and the site_url precondition is covered in the schema. It could add more context about typical use cases or how results should be interpreted, but with the output schema and rich parameter schemas, it is sufficiently complete.

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 description coverage is 100%, so the baseline is 3. The description adds conceptual meaning around the parameters by framing the analysis: 'min_impressions' and 'min_page_percentage' relate to how a page qualifies as cannibalizing. However, most parameter-level detail lives in the schema; the description itself doesn't explain defaults or constraints. A 4 is warranted because the description enriches the semantic model of the parameters even though it doesn't restate them.

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?

The description uses a specific verb ('Analyze', 'detect') and resource ('search analytics', 'keyword cannibalization') and clearly explains the concept ('multiple pages compete for the same query'). This distinguishes it from sibling analytics tools like analytics.query (generic querying) and insights.quick_wins/content_decay (other insight types).

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 implies this is the tool for detecting cannibalization specifically, which differentiates it from siblings, but it does not explicitly state when not to use it or name alternatives. It does include a practical precondition ('call sites.list first if unsure') about site_url format, which helps agents use it correctly. Missing explicit exclusion guidance, but the domain-specific wording is enough for most selection cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.