Skip to main content
Glama
arturseo-geo

mcp-seo-auditor

by arturseo-geo

mcp-seo-auditor

Built by Artur Ferreira @ The GEO Lab Β· 𝕏 @TheGEO_Lab Β· LinkedIn Β· Reddit

Version Licence Claude Code

MCP server for on-page SEO auditing and JSON-LD schema validation. Replaces SEO Minion + Detailed SEO Extension as Claude Code tools.

Tools

Tool

Description

audit_page

Full on-page SEO audit β€” title, meta, H1-H6, canonical, OG, Twitter, links, images, word count. Each element scored green/yellow/red

validate_schema

Extract and validate all JSON-LD blocks β€” type-specific checks for Article, FAQPage, Product, HowTo, BreadcrumbList, Person

check_headings

Heading hierarchy analysis β€” missing H1, multiple H1s, skipped levels

audit_images

Image audit β€” alt text coverage, empty alts, lazy loading, missing dimensions

Related MCP server: seo-gaca-mcp

Features

βœ… GEO-native β€” built alongside the GEO Brand Citation Index, tracking brand visibility across ChatGPT, Perplexity, and Gemini

Install

# Claude Code
claude mcp add seo-auditor -- npx mcp-seo-auditor

# Or in .mcp.json
{
  "mcpServers": {
    "seo-auditor": {
      "command": "npx",
      "args": ["mcp-seo-auditor"]
    }
  }
}

Usage

Once installed, Claude Code can:

> audit the SEO of https://example.com
> validate the schema markup on https://thegeolab.net/geo-stack/
> check the heading hierarchy on this page
> audit images for alt text coverage

No API Keys Required

This server fetches pages directly β€” no external API keys needed.


Attributions & Licence

Built and maintained by Artur Ferreira @ The GEO Lab.

Email: artur@thegeolab.net

Best Practice Attribution

This MCP server was built following the open source Best Practice Approach β€” reading community work for inspiration, then writing original content, and crediting every source.

Based on:

SEO audit logic inspired by:

Dependencies:

  • cheerio β€” HTML parsing (MIT)

  • axios β€” HTTP client (MIT)

All server code is original writing. No files were copied or adapted from any source. MIT licence.


Found this useful? ⭐ Star the repo and connect: 🌐 thegeolab.net Β· 𝕏 @TheGEO_Lab Β· LinkedIn Β· Reddit

Licence

MIT β€” see LICENSE


Built and maintained by Artur Ferreira @ The GEO Lab Β· MIT License

Available Tools

4 tools
audit_imagesA

Audit all images on a page β€” alt text coverage, missing alt attributes, oversized images, lazy loading status.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to audit images

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description partially discloses behavior by enumerating the audit checks (alt text, missing attributes, oversized images, lazy loading). However, it does not explicitly state that the tool is read-only, what output format to expect, or whether it performs any side effects. The burden is partially met but not fully.

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 a single, front-loaded sentence that lists concrete audit dimensions. Every element is informative, and there is no redundancy or filler. It is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema, so the description covers the scope of what is audited. However, it omits what the tool returns (e.g., a report or list of issues), which is relevant given no output schema is provided. Overall, it is adequate but not fully complete for an agent to know what to expect.

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% for the single parameter (url), and the description adds no additional parameter semantics. According to the rubric, baseline 3 is appropriate when schema covers parameters fully and description provides no extra value beyond the schema's own descriptions.

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 clearly states the tool audits all images on a page, specifying the exact aspects covered: alt text coverage, missing alt attributes, oversized images, and lazy loading status. This specific verb+resource combination distinguishes it from sibling tools like audit_page or check_headings.

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

Usage Guidelines3/5

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

The description implies usage for image-specific auditing but does not explicitly mention when to use it over alternatives or any exclusions. The context of sibling tool names helps, but there is no direct guidance such as 'use when auditing page images, not for general page audits.'

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

audit_pageA

Full on-page SEO audit β€” title, meta description, H1-H6 hierarchy, canonical, OG tags, Twitter cards, internal/external links, image alt coverage, word count, robots meta. Each element scored green/yellow/red.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to audit

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description must convey behavior, and it does: it lists exactly what will be inspected and that each element receives a green/yellow/red score. It does not explicitly state whether the tool is read-only or require authentication, but the audit framing and scoring behavior are meaningfully disclosed.

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 a single, information-dense sentence that front-loads the core action and resource, then enumerates the audit scope and scoring model. Every word adds value, with no filler or repetition.

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?

Although there is no output schema, the description tells the agent what the result will look like: each audited element scored green/yellow/red. It covers a broad set of checks and the scoring behavior, which is sufficient for a single-URL audit tool, though it could elaborate on the exact response structure.

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?

