mcp-seo-auditor
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-seo-auditoraudit the SEO of https://example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-seo-auditor
Built by Artur Ferreira @ The GEO Lab Β· π @TheGEO_Lab Β· LinkedIn Β· Reddit
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 |
| Full on-page SEO audit β title, meta, H1-H6, canonical, OG, Twitter, links, images, word count. Each element scored green/yellow/red |
| Extract and validate all JSON-LD blocks β type-specific checks for Article, FAQPage, Product, HowTo, BreadcrumbList, Person |
| Heading hierarchy analysis β missing H1, multiple H1s, skipped levels |
| 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 coverageNo 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:
Model Context Protocol specification by Anthropic
MCP SDK (MIT)
SEO audit logic inspired by:
Detailed SEO Extension β browser-based page-level SEO insights
SEO Minion β on-page SEO analysis extension
Screaming Frog SEO Spider β deep site audit methodology
Dependencies:
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
Related Repos
claude-code-mcps β All 5 MCP servers in one collection
mcp-seo-auditor β On-page SEO audit + JSON-LD validation
mcp-serp-intel β SERP weak spots, PAA trees, intent comparison
mcp-common-crawl β Free backlink discovery via Common Crawl
mcp-gsc-advanced β GSC cannibalization, rank changes
mcp-wordpress-setup β WordPress MCP server setup guide
Licence
MIT β see LICENSE
Built and maintained by Artur Ferreira @ The GEO Lab Β· MIT License
Available Tools
4 toolsaudit_imagesA
Audit all images on a page β alt text coverage, missing alt attributes, oversized images, lazy loading status.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to audit images |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to audit |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to analyze headings |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to check for JSON-LD schema |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
audit_images - First observed
audit_page - First observed
check_headings - First observed
validate_schema
TDQS
Scored across 4 tools
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.
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.
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.
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
Related MCP Connectors
SEO MCP server for keyword research, SERP analysis, audits, and Search Console workflows.
SEO MCP server β backlinks, domain authority, tech stack, and 18+ tools via Common Crawl.
Free technical-SEO audit MCP: crawl a site, run checks, return an LLM-ready shareable report.
- RampifyOAuthdev.rampify
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA production-ready remote MCP server that performs comprehensive SEO audits, providing structured insights on on-page SEO, technical health, and social metadata without requiring local setup.29-
- AlicenseNot gradedqualityDmaintenanceA 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.1MIT
- AlicenseAqualityDmaintenanceAn 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.625 npm1MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for SEO auditing that performs technical SEO, content quality, Schema.org, sitemap, hreflang, and GEO checks, returning scores and prioritized fixes.MIT