Skip to main content
Glama
OrtaMarco

seo-geo-mcp-server

by OrtaMarco

Image SEO Check

image_seo_check
Read-onlyIdempotent

Audit all images on a page for missing alt text, missing dimensions, lazy loading, and modern formats to fix accessibility, image SEO, and layout shift issues.

Instructions

Audit every on the page: missing alt attributes (an accessibility failure and a lost image-search signal), decorative alt="" usage, missing width/height (which causes layout shift, a Core Web Vitals factor), lazy-loading adoption, and how many images use modern formats (WebP/AVIF) versus legacy JPEG/PNG. sources are counted as modern delivery.

Args:

  • url (string): the page to check.

  • response_format ('markdown' | 'json'): output format (default 'markdown').

Returns: { total_images, missing_alt, decorative_alt, missing_dimensions, lazy_loaded, modern_format, legacy_format, images[], score, grade, findings[] }.

Example: "Which images on https://example.com are missing alt text?" -> image_seo_check(url="https://example.com").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesPage URL to analyse, e.g. 'https://example.com/blog/post'. The scheme defaults to https://.
response_formatNoOutput format: 'markdown' for a human-readable summary (default) or 'json' for the full structured payload.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
gradeYes
scoreYes
imagesYes
findingsYes
final_urlYes
lazy_loadedYes
missing_altYes
total_imagesYes
legacy_formatYes
modern_formatYes
decorative_altYes
missing_dimensionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.2.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv1.0.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it explains what counts as modern delivery ('<picture> sources are counted as modern delivery'), what the audit covers, and the return payload structure. It does not disclose rate limits or failure behavior, but for a read-only audit tool the added context is solid.

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 description is well-structured: a dense first sentence enumerating checks, a compact Args block, a Returns line, and an example. It is slightly longer than necessary because the Returns line duplicates the output schema, but every sentence earns its place and the key scope is front-loaded.

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 the description need not explain return values in depth, yet it still provides a Returns summary. The description covers the audit scope, parameters, and an example. It lacks explicit guidance on edge cases (e.g., pages with no images) but is complete enough for an agent to select and invoke the tool correctly.

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 the schema already documents both parameters fully. The description adds a brief mention of the parameters in the Args block but does not add meaning beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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 opens with a specific verb ('Audit') and a precise resource ('every <img> on the page'), then enumerates the exact checks performed: missing alt, decorative alt, missing dimensions, lazy-loading, and modern formats. This clearly distinguishes it from sibling SEO tools like meta_tags_check or robots_txt_check, which target different page elements.

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 when to use this tool: when auditing image-specific SEO/accessibility issues on a page. It does not explicitly state when NOT to use it or name alternatives, but the detailed scope makes the use case clear. The example query reinforces the intended usage pattern.

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