← 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.
Category
Dev Tools #60 of 438
Stars
★ 603 Very popular
Transport
stdio (local process)
Runtime
Node.js 22+
Credentials
Optional API key
License
Apache-2.0
Last commit
Tools
4
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.

Strongest · Documentation 16/20 Weakest · Reliability 10/20

Reliability
10/20
Security and permissions
13/20
Maintenance
12/20
Documentation
16/20
Setup experience
13/20
Why each score
Reliability 10/20
Static review only: no SERVER MANIFEST, no executed commands, and no committed test files or verifiable CI workflow port/introspection evidence in the supplied material; the CI status badge is unverifiable evidence. The README describes 70+ tools, a single report registry shared by CLI and MCP (claimed to prevent id/JSON Schema drift), deterministic JSON, JUnit output, and --fail-on for CI, which suggests the happy path is designed for reproducibility. But absent committed tests or any real tool-list handshake evidence, the static calibration caps this at 12; scoring 10 reflects a plausible happy path with thin verifiable edge-case/error-handling evidence.
Security and permissions 13/20
Credential handling is documented in detail: Google OAuth tokens prefer the system keychain with a 0600 private-file fallback; provider secrets (DataForSEO, Semrush, Ahrefs, Bing, IndexNow key) follow the same keychain-plus-file pattern with SEO_* env vars for CI. IndexNow validates the public key file before a live request, supports --dry-run, caps at 1,000 unique URLs, and requires the configured host. Data-flow boundaries are stated: selected Search Console query or derived seed text goes to a research provider only when explicitly enabled, and Google credentials, property IDs, Search Console metrics, and GA4 rows are never sent; local imports are not uploaded. However all of this is README self-assertion — implementation cannot be verified. Third-party provider packages installed via `seo providers install` execute arbitrary code on the user's machine; version/publisher/repo/integrity/code warnings are mentioned but no sandbox, permission isolation, or persistent confirmation is described. Service accounts and provider keys grant broad API scope. No malware, credential theft, covert exfiltration, or confirmation-less destructive default was found, so no red line; deducted 7 for unverifiable least-privilege and third-party-install confirmation gaps.
Maintenance 12/20
Repository is not archived, has 0 open issues, and 495 stars (discovery signal only, not scored). A clear Apache-2.0 license plus a TRADEMARKS policy is present, SECURITY.md gives a private vulnerability-reporting channel, AGENTS.md documents contributor architecture and report-quality rules, and the README lists a pnpm quality gate (build/typecheck/test/lint/pack) plus npm publication and two first-party provider package examples. This indicates clear ownership, licensing, and a security-response path. Deductions: static material cannot verify commit cadence, release rhythm, dependency-update policy, or issue-response latency, and there is no explicit version-compatibility/API-stability commitment beyond provider apiVersion: 1. Hence 12 rather than a high score.
Documentation 16/20
Documentation is layered: quick start, command overview (seo help), report discovery (seo reports list/describe), research-provider and local-export field-mapping details (CSV/TSV/JSON/JSONL/NDJSON, UTF-8/UTF-16 detection, SHA-256 hash, row/column counts and caps), a Google data guide, TypeScript library usage, CI examples, privacy and telemetry pages, and cost disclosure (provider API billing with estimated/actual cost, cache state, and request bounds recorded per report). Limitations are disclosed honestly and repeatedly: observed evidence is kept separate from derived findings and recommended actions, partial data is never reported as zero, heuristics are labeled, an accepted IndexNow request does not prove indexing, user agents can be spoofed, and provider metrics are estimates. Deductions: everything is repo self-description, the missing SERVER MANIFEST prevents cross-checking tool parameters against real exposure, exact provider JSON parameter formats live on an external site rather than in-repo, and there is no consolidated troubleshooting guide (only seo doctor / seo privacy for auth and keychain issues). Scored 16.
Setup experience 13/20
The install path is clear: Node 22+, npm i -g seo, seo start walks through Google sign-in and a local project profile, and seo mcp install supports --codex/--claude-code/--cursor/--claude-desktop with client auto-detection, while any local stdio client can use seo mcp serve manually. No Google API key is required and a purely local technical audit works with no sign-in at all (seo report --url). CI needs no browser, using a service-account JSON or SEO_* env vars. Deductions: no concrete client config-file JSON snippets are provided, setup relies on interactive prompts, research providers and the Clicky/SerpBase packages require extra installs and manual credential connection, cross-platform behavior (Windows keychain fallback, headless machines) is only briefly described, and under static calibration setup cannot exceed 15 without execution evidence. Scored 13.

Static review · not runListed 2026-09-18

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesUses the network

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

Setup

Before you start

Runtime:Node.js 22+

SEO_GOOGLE_SERVICE_ACCOUNT_JSON optionalsecret Google service account JSON key used in CI via the secret store, for browser-free Search Console and Google Analytics access.
SEO_CLICKY_SITEKEY optionalsecret Clicky analytics sitekey for agents and CI, set for the current process instead of the managed secret store.
SEO_BING_API_KEY optionalsecret Bing Webmaster Tools API key (from Settings > API Access); setting it lets agents and CI run Bing reports without saving the key.
SEO_INDEXNOW_KEY optionalsecret IndexNow submission key for the current process, used instead of the local key mapping.
  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.

Check that it works

After installing into an MCP client (seo mcp install), check that seo_run_report, seo_list_providers, seo_describe_provider, and seo_run_provider appear in the client's tool list; calling seo_list_providers and getting the installed provider list confirms the connection works.

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

Things to try

Once connected, you can ask your AI assistant things like:

  • Run the main SEO report for sc-domain:example.com with seo_run_report
  • List the research providers installed on this machine
  • Use seo_run_provider to run a domain-overview report for example.com
  • Describe the input parameters for the keyword-research report

Tools 4

seo_run_report read-only
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 read-only
Lists the provider packages installed on the same computer as the MCP server.
seo_describe_provider read-only
Returns a provider package's declared action input and output JSON Schemas so an agent can discover runnable actions.
seo_run_provider read-only
Runs an action defined by a provider package by provider id and action id, validating input and output against the package schemas.

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

Codex
Claude Code
Claude Desktop
Cursor

Listed from the project's documentation, not tested by this site.

Overview

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.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 64.1k · Tools 2 Compare with this →

Source revision 817b43eea4dc Data synced 2026-11-02 Read the FMRS scoring method