The only parameter, 'url', is already fully described in the schema ('URL to audit'), and the description adds no extra detail about format, validation, or edge cases. Since schema coverage is 100%, a baseline score 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 opens with 'Full on-page SEO audit' and enumerates a comprehensive set of audit areas (title, meta description, H1-H6, canonical, OG tags, Twitter cards, links, images, word count, robots meta). This clearly distinguishes it from the narrower sibling tools like check_headings or audit_images.

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 word 'Full' and the extensive checklist clearly position this as the comprehensive page-audit tool, giving the agent a strong sense of when to choose it. It does not explicitly state when not to use it or mention alternatives by name, but the context is unambiguous given the sibling tools.

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

check_headingsA

Extract and analyze heading hierarchy (H1-H6) from a page. Checks for missing H1, multiple H1s, skipped levels, heading-to-content ratio.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to analyze headings

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full transparency burden. It discloses the specific checks performed, but does not explicitly state that the tool is read-only, what happens on inaccessible pages, or any error/response behavior beyond the listed checks.

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 a single, information-dense sentence with no filler. It front-loads the core action and then lists the key checks, making every clause purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter) and the description covers what it does, but since there is no output schema, the description should ideally mention what the returned analysis looks like. It does not describe the structure or format of results, leaving a small completeness gap.

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?

The input schema already fully describes the only parameter (URL to analyze headings). The description does not add extra meaning about URL formats, constraints, or usage details, so it provides no value beyond the schema for parameter semantics.

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 clearly states the tool extracts and analyzes heading hierarchy (H1-H6) from a page. It also lists concrete checks (missing H1, multiple H1s, skipped levels, heading-to-content ratio), distinguishing it from sibling tools like audit_page or validate_schema.

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

Usage Guidelines3/5

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

The description implies use when heading hierarchy analysis is needed, but it does not explicitly state when to prefer this over sibling tools or mention any exclusions. There is no guidance on alternatives or conditions for non-use.

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

validate_schemaA

Extract and validate all JSON-LD schema blocks on a page. Type-specific validation for Article, FAQPage, Product, HowTo, BreadcrumbList, Person, Organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to check for JSON-LD schema

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It describes the action and supported types but omits return format, error handling, or side effectsβ€”critical gaps for a tool with no output schema.

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?

Two sentences effectively convey the core purpose and scope without redundancy. The description is front-loaded with the main action and supported types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a simple one-parameter tool, the description covers the action and supported types, but lacks detail on what validation output looks like, which would be helpful given no output schema exists.

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?

The single parameter 'url' is fully described in the input schema (100% coverage). The tool description adds no additional parameter-specific meaning, 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 clearly states the tool extracts and validates JSON-LD schema blocks, listing specific schema types (Article, FAQPage, etc.). This distinguishes it from sibling tools like check_headings and audit_images.

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's context makes it obvious the tool is for JSON-LD schema validation, but it doesn't explicitly mention when to use alternatives or provide exclusions. It falls short of a 5 because no sibling tool is named as a contrast.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedaudit_images
    • First observedaudit_page
    • First observedcheck_headings
    • First observedvalidate_schema

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation3/5

audit_page is a comprehensive audit that already includes heading hierarchy and image alt text, overlapping significantly with check_headings and audit_images. While the specific tools provide more detail, the boundaries are not crisp, and an agent could be uncertain which tool to invoke for a headings-only or images-only check.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (audit_page, validate_schema, check_headings, audit_images), using lowercase with underscores. Verbs are semantically apt for each action, and there are no mixed conventions.

Tool Count5/5

The server provides 4 tools, which is within the ideal 3-15 range for a focused SEO auditing tool. Each tool handles a distinct aspect of SEO analysis without excessive redundancy or overwhelming breadth.

Completeness4/5

The tool set covers the main on-page SEO dimensionsβ€”meta tags, headings, schema, imagesβ€”but lacks common SEO audit features like page speed, mobile-friendliness, or sitemap/robots.txt validation. For a single-page auditor, the coverage is solid but not exhaustive.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for SEO, performance, GEO, and UX audits with 37 tools covering technical SEO, Lighthouse performance, AI search optimization, content analysis, accessibility, security, and more.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides a suite of SEO analysis tools for auditing meta tags, headings, links, keyword density, page speed, and sitemaps without requiring external API keys.
    6
    25 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for SEO auditing that performs technical SEO, content quality, Schema.org, sitemap, hreflang, and GEO checks, returning scores and prioritized fixes.
    MIT