Skip to main content
Glama

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

Related MCP server: mcp-seo-auditor

Install & build

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

Use it as an MCP server

Add to your MCP host config (e.g. a project .mcp.json):

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

If the package is installed (globally or via npx), use the published seo-mcp bin instead of a node + path — no build step or absolute path needed:

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

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

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

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mehmoodqureshi/seo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server