← Back to directory
G

Google Search Console MCP Server

Community
Analyze Google Search Console SEO data through natural-language chats with your AI assistant
Category
Other #51 of 230
Stars
★ 2.0k Very popular
Transport
stdio (local process) · SSE
Runtime
Python 3.11+ · Docker · Prebuilt binary
Credentials
API key / credential required
License
MIT
Last commit
Tools
15
63FMRS · C

This is a community-maintained, MIT-licensed, unofficial MCP server that connects Google Search Console to MCP-capable AI clients. Its strengths are broad coverage of the SEO workflow — properties, search analytics, URL inspection, and sitemap management — plus uvx-based installation without cloning, two authentication options, and optional sse transport for remote deployment. The trade-off is that users must create their own Google Cloud credentials and manage credentials and account permissions themselves, and the cloned install requires Python 3.11+. It suits SEO users willing to set things up themselves, and is not aimed at those who only want a web interface or don't want to manage credentials.

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

Reliability
10/20
Security and permissions
10/20
Maintenance
13/20
Documentation
16/20
Setup experience
14/20
Why each score
Reliability 10/20
The README shows a clear release history, 39 unit tests cited in 0.3.0, and multiple fixes for real startup failures, indicating the key paths have been maintained. However, this is a purely static review: no cached manifest was supplied and no CI workflow or committed test files are visible, so the MCP init and tool-list handshake cannot be verified as reproducible. Tool counts are internally inconsistent: the table lists 16 tools while text says 'all 20 tools', and the 0.1.0 changelog claims 19 tools, casting doubt on declared-vs-actual behavior. Pinning mcp<2.0 shows good dependency control. Under static calibration reliability is capped at 12; score 10.
Security and permissions 10/20
Real strengths: destructive operations add_site/delete_site/delete_sitemap are disabled by default and require explicit GSC_ALLOW_DESTRUCTIVE=true, matching least-privilege and explicit-confirmation principles; credentials are passed as local file paths via env vars for both OAuth and service accounts, with no hardcoded tokens or secrets visible. Deductions: all data tools return sensitive account-level Search Console performance data, yet disclosure of data flow and whether responses are logged is thin; the HTTP/SSE remote deployment example binds 0.0.0.0 with no authentication or access control described, expanding exposure; token storage is only vaguely described as a platform user config directory, so file permissions cannot be verified. No red-line trigger (no malware, no covert exfiltration, destructive ops not default), hence 10.
Maintenance 13/20
Strong signals: version sequence 0.1.0 to 0.3.3 spans multiple releases with specific changelog entries (fixing mcp 2.0 ModuleNotFoundError, OAuth isatty, sitemap TypeError, domain-property 404) and a concrete issue reference (#41), showing the author tracks dependencies and defects. MIT license is clear. 11 open issues and not archived. Deductions: no security-response channel or SECURITY policy, no documented governance or release process, contact only via GitHub issues, and the author concurrently promotes a commercial hosted version (advancedgsc.com), creating an interest overlap in the docs, though not disqualifying. Score 13.
Documentation 16/20
Coverage is unusually thorough: step-by-step credential setup for both OAuth and service accounts, two install methods (uvx and clone), multi-client config examples (Claude Desktop, Cursor, Codex CLI), a full environment variable table with defaults and required flags, a destructive-operation switch, remote/Docker deployment, a troubleshooting section (spawn uvx ENOENT, Python version, absolute paths, desktop-app-only limitation), and a changelog. Limitations are disclosed: Python 3.11+ with a note that GUI launches fail silently, plus client restrictions. Deductions: tool-count statements contradict each other (16-row table vs '20 tools' vs 19 tools), tool parameters only give coarse 'what you need to provide' without types or ranges (only row_limit's 500 is noted), quota/cost has no dedicated section, and heavy promotional content for the hosted product and videos dilutes technical material. Score 16.
Setup experience 14/20
Install paths are clear and tiered: the recommended uvx route needs three steps to install uv plus a JSON/TOML snippet, with complete config blocks per mainstream client and instructions to resolve the absolute uvx path (which uvx / PowerShell), and the clone route documents venv and dependencies. Cross-platform notes (macOS/Linux/Windows) and common-error fixes are present. Deductions: users must still create a Google Cloud project, enable the Search Console API, configure the OAuth consent screen, and download key files, a multi-step burden for non-technical SEO users; requiring the full absolute uvx path is an easy mistake; first-run OAuth needs a browser, so headless environments fail. Nothing was executed, and setup is capped at 15 under static calibration; score 14.

Static review · not runListed 2026-09-10

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • SEO practitioners who regularly analyze GSC search performance data
  • Users of MCP-compatible clients such as Claude Desktop, Cursor, Codex CLI, Gemini CLI, or Antigravity
  • Individuals and small teams who prefer natural-language conversation over manually exporting reports
  • Users willing to configure their own Google Cloud credentials and run the server locally

Not for

  • Users who only want claude.ai in the browser and won't install the desktop app (the MCP server runs locally)
  • Users who don't want to create a Google Cloud project and API credentials
  • Users who need a hosted one-click sign-in with GA4 tools (the source points to a separate hosted version limited to 100 seats)
  • Users running a cloned install on Python 3.10 or older

Required permissions

  • Google Search Console API access (read search analytics and site data)
  • OAuth path requires Google account authorization, with the token cached locally
  • Service account path requires adding the service account email as a Full access user on your GSC property
  • Credential JSON file paths are provided by the user via the client config env
  • Destructive operations (add_site, delete_site, delete_sitemap) are disabled by default and require explicitly setting GSC_ALLOW_DESTRUCTIVE=true

Risks and side effects

  • Credential JSON files contain sensitive keys and must be protected and kept out of version control
  • If GSC_ALLOW_DESTRUCTIVE is enabled, the AI assistant can perform destructive actions such as adding/removing sites and deleting sitemaps
  • Remote deployment with sse transport bound to 0.0.0.0 exposes the service on the network, so you must assess access-control risk yourself
  • OAuth tokens are cached in the local platform user config directory, which may have access boundaries on multi-user machines
  • Service account keys are long-lived, so a leak has a broad impact

Setup

Before you start

Runtime:Python 3.11+ · Docker · Prebuilt binary

GSC_OAUTH_CLIENT_SECRETS_FILE requiredsecret Absolute path to your OAuth client secrets JSON; obtained by creating an OAuth Desktop client in Google Cloud Console after enabling the Search Console API.
GSC_CREDENTIALS_PATH optionalsecret Absolute path to your service account JSON key; created in Google Cloud Console under the service account's Keys tab.
Other optional settings (6)
GSC_SKIP_OAUTH optional Set to "true" to force service account authentication and skip the OAuth browser login entirely.
GSC_DATA_STATE optional Data state, defaults to "all" to match the GSC dashboard; "final" returns only confirmed data (2–3 day lag).
GSC_ALLOW_DESTRUCTIVE optional Set to "true" to enable add/delete site and delete sitemap tools; disabled by default.
MCP_TRANSPORT optional Transport mode, defaults to stdio; set to sse for remote/network deployments.
MCP_HOST optional Host to bind for remote deployments, default 127.0.0.1 (example uses 0.0.0.0).
MCP_PORT optional Port to bind for remote deployments, default 3001.
  1. Set up Google API credentials: create a project in Google Cloud Console, enable the Search Console API, then either create an OAuth client ID (Desktop app, download the JSON to a permanent location) or create a service account and download its JSON key (the service account email must be added to your GSC property as a Full access user).
  2. Install uv and run all three commands in order: curl -LsSf https://astral.sh/uv/install.sh | sh; source $HOME/.local/bin/env; echo 'source $HOME/.local/bin/env' >> ~/.zshrc; then verify with uv --version.
  3. Add an mcpServers entry to your AI client config, using the full path to uvx as command (find it with which uvx on macOS/Linux), args ["mcp-search-console"], and env with either GSC_OAUTH_CLIENT_SECRETS_FILE or GSC_CREDENTIALS_PATH plus GSC_SKIP_OAUTH. Claude Desktop config is ~/Library/Application Support/Claude/claude_desktop_config.json, Cursor is ~/.cursor/mcp.json, and Codex CLI is ~/.codex/config.toml.
  4. Fully quit the app (Cmd+Q) and reopen it after saving.
  5. Test by asking your assistant to "List my GSC properties"; if it fails, ask it to "call get_capabilities" to see auth status. The clone-based install requires Python 3.11+ and uses uv venv .venv and uv pip install -r requirements.txt.
claude_desktop_config.json
{
  "mcpServers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": ["mcp-search-console"],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": [
        "mcp-search-console"
      ],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add gscServer -e GSC_OAUTH_CLIENT_SECRETS_FILE=/full/path/to/client_secrets.json -- /FULL/PATH/TO/uvx mcp-search-console

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After saving the client config and restarting the app, ask your AI assistant "List my GSC properties" — seeing your properties confirms the connection; otherwise ask it to "call get_capabilities" to check auth status.

Troubleshooting

  1. spawn uvx ENOENT or command not found: uvx — use the full absolute path to uvx in your config (which uvx on macOS/Linux; Get-Command uvx | Select-Object -ExpandProperty Source on Windows)
  2. uv --version says command not found right after installing — run source $HOME/.local/bin/env and append it to ~/.zshrc
  3. Authentication failed or credentials file not found — make sure you use an absolute path, not a relative path or ~/ form
  4. MCP only works in the Claude Desktop app, not the website — this is expected; download the desktop app from claude.ai/download
  5. Config changes don't take effect — fully quit the app (Cmd+Q) and reopen; closing the window isn't enough
  6. Cloned install fails to start with no log — confirm Python 3.11 or newer, otherwise recreate the virtual environment
  7. Unsure which tools are available or what the auth state is — have the assistant call get_capabilities
  8. Fresh uvx installs crash on mcp 2.0 (ModuleNotFoundError: No module named 'mcp.server.fastmcp') — fixed in 0.3.3 by pinning mcp[cli]<2.0.0
  9. The OAuth browser window doesn't open on macOS under uvx — fixed in 0.3.2

Things to try

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

  • List all my GSC properties.
  • Show me the top 20 search queries for mywebsite.com in the last 30 days and highlight any with CTR below 2%.
  • Check these pages for indexing issues: mywebsite.com/product, mywebsite.com/services, mywebsite.com/about
  • Compare my site's performance between January and February — which queries improved the most?

Tools 15

get_capabilities read-only
Lists all tools and shows current auth status — call this first if unsure
list_properties read-only
Shows all your GSC properties
get_site_details read-only
Details about a specific site
get_search_analytics read-only
Top queries and pages with clicks, impressions, CTR, and position
get_performance_overview read-only
Summary of site performance
compare_search_periods read-only
Compare performance between two time periods
get_search_by_page_query read-only
Search terms driving traffic to a specific page
get_advanced_search_analytics read-only
Analytics with filters by country, device, query, and page
Show 7 more tools
inspect_url_enhanced read-only
Detailed crawl and index status for a URL
batch_url_inspection read-only
Inspect up to 10 URLs at once
check_indexing_issues read-only
Check multiple URLs for indexing problems
get_sitemaps read-only
Lists all sitemaps for a site
list_sitemaps_enhanced read-only
Detailed sitemap info including errors and warnings
manage_sitemaps writes
Submit or delete sitemaps
reauthenticate read-only
Re-run the OAuth browser login (switch accounts)

Use cases

Ask in natural language which search queries bring traffic, along with clicks, impressions, CTR, and position
Compare performance between two time periods and find the queries that improved the most
Check whether specific pages have indexing problems and when Google last crawled them
Inspect multiple URLs in batch to spot recurring patterns
View, submit, or delete sitemaps and check for errors and warnings
Run advanced search analytics filtered by country, device, query, or page
Have the assistant build performance charts and suggest title improvements

Supported clients

Claude Desktop
Cursor
Codex
Gemini CLIPartial support
AntigravityPartial support

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

Overview

This is a Model Context Protocol (MCP) server that connects Google Search Console (GSC) to AI assistants so you can analyze SEO data through natural-language conversation. It covers property management, search analytics and reporting, URL inspection and indexing status, and sitemap management, and can have the assistant visualize data with charts. The server runs locally and supports two authentication paths: OAuth browser sign-in (recommended, uses your own Google account) or a service account (for automation or team use). Client configs require absolute paths to your credentials file; on first use OAuth opens a browser window, after which the token is cached. It can run without installation via uvx, or from a cloned repository (requires Python 3.11+). It also supports remote/network deployment with MCP_TRANSPORT=sse and running in Docker. Tools provided include property listing, site details, search analytics, performance overview, period comparison, per-page queries, advanced filtered analytics, URL inspection, batch URL inspection, indexing issue checks, sitemap viewing and management, reauthentication, and get_capabilities.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

Source revision d49eea9e5efb Data synced 2026-10-19 Read the FMRS scoring method