wp-seo-toolkit-mcp
v1.1.0
Published
WordPress SEO Toolkit MCP server for Claude Code / Claude Desktop
Maintainers
Readme
wp-seo-toolkit-mcp
WordPress SEO Toolkit for Claude Code and Claude Desktop
An MCP (Model Context Protocol) server that gives Claude 10 SEO tools for auditing, analyzing, and optimizing WordPress sites. Runs locally. No external APIs. Your credentials never leave your machine.
Tools
| # | Tool | Tier | Description |
|---|------|------|-------------|
| 1 | audit_page_seo | Free | Full SEO audit: title, meta, headings, images, links, canonical, robots, schema. Scored report with recommendations. |
| 2 | check_broken_links | Free | Crawl all links on a page and report 404s, 500s, and timeouts with anchor text. |
| 3 | get_site_health | Free | WordPress site health check: WP/PHP version, plugins, themes, SSL, debug mode. |
| 4 | generate_meta | Free | Generate optimized title tag, meta description, and OG tags from a URL or text. Rule-based, no AI calls. |
| 5 | check_schema_markup | Free | Validate JSON-LD and microdata structured data. Checks required properties for 16+ schema.org types. |
| 6 | analyze_content | Premium | Deep content analysis: readability (Flesch-Kincaid), keyword density, heading structure, link ratio. |
| 7 | compare_competitors | Premium | Side-by-side SEO comparison of 2-5 URLs. Finds the winner and gaps. |
| 8 | find_keyword_opps | Premium | Detect keyword cannibalization, thin content, and missing keyword opportunities. |
| 9 | check_redirects | Premium | Follow redirect chains. Detect loops, excessive hops, and mixed HTTP/HTTPS. |
| 10 | bulk_audit | Premium | Audit multiple URLs from a sitemap or list. Aggregated report with common issues. |
Quick Start
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"wp-seo-toolkit": {
"command": "npx",
"args": ["-y", "wp-seo-toolkit-mcp"],
"env": {
"WORDPRESS_URL": "https://yoursite.com"
}
}
}
}Claude Desktop
Add to claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wp-seo-toolkit": {
"command": "npx",
"args": ["-y", "wp-seo-toolkit-mcp"],
"env": {
"WORDPRESS_URL": "https://yoursite.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}Then ask Claude: "Run an SEO audit on my homepage" or "Check for broken links on /blog".
Configuration
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| WORDPRESS_URL | Yes | -- | Your WordPress site URL (e.g. https://yoursite.com) |
| WORDPRESS_USERNAME | No | -- | WordPress username for authenticated endpoints (get_site_health) |
| WORDPRESS_APP_PASSWORD | No | -- | WordPress Application Password |
| WC_CONSUMER_KEY | No | -- | WooCommerce consumer key (reserved for future use) |
| WC_CONSUMER_SECRET | No | -- | WooCommerce consumer secret (reserved for future use) |
| LICENSE_KEY | No | -- | Premium license key. Format: WPSEO-XXXX-XXXX-XXXX |
| LICENSE_EMAIL | No | -- | Email address tied to your license key |
| REQUEST_TIMEOUT_MS | No | 10000 | HTTP request timeout in milliseconds |
| MAX_CONCURRENT_REQUESTS | No | 5 | Maximum parallel HTTP requests for bulk operations |
Tools Reference
audit_page_seo (Free)
Run a full SEO audit on any URL. Returns a scored report covering title, meta description, headings, images, links, canonical URL, robots directives, and JSON-LD schema.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| url | string | Yes | -- | URL to audit |
| includeLinks | boolean | No | true | Include link analysis |
| includeImages | boolean | No | true | Include image analysis |
Example: "Audit the SEO of https://mysite.com/about"
check_broken_links (Free)
Crawl all links on a page and report broken ones (404, 500, timeouts) with their anchor text and source location.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| url | string | Yes | -- | Page URL to check |
| depth | number | No | 0 | Crawl depth (0 = current page only, 1 = follow internal links) |
| timeout | number | No | 8000 | Per-link timeout in milliseconds |
Example: "Find broken links on my blog index page"
get_site_health (Free)
Check WordPress site health: WP version, PHP version, active/inactive plugins, themes, SSL status, and debug mode. Requires WordPress authentication via WORDPRESS_USERNAME and WORDPRESS_APP_PASSWORD.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| wordpressUrl | string | No | WORDPRESS_URL env var | Override the target WordPress URL |
Example: "Check my WordPress site health"
generate_meta (Free)
Generate optimized title tag, meta description, Open Graph tags, and Twitter card tags from a URL or raw text content. Entirely rule-based -- no external AI API calls.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| url | string | No | -- | URL to extract content from |
| content | string | No | -- | Raw text content (alternative to URL) |
| primaryKeyword | string | No | -- | Target keyword to prioritize |
| targetCharLimit | number | No | 60 | Character limit for generated title |
Example: "Generate meta tags for my /services page targeting 'web design'"
check_schema_markup (Free)
Validate JSON-LD and microdata structured data on a page. Checks required properties for 16+ schema.org types including Article, Product, LocalBusiness, FAQPage, and more.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| url | string | Yes | -- | URL to validate |
Example: "Check the schema markup on my product page"
analyze_content (Premium)
Deep content analysis: Flesch-Kincaid readability score, keyword density, heading structure, internal/external link ratio, image optimization, paragraph count, and average sentence length.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| url | string | Yes | -- | URL to analyze |
| targetKeyword | string | No | -- | Keyword to track density for |
Example: "Analyze the content quality of my latest blog post"
compare_competitors (Premium)
Compare SEO metrics of 2-5 URLs side-by-side: title, meta description, word count, headings, schema types, links, images, and load time hints. Identifies the winner and opportunities.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| urls | string[] | Yes | -- | 2-5 URLs to compare |
| primaryUrl | string | No | -- | Your URL (highlighted in comparison) |
Example: "Compare my /pricing page against these 3 competitor URLs"
find_keyword_opps (Premium)
Analyze pages to find keyword cannibalization (multiple pages targeting the same keyword), thin content, and missing keyword opportunities. Accepts a URL list or sitemap.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| urls | string[] | No | -- | List of URLs to analyze |
| sitemapUrl | string | No | -- | Sitemap URL (alternative to URL list) |
Example: "Find keyword opportunities across my sitemap"
check_redirects (Premium)
Follow redirect chains for a list of URLs. Detects redirect loops, excessive hops, and mixed HTTP/HTTPS protocol switches.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| urls | string[] | Yes | -- | URLs to check |
| maxHops | number | No | 10 | Maximum redirect hops before stopping (1-20) |
Example: "Check redirect chains for my old blog URLs"
bulk_audit (Premium)
Run SEO audits on multiple URLs from a sitemap or URL list. Returns an aggregated report with average score, common issues across pages, and per-page summaries.
Parameters:
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| urls | string[] | No | -- | List of URLs to audit |
| sitemapUrl | string | No | -- | Sitemap URL (alternative to URL list) |
| maxPages | number | No | 50 | Maximum pages to audit (1-200) |
| concurrency | number | No | 3 | Parallel audit workers (1-10) |
Example: "Bulk audit all pages in my sitemap"
Free vs Premium
Free Tier (5 tools, no license required)
- Full page SEO audits with scored reports
- Broken link detection
- WordPress site health monitoring
- Meta tag generation
- Schema markup validation
Works out of the box with just WORDPRESS_URL.
Premium Tier (all 10 tools)
Everything in Free, plus:
- Deep content and readability analysis
- Competitor SEO comparison
- Keyword cannibalization and opportunity detection
- Redirect chain analysis
- Bulk multi-page auditing from sitemaps
Get a license key: wowhow.cloud/products/wp-seo-toolkit-mcp
Set the LICENSE_KEY and LICENSE_EMAIL environment variables to unlock premium tools. Each key is tied to the email address used at purchase.
Requirements
- Node.js 18 or later
- A WordPress site (any hosting provider)
- WordPress Application Password for authenticated tools (
get_site_health)
Security
- All data is processed locally on your machine
- No external API calls -- the server only communicates with your WordPress site
- Credentials are passed via environment variables and never transmitted to third parties
- The MCP server runs as a local stdio process with no network listeners
Support
- Homepage: wowhow.cloud/products/wp-seo-toolkit-mcp
- Issues: GitHub Issues
- Email: [email protected]
License
MIT -- see LICENSE for details.
Built by WOWHOW
