seo-mcp

mcp
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Fail
  • rimraf — Recursive directory removal in package.json
  • process.env — Environment variable access in src/seo/http.ts
  • network request — Outbound network request in src/seo/http.ts
  • new Function() — Dynamic code execution via Function constructor in src/seo/lighthouse-local.ts
  • process.env — Environment variable access in src/seo/pagespeed.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

SEO toolkit as an MCP server — free, keyless on-page audits, robots.txt, sitemaps, structured data, broken-link checks, and PageSpeed insights

README.md

seo-mcp

CI
npm
license

An SEO MCP server — a stdio Model Context Protocol server that gives an AI host a set of SEO tools. The MVP is 100% free and keyless: on-page/technical audits, robots.txt, sitemaps, structured data, broken-link checks, and keyword ideas.

Built on the same proven scaffold as chrome-mcp: SDK ServerStdioServerTransport, a flat tool registry, and a never-throw dispatch firewall.

Tools (all free, no API key)

Tool What it does
audit_page Full on-page audit: title, meta description, canonical, robots, viewport, OG/Twitter, heading outline, word count, image alt coverage, link counts, structured-data presence → issues + 0–100 score. Pass pagespeed: true to also attach PageSpeed metrics
check_robots Fetch & parse /robots.txt — UA groups, allow/disallow, declared sitemaps
check_sitemap Discover & summarize a sitemap (index vs urlset, URL count, sample)
extract_schema Pull JSON-LD structured data and list schema.org @types (+ microdata, parse errors)
find_broken_links HEAD-check links on a page; report 4xx/5xx/unreachable
keyword_ideas Related queries for a seed term via Google Suggest (no volume)
pagespeed Google PageSpeed Insights (Lighthouse): perf score, lab Core Web Vitals + real-user CrUX field data + top opportunities. Keyless (rate-limited); set PAGESPEED_API_KEY to raise the quota

Use it as an MCP server

Requires Node 20+. There is nothing to clone, build, or configure — add this to your MCP host config (e.g. a project .mcp.json) and restart the host:

{
  "mcpServers": {
    "seo-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@mehmoodqureshi/seo-mcp"]
    }
  }
}

Or with Claude Code: claude mcp add seo-mcp -- npx -y @mehmoodqureshi/seo-mcp

Or, after npm install -g @mehmoodqureshi/seo-mcp, set "command": "seo-mcp" with no args.

Windows

WSL2 is not required — native Windows works. One config change is, though: on Windows npx is npx.cmd, a batch shim, and MCP hosts spawn the server without a shell, which cannot execute a .cmd. So "command": "npx" fails to start. Wrap it in cmd /c:

{
  "mcpServers": {
    "seo-mcp": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@mehmoodqureshi/seo-mcp"]
    }
  }
}

Or: claude mcp add seo-mcp -- cmd /c npx -y @mehmoodqureshi/seo-mcp

Develop

From a source checkout:

npm install
npm run build      # → dist/src/cli.js
npm test

Then point your host at the local build with "command": "node", "args": ["<abs-path>/dist/src/cli.js"].

Then ask things like "audit https://example.com for SEO" or "what does example.com's robots.txt block?".

Quick smoke test (no MCP host needed)

node -e "require('./dist/src/seo/audit').auditPage('https://example.com').then(r=>console.log(JSON.stringify(r,null,2)))"

Develop

npm run typecheck   # tsc --noEmit
npm run build       # → dist/
npm test            # node:test suite (no network — fetch is stubbed)

CI (.github/workflows/ci.yml) runs typecheck → build → test on Node 20/22. Node 20+ is required (cheerio 1.x depends on undici, which needs the global File added in Node 20).

Performance & output size

  • Request caching — identical GETs are de-duplicated by a short-TTL cache with in-flight coalescing, so a audit_pageexport_audit_pdf pair (or a sitemap/robots.txt referenced during a crawl) hits the network once. Tune with SEO_MCP_CACHE_TTL_MS (milliseconds, default 15000); set 0 to disable.
  • Compact audit_site — by default the site audit returns a slim, worst-first per-page table (score + issue counts) plus the aggregates, to keep the response small inside an MCP host's context. Pass detail: true for the full per-page breakdown, or use export_site_pdf for a formatted report.

PageSpeed (optional key)

The pagespeed tool works keyless but Google rate-limits anonymous requests. To raise the quota, grab a free PageSpeed Insights API key and set it in your MCP host config:

{
  "mcpServers": {
    "seo-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/Users/mehmoodqureshi/Work/seo-mcp/dist/src/cli.js"],
      "env": { "PAGESPEED_API_KEY": "your-key-here" }
    }
  }
}

Roadmap (needs a key — not in the free MVP)

  • serp_rank — real SERP position checks (drive a browser, or a paid SERP API)
  • domain_authority — OpenPageRank (free key) for an authority score
  • backlinks — real backlink profiles (paid: Ahrefs / SEMrush / DataForSEO)

License

MIT

Reviews (0)

No results found