{"_id":"@buildbench/seo-defect-scanner-mcp","name":"@buildbench/seo-defect-scanner-mcp","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@buildbench/seo-defect-scanner-mcp","version":"1.0.0","description":"MCP server that scans any URL for technical SEO defects (schema, canonical, meta description, locale, structured data). Built for Cursor and Claude Desktop. Free to use, powered by buildbench.ca.","type":"module","main":"dist/index.js","bin":{"seo-defect-scanner-mcp":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","dev":"node --loader ts-node/esm src/index.ts","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","claude","cursor","seo","schema","json-ld","audit","buildbench"],"author":{"name":"Harjas Chahal","email":"harjas@buildbench.ca","url":"https://buildbench.ca"},"license":"MIT","homepage":"https://buildbench.ca/seo-defect-scanner","repository":{"type":"git","url":"git+https://github.com/buildbench/seo-defect-scanner-mcp.git"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.4"},"devDependencies":{"@types/node":"^22.0.0","ts-node":"^10.9.2","typescript":"^5.6.0"},"engines":{"node":">=18"},"types":"./dist/index.d.ts","_id":"@buildbench/seo-defect-scanner-mcp@1.0.0","bugs":{"url":"https://github.com/buildbench/seo-defect-scanner-mcp/issues"},"_nodeVersion":"24.13.1","_npmVersion":"11.12.0","dist":{"integrity":"sha512-3autnjyRznImvCvfDpdQFUm+NXzSaWUI1DhsC7eD3mL88dABwAfzaM21KaM72/n8KxS/k5GDrBLi9fP8q3sw5A==","shasum":"d5bda93ecddf41c3c5ee4e6c77a71384ab6d7963","tarball":"https://registry.npmjs.org/@buildbench/seo-defect-scanner-mcp/-/seo-defect-scanner-mcp-1.0.0.tgz","fileCount":6,"unpackedSize":19273,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC1Ei27IBgMwEAzjnVs37+lyeUGpCFk4PVJje1OLTa1EwIgEQLQVsdZSCiY3egXvHejh3soSdz0pEBoK/4wPDl0CR8="}]},"_npmUser":{"name":"builderbench","email":"aubreystone84@gmail.com"},"directories":{},"maintainers":[{"name":"builderbench","email":"aubreystone84@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/seo-defect-scanner-mcp_1.0.0_1779750816610_0.8899238634410074"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T23:13:36.453Z","1.0.0":"2026-05-25T23:13:36.760Z","modified":"2026-05-25T23:13:36.981Z"},"maintainers":[{"name":"builderbench","email":"aubreystone84@gmail.com"}],"description":"MCP server that scans any URL for technical SEO defects (schema, canonical, meta description, locale, structured data). Built for Cursor and Claude Desktop. Free to use, powered by buildbench.ca.","homepage":"https://buildbench.ca/seo-defect-scanner","keywords":["mcp","model-context-protocol","claude","cursor","seo","schema","json-ld","audit","buildbench"],"repository":{"type":"git","url":"git+https://github.com/buildbench/seo-defect-scanner-mcp.git"},"author":{"name":"Harjas Chahal","email":"harjas@buildbench.ca","url":"https://buildbench.ca"},"bugs":{"url":"https://github.com/buildbench/seo-defect-scanner-mcp/issues"},"license":"MIT","readme":"# SEO Defect Scanner MCP\n\nFree MCP (Model Context Protocol) server that scans any URL for technical SEO defects. Works with **Cursor**, **Claude Desktop**, **Continue**, and any MCP-compatible client.\n\nPowered by [buildbench.ca/seo-defect-scanner](https://buildbench.ca/seo-defect-scanner). No signup required. Free unlimited scans.\n\n## What it detects\n\nThe scanner runs the same checks a paid SEO audit would, in 60 seconds:\n\n- **JSON-LD structured data**: presence, type (LocalBusiness, Attorney, Dentist, HVACBusiness, RoofingContractor, VeterinaryCare, etc.), `@context` format (http vs https)\n- **Canonical link**: presence\n- **Meta description**: presence, length, emptiness\n- **Locale signals**: `og:locale` (flags en_US and en_IN), `html lang` (flags en-US on Canadian sites)\n- **Title tag**: length, content\n- **Common Yoast/WordPress defects**: placeholder `priceRange` (single dollar sign or three zeros), empty `PostalAddress`, dead Google Plus `sameAs` URLs\n\nEach defect is severity-tagged (critical / high / medium / low) with a plain-language explanation of why it matters.\n\n## Why this matters\n\nMost Ontario service businesses, law firms, and clinics have at least one of these broken. The defect is invisible to the owner because the site loads fine, but Google reads it and downgrades the local pack ranking accordingly.\n\nCommon signals we see weekly:\n- `og:locale=\"en_US\"` on Ontario PI law firms = Google reads as US-targeted\n- `og:locale=\"en_IN\"` (English India) on Canadian dental practices = Yoast default left in by overseas web agency\n- `\"priceRange\": \"$\"` placeholder in Yoast LegalService schema = Rich Results validator flags as ambiguous\n- Zero `LocalBusiness` schema on a multi-location clinic = invisible to local-pack ranking\n\n## Installation\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"seo-defect-scanner\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@buildbench/seo-defect-scanner-mcp\"]\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"seo-defect-scanner\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@buildbench/seo-defect-scanner-mcp\"]\n    }\n  }\n}\n```\n\n### Continue\n\nAdd to your Continue config file:\n\n```json\n{\n  \"mcpServers\": [\n    {\n      \"name\": \"seo-defect-scanner\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@buildbench/seo-defect-scanner-mcp\"]\n    }\n  ]\n}\n```\n\nRestart your editor after adding the config.\n\n## Usage\n\nOnce installed, the `scan_seo_defects` tool is available to your AI assistant. Examples:\n\n> \"Scan my deployed site at example.com for SEO defects.\"\n\n> \"Check the meta tags on https://competitor.com/services and tell me what's broken.\"\n\n> \"I just pushed a new landing page. Audit it before I share it.\"\n\nThe tool returns a markdown-formatted defect report with severity tags, code references, and a direct link to the productized fix offer at buildbench.ca/audit.\n\n## Tools provided\n\n### `scan_seo_defects`\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `url` | string | yes | The URL to scan. Accepts full URLs or bare domains. |\n\n**Returns:** Markdown-formatted defect report with severity tags (critical / high / medium / low), defect codes, plain-language explanations, and recommendations.\n\n## How it works\n\n1. The MCP server receives a URL from your editor's AI assistant\n2. It POSTs the URL to `https://buildbench.ca/api/seo-scan` (a Cloudflare Pages Function)\n3. The endpoint fetches the target URL server-side (no CORS issue, no client exposure)\n4. It runs regex-based checks for the defect patterns above\n5. Returns JSON with defects grouped by severity\n6. The MCP server formats this as markdown and returns to your editor\n\nThe whole round trip is typically 2-5 seconds.\n\n### Safety + abuse protection\n\nThe endpoint is hardened against typical scanner abuse:\n- Only http and https URLs accepted\n- Private and loopback IPs blocked (no localhost, no 10.x, 192.168.x, 169.254.169.254 cloud metadata, etc.)\n- Redirects re-validated per hop\n- 10-second fetch timeout\n- 2 MB response size cap\n- Per-IP request quota enforced at the Cloudflare zone level\n- No API keys required from the caller\n\n## What it doesn't do\n\n- It doesn't crawl your whole site. One URL per scan.\n- It doesn't run Lighthouse / Core Web Vitals checks. Those are different tools.\n- It doesn't check backlinks, keyword rankings, or anything in Google Search Console.\n- It doesn't store scan history. Each request is stateless.\n\nFor deeper audits (multi-page crawl, schema deploys, locale fixes, meta description packs), there's a productized fix at **[buildbench.ca/audit](https://buildbench.ca/audit)** — $497 CAD, 72-hour delivery, refund if not shipped on time.\n\n## License\n\nMIT. Use, modify, redistribute freely.\n\n## Built by\n\n[Build Bench](https://buildbench.ca) — solo operator in Mississauga, Ontario building productized SEO and AI lead-capture tools for Canadian service businesses.\n\nContact: harjas@buildbench.ca\n\n## Companion tools\n\n- **Free 60-second web scanner**: [buildbench.ca/seo-defect-scanner](https://buildbench.ca/seo-defect-scanner)\n- **Productized fix**: [buildbench.ca/audit](https://buildbench.ca/audit)\n- **Missed-call revenue calculator**: [buildbench.ca/missed-call-calculator](https://buildbench.ca/missed-call-calculator) (for LeadsLockAI buyers)\n","readmeFilename":"README.md","_rev":"1-3f4a28cb34c9272798093fcc1a568451"}