Skip to main content
Glama

SEO GSC Wizard MCP

Generate full SEO report

generate_seo_report
Read-only

Runs the full analysis suite for one property in a single call and returns a complete, self-contained HTML report styled like the GSC Wizard app (overview, top queries/pages, countries & devices, CTR curve vs benchmark, opportunities, ranking changes, decaying content, query decay matrix, cannibalization, section breakdown, data coverage, sitemaps). This is far faster than calling each analysis tool separately (one round trip, shared auth + property resolution, server-side parallel reads) and is served from the ClickHouse warehouse when available. Use format="html" (default) for a ready-to-open report, or format="json" for the underlying data bundle.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the reporting window (and each comparison window).
formatNohtml
siteUrlYesProperty URL from list_sites (e.g. "sc-domain:example.com").
includeSitemapNoFetch + join the property’s sitemap (adds a network fetch).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoWidget variant: "kpis", "table", or "sections".
kpisNoKPI cards (kind="kpis").
noteNoCaveat about the result, when the tool returned one.
rowsNoData rows (kind="table").
notesNoCaveats about the result, when the tool returned several.
titleNo
blocksNoStacked sub-blocks (kind="sections").
sourceNo
columnsNoColumn defs (kind="table").
timeZoneNoGA4 property's IANA reporting time zone.
emptyTextNo
siteScopeNoSet when GA4 numbers were narrowed to this site's hostnames because the property is shared with other sites.
dataMaturityNo
settledThroughNoLast day the data is complete through.
comparisonHasDataNofalse when the comparison period has no data at all, so there is no comparison.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / comparisonHasData
      Added value: +{
      +  "description": "false when the comparison period has no data at all, so there is no comparison.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / note
      Added value: +{
      +  "$ref": "#/properties/kind",
      +  "description": "Caveat about the result, when the tool returned one."
      +}
    • addedOutput schema / properties / notes
      Added value: +{
      +  "$ref": "#/properties/siteScope/anyOf/0/properties/hostnames",
      +  "description": "Caveats about the result, when the tool returned several."
      +}
    • addedOutput schema / properties / siteScope
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "hostnames": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "includesSubdomainsOf": {
      +          "$ref": "#/properties/title"
      +        },
      +        "note": {
      +          "$ref": "#/properties/title"
      +        },
      +        "sharedWithSites": {
      +          "$ref": "#/properties/siteScope/anyOf/0/properties/hostnames"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Set when GA4 numbers were narrowed to this site's hostnames because the property is shared with other sites."
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuine behavioral context beyond them: single round trip, shared auth + property resolution, server-side parallel reads, and ClickHouse warehouse sourcing when available. It does not discuss cost/rate limits of the heavy aggregate call.

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?

Front-loads the core action in the first clause before the long section list, then closes with the performance rationale and format guidance. Every sentence carries information, though the parenthetical section catalog is dense.

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?

Output schema exists so return values need not be described, annotations cover the safety profile, and the description still supplies the aggregate-vs-single-tool framing and format semantics. Nothing an agent needs to select or invoke this correctly is missing.

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?

With 75% schema coverage, the schema already documents days, siteUrl and includeSitemap. The description adds meaning to the format enum by explaining html = ready-to-open report versus json = underlying data bundle, which the bare enum does not convey.

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?

States a specific verb and resource ('Runs the full analysis suite for one property in a single call') and enumerates the sections produced (overview, top queries/pages, CTR curve, cannibalization, etc.). It is clearly distinguishable from the individual analyze_* / get_* siblings by explicitly framing itself as the one-call aggregate.

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?

Explicitly contrasts with the alternative workflow ('far faster than calling each analysis tool separately') and gives format selection guidance (html default vs json for the data bundle). It lacks an explicit when-not-to-use statement (e.g. when you only need one section), so it falls short of the top mark.

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