SEO MCP

MCP server cho bằng chứng SEO — kiểm tra on-page, thu thập dữ liệu, GSC, PageSpeed, SERP tùy chọn

Tài liệu

mcp-server-seo

Rust MCP server for SEO evidence used by Grok Build and Claude Code: on-page audit, robots/sitemap, polite crawl, PageSpeed Insights, Google Search Console, optional paid SERP.

stdio + JSON-RPC via rmcp. No Docker.

Build

cargo build --release
# target/release/mcp-server-seo

Config

Optional: ~/.config/mcp-server-seo/config.toml (see config.example.toml).

mkdir -p ~/.config/mcp-server-seo
cp config.example.toml ~/.config/mcp-server-seo/config.toml
chmod 600 ~/.config/mcp-server-seo/config.toml

Phase 1 tools work with zero keys. GSC needs a service-account JSON; PageSpeed needs a free API key; SERP needs Serper (optional).

Tools (summary)

GroupTools
Foundationstatus, sites_list, site_resolve
On-pagepage_audit, redirect_trace, robots_check, sitemap_fetch, sitemap_validate, extract_structured_data, schema_validate, link_check
Crawlcrawl_run, crawl_report, crawl_results, crawl_diff, sitemap_coverage, sitemap_build
Performancepagespeed_audit
GSCgsc_auth_check, gsc_search_analytics, gsc_opportunities, gsc_url_inspect, gsc_url_inspect_batch, gsc_list_sitemaps, gsc_submit_sitemap
Keywords/SERPkeyword_suggest, serp_fetch, rank_history
Compositespage_snapshot, page_history, audit_page, audit_site, verify_live

Recommended free-first agent playbook

  1. page_audit / schema_validate on home + 1–2 templates
  2. Short crawl_run → read report.url_patterns (tag×geo / faceted explosion)
  3. Fix in the app (not by inventing public copy)
  4. verify_live after deploy (H1, OG ~1200×630, SearchAction probe, sitemap, patterns)
  5. GSC sitemap submit only when the URL set is complete

Content publish (draft intros, FAQs) stays in the CMS/admin — this server is evidence, not a writer.

Safety

  • SSRF: public http(s) only; private/reserved IPv4+IPv6 blocked; redirect hops re-checked
  • sitemap_build: writes only under storage.data_dir (relative out_path)
  • GSC submit: confirm=YES-SUBMIT (sitemaps API — not URL Inspection)
  • Paid SERP: dry_run=true default; confirm=YES-PAY + budget ledger
  • Static HTML: rendered: false — use agent-browser for JS

Do not reimplement

Use sibling MCPs: google-analytics, google-adwords, cloudflare, namecheap, agent-browser.

Clients

Already registered as seo in Grok Build / Claude Code (restart clients after rebuild).

Tests

cargo test --release
./tests/test-stdio.sh

Plan

See PLAN.md (merged Grok + Fable + Kimi + critique amendments).