← Back to directory
S

SEO Skill MCP Server

Community
A local-first SEO command line and MCP server for AI agents, running 70+ audit tools on your own crawl, Search Console, and GA4 data.
GitHub source repository ↗
★ 495 Stars Category · Dev Tools Very popular
64FMRS · C

SEO Skill is a local-first SEO command line and stdio MCP server that combines crawl, Search Console, traffic analytics, and optional research-provider data into inspectable reports. It emphasizes evidence separation, never treating partial data as zero, and attachable verification steps, making it suitable for site owners, AI agents, and developers. It is Apache-2.0 licensed and third-party maintained rather than an official Google or search-engine product; users should note that data stays local, optional enrichment has its own network boundary, and research providers may incur API costs.

Reliability
10/20
Security and permissions
13/20
Maintenance
12/20
Documentation
16/20
Setup experience
13/20
Read the FMRS scoring method →

SEO Skill is a local-first SEO toolkit that turns site crawls, Google Search Console, connected traffic analytics (Google Analytics, Clicky), and optional research providers (DataForSEO, Semrush, Ahrefs, Bing Webmaster) into inspectable, actionable reports through the seo command and a local stdio MCP server. It covers technical blocker audits, keyword and competitor research, programmatic page pattern review, link evidence, AI mention research, server-log crawler traffic analysis, and IndexNow submission notifications. Reports keep observed evidence separate from derived findings and recommended actions, never report partial data as zero, and label heuristics as heuristics. Data, project profiles, Google tokens, and caches stay on the local machine. The project is open source under Apache-2.0 maintained in the iannuttall/seo repository, and it is not an official Google product.

Tools

seo_run_report
Runs an SEO report by id and can return structured JSON, including the actions view. The CLI and MCP surfaces read from the same report registry, so their ids and JSON Schemas cannot drift.
seo_list_providers
Lists the provider packages installed on the same computer as the MCP server.
seo_describe_provider
Returns a provider package's declared action input and output JSON Schemas so an agent can discover runnable actions.
seo_run_provider
Runs an action defined by a provider package by provider id and action id, validating input and output against the package schemas.

Setup

  1. Ensure Node 22 or newer is installed.
  2. Install globally: npm i -g seo.
  3. Run seo start to sign in with Google, select a Search Console property, optionally connect traffic analytics, and save a local project profile.
  4. Install the MCP server with seo mcp install; the prompt detects installed clients, or scripts can target one explicitly with --codex, --claude-code, --cursor, or --claude-desktop.
  5. Other local stdio MCP clients can be configured manually to start seo mcp serve.
  6. Optional: run seo skill install to install the packaged SEO skill.

Fit and risk

Best for

  • Site owners who want a clear audit and a ranked fix list without learning a heavy dashboard
  • AI agents that need real crawl, Search Console, analytics, keyword, and competitor evidence through MCP
  • Developers who want to embed the same report engine in a script, CI job, or TypeScript app

Not for

  • Users expecting a hosted dashboard or cloud data storage — data stays on the local machine
  • Users needing official endorsement from Google or an SEO vendor — the project is third-party maintained
  • Users without a Node 22+ runtime

Required permissions

  • Read the local config directory to store project profiles, crawl reports, and provider caches
  • Access the system keychain for Google OAuth tokens, Bing API key, IndexNow key, and similar credentials, falling back to a private 0600 file
  • Network requests to audited sites, Google Search Console, Google Analytics, Bing Webmaster, Clicky, and selected research providers when enabled
  • Optional access to Chrome UX Report, IndexNow, and the npm registry
  • Optional CI use of a Google service account JSON key and environment variables such as SEO_GOOGLE_SERVICE_ACCOUNT_JSON, SEO_BING_API_KEY, SEO_CLICKY_SITEKEY, and SEO_INDEXNOW_KEY

Risks and side effects

  • Optional external enrichment can send selected Search Console query or derived seed text to the chosen research provider only when explicitly enabled; it does not send Google credentials, property IDs, Search Console metrics, or Google Analytics rows
  • When the system keychain is used, processes that cannot access it may read credentials readable by the same process user; without a keychain the CLI falls back to a private local file
  • Research providers can charge for API requests; reports show estimated and actual cost, but spend limits are your responsibility
  • Crawling issues many requests to the target site and may trigger access blocks; the report retains HTTP status, provider indicators, and access guidance
  • User-agent names can be spoofed, so the server-log report describes request strings found in the log rather than verified crawler identity
  • An accepted IndexNow request confirms receipt only and does not prove a URL was crawled, indexed, ranked, or shown
  • Provider traffic, volume, difficulty, and visibility values are estimates and are not search-engine measured data

Troubleshooting

  1. Run `seo doctor` to check local auth and config
  2. Run `seo auth status` to see the active storage mode; switch with `seo auth storage --keychain` or `seo auth storage --file`
  3. With several Google logins, run `seo auth login` to add an account and `seo auth accounts` to list them
  4. If the MCP server is not working, confirm the client was configured via `seo mcp install` or configured manually to start `seo mcp serve`
  5. Without a Google connection, run `seo report --url https://example.com` for a local technical crawl first
  6. Describe a report with `seo reports describe <id> --json` before constructing its parameters
  7. For large page inventories, continue with `--inventory-page <number>` until nextPage is null

Use cases

Run a technical SEO audit on your own site and get a ranked fix list
Find ranking 4-10 quick wins and second-page URLs using Search Console data
Research keywords, competitors, and programmatic page patterns
Run reports in CI with JSON or JUnit output and failure thresholds
Analyze search and AI crawler requests in server access logs
Notify IndexNow about changed URLs after a release

Supported clients

CodexFull support
Claude CodeFull support
Claude DesktopFull support
CursorFull support