Skip to main content
Glama

Search Console report

seo_report
Read-only

Start here. Without site: a short summary of every site in the person's weekly site audit (beta) for last week, with each site's Google index, weekly crawl and search clicks, sites with changes first, ending with the site to ask about next; an account outside that beta gets its site list to pick from. With site: the main report for that Search Console property, the overview plus each section's row count and top rows. With site and section: that section's rows; page sections also check their top 20 URLs live. Sections:

  • overview: Site totals (clicks, impressions, CTR, position) against the previous period, by device, with the top pages and queries and their change, and Google Analytics sessions for the same dates from the property whose web stream matches the site.

  • quick-wins: Query and page pairs at average positions 4 to 10 with a click-through rate below the site’s own curve for that position.

  • low-ctr: Query and page pairs at average positions 1 to 4 with a click-through rate below the site’s own curve: titles and snippets to review with the person.

  • striking-distance: Queries just outside the top positions, with impressions, for pages that already rank.

  • second-page: Pages with an average position of 11 to 20 and their queries.

  • content-decay: Query and page pairs that lost clicks against the previous period.

  • cannibalization: Queries where more than one page of the site gets impressions, with each page’s share.

  • traffic-drop: Daily clicks and impressions checked for a sudden change that lasted, with the date it started (else the last 7 days against the days before), and Google updates within 3 days of that date. Overlap is timing only, not cause.

  • ai-queries: Queries with the shape of AI conversations and agent searches (replies such as "yes go on", follow-ups, agent prompts, search operators, chat phrasing, ten or more words), with rewordings grouped into one question and its top page, impressions, clicks and position. A heuristic: Search Console does not mark AI Mode.

  • bing: Bing’s top queries from Bing Webmaster Tools with Google’s clicks, impressions and position for the same query beside them, and the same for pages.

  • issues: A list kept for the site between sessions: issues the striking-distance, low-ctr and quick-wins checks found (and the weekly crawl and Google index checks for an audited site), each with its id, the latest check and what the person marked it (open, fixed or ignored). A fixed page, or query on a page, gets its Search Console clicks and impressions for the 28 and 56 days from the day it was marked fixed against the same days before, once final data covers them. Asking for it runs those checks again. To mark issues, add mark and issues instead of section. The hosted server keeps the list only for sites in the weekly site audit; for any other site it returns the list as JSON for the agent to save and pass back as saved.

  • google-updates: One Google ranking update (core, spam and similar, from Google’s Search Status Dashboard) laid over the site’s Search Console data: clicks and impressions from the day it started against the same number of days just before (whole weeks, up to 28 days), whether that change is outside the site’s own movement in the 8 comparisons before it (a heuristic), and the folders, pages and queries that gained or lost most. The latest update by default; with end_date, the latest update that started on or before it. Timing only, not cause. With site, mark and issues: records what the person decided about those issue ids (fixed, ignored, or open to undo) and runs no checks.

Input Schema

