Skip to main content
Glama
AutomateLab-tech

automatelab-ai-seo

Official

Score AI Overview eligibility

score_ai_overview_eligibility
Read-onlyIdempotent

Score a URL's likelihood of appearing in Google AI Overviews; get a 0-100 score plus six factor subscores to prioritize AI-search optimization.

Instructions

Score a page's probability of appearing in Google AI Overviews. Returns an overall 0-100 score plus six factor subscores: semantic completeness, structured data, E-E-A-T signals, entity density, freshness, and technical hygiene.

Read-only. One HTTP GET.

Deterministic, rule-based scoring derived from published 2025-2026 AI-Overview correlation studies. No LLM calls. Same URL returns the same score on repeated runs.

When to use: AI-Overview-specific prioritization. For a multi-dimensional audit that includes this scoring plus everything else, use audit_page. For citation-worthiness of a specific text passage (rather than a URL ranking probability), use score_citation_worthiness.

Input Schema

NameRequiredDescriptionDefault
urlYesPublic URL to score. The tool fetches the URL once and runs deterministic, rule-based scoring across six factors (semantic completeness, structured data, E-E-A-T signals, entity density, freshness, technical hygiene) using published 2025-2026 correlation studies. No LLM calls. Read-only HTTP GET.
respect_robotsNoIf true (default), respect robots.txt before fetching. Set false only for auditing your own site where you've intentionally blocked crawlers.

Output Schema

NameRequiredDescriptionDefault
urlYes
factorsYes
findingsYes
top_improvementsYes
overall_eligibility_scoreYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changed
    • removedOutput schema / properties / factors / description
      Removed value: -"Per-factor 0-100 subscores."
    • addedOutput schema / properties / factors / properties / content_freshness
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / factors / properties / freshness
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / factors / properties / multimodal_content
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / factors / properties / passage_structure
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / factors / properties / technical_hygiene
      Removed value: -{
      -  "type": "number"
      -}
    • changedOutput schema / properties / factors / required
      Previous value: -[
      -  "semantic_completeness",
      -  "structured_data",
      -  "eeat_signals",
      -  "entity_density",
      -  "freshness",
      -  "technical_hygiene"
      -]New value: +[
      +  "semantic_completeness",
      +  "structured_data",
      +  "eeat_signals",
      +  "entity_density",
      +  "content_freshness",
      +  "passage_structure",
      +  "multimodal_content"
      +]
    • removedOutput schema / properties / fetched_at
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / findings
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "category": {
      +        "enum": [
      +          "schema",
      +          "robots",
      +          "technical",
      +          "freshness",
      +          "structure",
      +          "authority",
      +          "presence",
      +          "sitemap",
      +          "llms_txt",
      +          "citation",
      +          "evidence",
      +          "trust",
      +          "entity",
      +          "content"
      +        ],
      +        "type": "string"
      +      },
      +      "estimated_impact": {
      +        "anyOf": [
      +          {
      +            "not": {}
      +          },
      +          {
      +            "const": "high",
      +            "type": "string"
      +          },
      +          {
      +            "const": "medium",
      +            "type": "string"
      +          },
      +          {
      +            "const": "low",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "failure_signal": {
      +        "anyOf": [
      +          {
      +            "not": {}
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "fix": {
      +        "type": "string"
      +      },
      +      "leading_indicator": {
      +        "anyOf": [
      +          {
      +            "not": {}
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "severity": {
      +        "enum": [
      +          "critical",
      +          "warning",
      +          "info"
      +        ],
      +        "type": "string"
      +      },
      +      "where": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "severity",
      +      "category",
      +      "where",
      +      "message",
      +      "fix"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / overall_eligibility_score / maximum
      Removed value: -100
    • removedOutput schema / properties / overall_eligibility_score / minimum
      Removed value: -0
    • addedOutput schema / properties / top_improvements / items / properties / action
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / top_improvements / items / properties / estimated_score_gain
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / top_improvements / items / properties / factor
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / top_improvements / items / properties / suggestion
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / top_improvements / items / required
      Previous value: -[
      -  "factor",
      -  "suggestion"
      -]New value: +[
      +  "action",
      +  "estimated_score_gain"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "url",
      -  "fetched_at",
      -  "overall_eligibility_score",
      -  "factors",
      -  "top_improvements"
      -]New value: +[
      +  "url",
      +  "overall_eligibility_score",
      +  "factors",
      +  "top_improvements",
      +  "findings"
      +]
  2. Changed1 schema field changedv1.0.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "factors": {
      +      "additionalProperties": false,
      +      "description": "Per-factor 0-100 subscores.",
      +      "properties": {
      +        "eeat_signals": {
      +          "type": "number"
      +        },
      +        "entity_density": {
      +          "type": "number"
      +        },
      +        "freshness": {
      +          "type": "number"
      +        },
      +        "semantic_completeness": {
      +          "type": "number"
      +        },
      +        "structured_data": {
      +          "type": "number"
      +        },
      +        "technical_hygiene": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "semantic_completeness",
      +        "structured_data",
      +        "eeat_signals",
      +        "entity_density",
      +        "freshness",
      +        "technical_hygiene"
      +      ],
      +      "type": "object"
      +    },
      +    "fetched_at": {
      +      "type": "string"
      +    },
      +    "overall_eligibility_score": {
      +      "maximum": 100,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "top_improvements": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "factor": {
      +            "type": "string"
      +          },
      +          "suggestion": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "factor",
      +          "suggestion"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "url",
      +    "fetched_at",
      +    "overall_eligibility_score",
      +    "factors",
      +    "top_improvements"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changedv0.1.2
    • addedInput schema / properties / respect_robots / description
      Added value: +"If true (default), respect robots.txt before fetching. Set false only for auditing your own site where you've intentionally blocked crawlers."
    • addedInput schema / properties / url / description
      Added value: +"Public URL to score. The tool fetches the URL once and runs deterministic, rule-based scoring across six factors (semantic completeness, structured data, E-E-A-T signals, entity density, freshness, technical hygiene) using published 2025-2026 correlation studies. No LLM calls. Read-only HTTP GET."
  4. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only, open-world, idempotent, non-destructive behavior. The description adds meaningful context beyond annotations: one HTTP GET, deterministic rule-based scoring from published 2025-2026 studies, no LLM calls, and identical results for the same URL on repeated runs.

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?

The description is front-loaded with purpose and return format, then concisely states read-only behavior and deterministic scoring. It closes with explicit usage routing, with no wasted sentences.

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?

Given the tool's complexity, full parameter coverage, annotations, and presence of an output schema, the description provides everything an agent needs to select and invoke it correctly. The return-value summary is extra but not harmful.

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 both parameters are already well documented in the input schema. The description does not add parameter-specific meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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 states a specific verb and resource: score a page's probability of appearing in Google AI Overviews. It also distinguishes itself from siblings by naming `audit_page` and `score_citation_worthiness` with the conditions that select them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: AI-Overview-specific prioritization. It also routes to two alternatives with clear conditions: `audit_page` for a broader audit including this scoring, and `score_citation_worthiness` for text passage citation-worthiness rather than URL ranking probability.

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