Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A Model Context Protocol (MCP) server that provides comprehensive SEO analysis tools with actionable fix instructions for AI assistants like Claude Code and Claude Desktop.

README.md

SEO Check MCP

A Model Context Protocol (MCP) server that provides comprehensive SEO analysis tools with actionable fix instructions for AI assistants like Claude Code and Claude Desktop.

Features

  • 24 SEO Analysis & Fix Tools
  • Actionable Instructions for Claude Code to apply fixes directly
  • Dual Transport Support: HTTP (Claude Code) and stdio (Claude Desktop)
  • Headless Chrome via Selenium for screenshots and Core Web Vitals

Quick Start

Prerequisites

  • Bun runtime
  • Chrome/Chromium browser (for screenshot tools)

Installation

git clone git@github.com:muningis/seo-check-mcp.git
cd seo-check-mcp
bun install

Claude Code Integration (HTTP Server)

Claude Code supports HTTP-based MCP servers:

1. Start the server

bun server.mts

2. Configure Claude Code

Add to your project's .mcp.json:

{
  "mcpServers": {
    "seo-analysis": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Or add to your global ~/.claude/settings.json:

{
  "mcpServers": {
    "seo-analysis": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

3. Use the tools

The 24 SEO tools will be available in Claude Code automatically.

Claude Desktop Integration (stdio)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "seo-analysis": {
      "command": "bun",
      "args": ["cli.mts"],
      "cwd": "/path/to/seo-check-mcp"
    }
  }
}

Replace /path/to/seo-check-mcp with the actual path to this project.

Available Tools (24 total)

Core Tools

| Tool | Description | |------|-------------| | read-sitemap | Fetches and parses XML sitemaps | | read-robots-txt | Fetches robots.txt content | | scan | Comprehensive page analysis with optional screenshots | | scan-lite | Lightweight page scan (no WebDriver) |

Content Analysis

| Tool | Description | |------|-------------| | analyze-content | Keyword density, readability scores, content suggestions | | check-readability | Flesch-Kincaid, Gunning Fog, SMOG analysis |

Technical SEO

| Tool | Description | |------|-------------| | validate-schema | JSON-LD/Schema.org validation with @graph analysis and completeness scoring | | analyze-sitemap | Deep sitemap analysis (freshness, priorities) | | check-internal-links | Internal linking structure analysis | | find-broken-links | Broken link detection with status codes |

Accessibility & Social

| Tool | Description | |------|-------------| | analyze-semantic | Semantic HTML and ARIA accessibility analysis (WCAG 2.1 Level A) | | analyze-social-meta | Open Graph, Twitter Cards, and Facebook meta analysis with platform previews |

On-Page Optimization

| Tool | Description | |------|-------------| | analyze-meta | Meta tag analysis with SERP preview | | analyze-headings | H1-H6 structure validation | | analyze-images | Image SEO with alt text suggestions | | analyze-url | URL structure and canonical analysis |

Competitive Analysis

| Tool | Description | |------|-------------| | compare-pages | Side-by-side SEO comparison | | benchmark-seo | Overall SEO score with grades |

Fix Tools (Actionable Instructions)

These tools return structured instructions that Claude Code can execute:

| Tool | Returns | |------|---------| | fix-meta | Title, description, canonical, Open Graph fixes with HTML snippets | | fix-images | Alt text fixes with suggested values and CSS selectors | | fix-headings | Heading hierarchy fixes with before/after HTML | | fix-schema | JSON-LD schema templates ready to add | | generate-seo-tasks | Prioritized task list with recommended tools | | improve-content | SEO, readability, and structure improvements for local markdown files |

Example Workflow with Claude Code

1. Generate a task list

Use the generate-seo-tasks tool on https://example.com

2. Review prioritized improvements

The tool returns tasks sorted by priority (critical → low) with effort/impact ratings:

{
  "url": "https://example.com",
  "score": 62,
  "tasks": [
    {
      "id": "meta-title-missing",
      "description": "Add missing title tag",
      "tool": "fix-meta",
      "priority": "critical",
      "effort": "low",
      "impact": "high"
    }
  ],
  "quickWins": ["meta-title-missing", "meta-canonical"],
  "summary": "SEO Score: 62/100. 1 critical issue(s) need immediate attention."
}

3. Apply fixes

Run fix-meta on https://example.com to get the HTML changes needed

4. Example fix-meta output

{
  "url": "https://example.com",
  "instructions": [
    {
      "action": "replace",
      "target": { "type": "html-tag", "selector": "title" },
      "value": {
        "current": "<title>Home</title>",
        "suggested": "<title>Example - Your Brand Name</title>"
      },
      "reason": "Title too short (4 chars). Should be 50-60 chars with keywords.",
      "priority": "critical",
      "automated": true
    },
    {
      "action": "add",
      "target": { "type": "html-tag", "selector": "head", "tagName": "link" },
      "value": {
        "suggested": "<link rel=\"canonical\" href=\"https://example.com\">"
      },
      "reason": "Missing canonical URL causes duplicate content issues.",
      "priority": "high",
      "automated": true
    }
  ],
  "summary": "2 fixes needed: 1 critical, 1 high priority"
}

Development

# Start HTTP server (for programmatic clients)
bun server.mts
# or
bun run start

# Start stdio server (for Claude Desktop)
bun cli.mts
# or
bun run start:stdio

# Health check (HTTP mode only)
curl http://localhost:3000/health

# Set custom port (HTTP mode only)
MCP_PORT=8080 bun server.mts

# Type check
npx tsc --noEmit

Server Endpoints (HTTP Mode)

| Endpoint | Method | Description | |----------|--------|-------------| | /health | GET | Health check, returns { status: 'ok' } | | /mcp | POST/GET/DELETE | MCP Streamable HTTP transport endpoint |

Architecture

server.mts              # HTTP server (for programmatic clients)
cli.mts                 # Stdio server (for Claude Desktop)
browser/
├── driver.ts           # Headless Chrome WebDriver
├── load-page.ts        # Page loading, Core Web Vitals, screenshots
└── mod.ts
lib/
├── analysis/           # Text analysis & scoring algorithms
├── cache/              # Resource caching
├── config/             # Constants & configuration
├── extraction/         # Page parsing helpers
├── page/               # Page retrieval orchestration
├── suggestions/        # SEO improvement suggestions
├── tools/              # MCP tool implementations (24 tools)
└── types/              # TypeScript interfaces

Adding New Tools

  1. Create tool file in lib/tools/your-tool.ts
  2. Export registration function: registerYourTool(server: McpServer)
  3. Import and call in lib/tools/mod.ts
  4. Add to registerAllTools() function

Technical Stack

  • Runtime: Bun (primary), Node.js compatible
  • HTTP Framework: Hono
  • Transports: StdioServerTransport (Claude Desktop), WebStandardStreamableHTTPServerTransport (HTTP clients)
  • Browser Automation: Selenium WebDriver with headless Chrome
  • Key Dependencies: @modelcontextprotocol/sdk, zod, hono, fast-xml-parser, node-html-parser

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Developer Tools servers.