SEO Audit MCP
Enables running comprehensive SEO audits on websites, checking meta tags, sitemaps, robots.txt, broken links, headings, duplicate titles, and keyword density through MCP tools.
README
SEO Audit MCP
A comprehensive SEO auditing tool suite. Run audits via CLI, Local MCP (stdio), or Remote MCP (HTTP).
Features
| Check | What It Detects |
|---|---|
| Meta Tags | Missing/invalid title, description, viewport, Open Graph tags |
| Sitemap | Validate sitemap.xml existence and structure |
| Robots.txt | Validate robots.txt rules and directives |
| Broken Links | Scan page for broken/404 links |
| Headings | Analyze h1–h6 hierarchy compliance |
| Duplicate Titles | Detect duplicate or poorly formed page titles |
| Keyword Density | Analyze keyword frequency and density |
Packages
All packages are published to npm under the @seo-audit scope.
| Package | npm | Description | Type |
|---|---|---|---|
@seo-audit/core |
npm | Shared audit logic | Library |
@seo-audit/cli |
npm | Command-line interface (seo-audit) |
CLI |
@seo-audit/local-mcp |
npm | MCP server over stdio (seo-audit-mcp) |
MCP (local) |
@seo-audit/remote-mcp |
npm | MCP server over HTTP (seo-audit-remote) |
MCP (remote) |
Quick Start (No Install)
# CLI — audit any website
npx @seo-audit/cli https://example.com
# Local MCP — run as an MCP server
bunx @seo-audit/local-mcp
Installation
CLI
npm install -g @seo-audit/cli
seo-audit https://example.com
Local MCP (for MCP clients)
npm install -g @seo-audit/local-mcp
seo-audit-mcp
CLI Usage
seo-audit [options] <url>
Arguments:
url Website URL to audit (e.g. https://example.com)
Options:
-c, --checks <checks> Comma-separated checks to run.
Available: meta-tags, sitemap, robots-txt,
broken-links, headings, duplicate-titles,
keyword-density
-t, --timeout <ms> Request timeout (default: 15000)
-C, --concurrency <n> Concurrency for link checking (default: 5)
-j, --json Output as JSON
-V, --version Show version
-h, --help Display help
Examples
# Full audit
npx @seo-audit/cli https://example.com
# Specific checks only
npx @seo-audit/cli https://example.com --checks meta-tags,headings
# JSON output
npx @seo-audit/cli https://example.com --json
# Higher timeout for slow sites
npx @seo-audit/cli https://example.com --timeout 30000
MCP Server Setup
Claude Desktop
Add to claude.json:
{
"mcpServers": {
"seo-audit": {
"command": "bunx",
"args": ["@seo-audit/local-mcp"]
}
}
}
OpenCode
Add to opencode.json:
{
"mcp": {
"seo-audit": {
"type": "local",
"command": ["bun", "x"."-y", "@seo-audit/local-mcp"],
"enabled": true
}
}
}
MCP Tools
Once connected, the following tools are available:
| Tool | Description |
|---|---|
audit |
Run all SEO checks (or subset) |
check_meta_tags |
Check meta tags |
check_sitemap |
Validate sitemap.xml |
check_robots_txt |
Validate robots.txt |
check_broken_links |
Find broken links |
check_headings |
Analyze heading structure |
check_duplicate_titles |
Check duplicate titles |
check_keyword_density |
Analyze keyword density |
Remote MCP
# Install
npm install -g @seo-audit/remote-mcp
# Run the server
seo-audit-remote
# (Default: http://localhost:3456)
curl -X POST http://localhost:3456/call \
-H "Content-Type: application/json" \
-d '{"name":"audit","arguments":{"url":"https://example.com"}}'
Architecture
MCP Clients (Claude Desktop, OpenCode, etc.)
│ │
stdio │ HTTP │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ local-mcp │ │ remote-mcp │
│ (stdio) │ │ (Express) │
└──────┬───────┘ └────────┬─────────┘
│ │
└──────────┬──────────┘
▼
┌──────────────┐
│ core │
│ (audit logic)│
└──────────────┘
│
▼
┌──────────────┐
│ cli │
│ (commander) │
└──────────────┘
Development
This is a Bun monorepo using workspaces.
# Prerequisites
curl -fsSL https://bun.sh/install | bash
# Install dependencies
bun install
# Build all packages
bun run build
# Run from source (no build needed)
bun run dev:cli # CLI
bun run dev:local # Local MCP
bun run dev:remote # Remote MCP
# Lint, format, typecheck
bun run lint
bun run format:check
bun run typecheck
Publish a Package
cd packages/<name>
npm publish --access public
Tech Stack
Runtime: Bun / Node.js 20+
Language: TypeScript
Bundler: tsdown
Linting/Formatting: oxlint / oxfmt
MCP: @modelcontextprotocol/sdk
HTML Parsing: Cheerio
Validation: Zod
CLI: Commander
HTTP: Express (remote-mcp)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.