NameRequiredDescriptionDefault
markNoOptional, with site and issues: fixed, ignored, or open to undo. Only when the person says so.
noteNoOptional, with mark: why, in the person’s words.
siteNoLeave it out for the summary of every audited site (weekly site audit beta). Otherwise a Search Console property or site, such as sc-domain:example.com, https://example.com/ or example.com.
savedNoOptional, with section issues or mark, only where this server is not storing the list: the JSON the issues section returned last time, as the agent saved it.
detailNosummary first. rows: the next page of rows. full: every field as JSON.summary
issuesNoWith mark: issue ids from the issues section, comma-separated.
offsetNorows only: the first row to return.
sectionNoOptional, needs site. Leave it out first; then ask for one section.
end_dateNoYYYY-MM-DD. Optional.
start_dateNoYYYY-MM-DD. Optional; without end_date it runs to the latest final day.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / section / enum
      Previous value: -[
      -  "overview",
      -  "quick-wins",
      -  "low-ctr",
      -  "striking-distance",
      -  "second-page",
      -  "content-decay",
      -  "cannibalization",
      -  "traffic-drop",
      -  "ai-queries",
      -  "bing",
      -  "issues"
      -]New value: +[
      +  "overview",
      +  "quick-wins",
      +  "low-ctr",
      +  "striking-distance",
      +  "second-page",
      +  "content-decay",
      +  "cannibalization",
      +  "traffic-drop",
      +  "ai-queries",
      +  "bing",
      +  "issues",
      +  "google-updates"
      +]
  2. Changed5 schema fields changed
    • addedInput schema / properties / issues
      Added value: +{
      +  "description": "With mark: issue ids from the issues section, comma-separated.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / mark
      Added value: +{
      +  "description": "Optional, with site and issues: fixed, ignored, or open to undo. Only when the person says so.",
      +  "enum": [
      +    "open",
      +    "fixed",
      +    "ignored"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / note
      Added value: +{
      +  "description": "Optional, with mark: why, in the person’s words.",
      +  "maxLength": 300,
      +  "type": "string"
      +}
    • addedInput schema / properties / saved
      Added value: +{
      +  "description": "Optional, with section issues or mark, only where this server is not storing the list: the JSON the issues section returned last time, as the agent saved it.",
      +  "maxLength": 600000,
      +  "type": "string"
      +}
    • changedInput schema / properties / section / enum
      Previous value: -[
      -  "overview",
      -  "quick-wins",
      -  "low-ctr",
      -  "striking-distance",
      -  "second-page",
      -  "content-decay",
      -  "cannibalization",
      -  "traffic-drop",
      -  "ai-queries",
      -  "bing"
      -]New value: +[
      +  "overview",
      +  "quick-wins",
      +  "low-ctr",
      +  "striking-distance",
      +  "second-page",
      +  "content-decay",
      +  "cannibalization",
      +  "traffic-drop",
      +  "ai-queries",
      +  "bing",
      +  "issues"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / end_date / description
      Previous value: -"YYYY-MM-DD. Optional; send with start_date."New value: +"YYYY-MM-DD. Optional."
    • changedInput schema / properties / start_date / description
      Previous value: -"YYYY-MM-DD. Optional; send with end_date."New value: +"YYYY-MM-DD. Optional; without end_date it runs to the latest final day."
  4. Changed3 schema fields changed
    • changedInput schema / properties / section / description
      Previous value: -"Optional. Leave it out first; then ask for one section."New value: +"Optional, needs site. Leave it out first; then ask for one section."
    • changedInput schema / properties / site / description
      Previous value: -"Search Console property or site, such as sc-domain:example.com, https://example.com/ or example.com."New value: +"Leave it out for the summary of every audited site (weekly site audit beta). Otherwise a Search Console property or site, such as sc-domain:example.com, https://example.com/ or example.com."
    • removedInput schema / required
      Removed value: -[
      -  "site"
      -]
  5. Changed1 schema field changed
    • changedInput schema / properties / section / enum
      Previous value: -[
      -  "overview",
      -  "quick-wins",
      -  "low-ctr",
      -  "striking-distance",
      -  "second-page",
      -  "content-decay",
      -  "cannibalization",
      -  "traffic-drop",
      -  "bing"
      -]New value: +[
      +  "overview",
      +  "quick-wins",
      +  "low-ctr",
      +  "striking-distance",
      +  "second-page",
      +  "content-decay",
      +  "cannibalization",
      +  "traffic-drop",
      +  "ai-queries",
      +  "bing"
      +]
  6. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations only say readOnlyHint and openWorldHint, and the description adds substantial behavior beyond that: page sections check their top 20 URLs live, asking for issues re-runs the striking-distance/low-ctr/quick-wins checks, and several sections are explicitly labeled heuristics (ai-queries, traffic-drop, google-updates "timing only, not cause"). One gap keeps it from higher: the mark path "records what the person decided" and the hosted server "keeps the list between sessions," which is persistent state mutation under a readOnlyHint=true annotation — the description should reconcile that rather than leave the agent to notice it.

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

Conciseness3/5

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

The bulleted section list is well structured and each section line carries real information. The opening is the problem: a single dense sentence packs all three calling modes, the beta behavior, and the fallback site-list case into one unbroken clause, making the most important routing rule the hardest part to parse. It is long but not padded — the cost is legibility, not filler.

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?

For a 10-parameter, zero-required, multi-mode tool with no output schema, the description does the heavy lifting on return content, describing what each section yields (row counts and top rows, per-page share, comparison windows, 28/56-day before-and-after windows). Remaining gaps are date-range scoping across sections and pagination, both delegated to schema descriptions.

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 earns above that by giving meaning the enum values cannot — what each of the twelve sections actually computes, when mark/issues replaces section, what saved contains and why it exists, and what end_date does to google-updates. It does not clarify how start_date/end_date interact with individual sections, which is left implicit.

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 is unusually specific about the verb and resource: it enumerates three calling modes (no site = cross-site weekly audit summary, site = main property report, site+section = one section's rows) and defines all twelve sections by what each computes. An agent knows exactly what the tool returns in each mode. It loses a point only because it never distinguishes itself from the six sibling tools (seo_data, seo_page, seo_index, seo_lint, seo_research, seo_compare), several of which plainly overlap on sections like google-updates and issues.

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?

"Start here" establishes entry-point ordering, and the description gives explicit sequencing rules: run without site first, then with site, then request one section; add mark and issues instead of section to record decisions; end_date selects an earlier google-updates entry. The gate that issues only persists for audited sites and otherwise returns JSON for the agent to save is spelled out. What is missing is when NOT to use this tool and which sibling to reach for instead.

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.