Skip to content
Marketing
MCP

mcp-search-console

Retrieves keyword rankings, click and impression data, and indexing status from Google Search Console.

From plugin
mcp-search-console
2.2k4 skills1 MCP

Claude Code

$ claude mcp add mcp-search-console -e GSC_CREDENTIALS_PATH=YOUR_VALUE -e GSC_OAUTH_CLIENT_SECRETS_FILE=YOUR_VALUE -e GSC_DATA_STATE=YOUR_VALUE -- uvx mcp-search-console

Security report

Found

Low risk

  • Known flaws

    None known

  • Signed build

    No

    No build provenance published

  • Maintained

    Nov 6, 2026

    Last push

  • Licence

    MIT

  • Runs as

    uvx

    On your machine

  • Deprecated

    No

Signals from public registries, not an audit. Checked Nov 11, 2026.

mcp-search-console README

Google Search Console MCP Server for SEOs

A Model Context Protocol (MCP) server that connects Google Search Console (GSC) to AI assistants, allowing you to analyze your SEO data through natural language conversations. Works with Claude Desktop, Cursor, Codex CLI, Gemini CLI, Antigravity, and any other MCP-compatible client.

Skip setup, get more. A more advanced hosted version — one-click sign-in, GA4, Google Ads, SERP lookups, keyword research, and a lot more. Works with Claude, ChatGPT, Cursor, Grok, and any other MCP client. → Advanced MCP for SEO professionals (hosted)


What's New

[0.4.2] — November 2026

  • Read-only OAuth tokens work again, and a failed refresh no longer deletes your token — the server now requests only the scope it needs (read-only by default, write only when GSC_ALLOW_DESTRUCTIVE=true) and loads existing tokens with their granted scope, so a webmasters.readonly token refreshes instead of being rejected. A transient refresh failure keeps your token file instead of silently deleting it. Thanks @christian-fastcorp. (#56)
  • Tools no longer block the event loop — blocking Search Console API calls now run in a worker thread, so a slow request no longer stalls every other in-flight tool call. Thanks @kuldiph. (#52)
  • get_advanced_search_analytics pagination fixed when capped — requesting more than 25,000 rows no longer drops the next page; has_more/next_start_row use the effective (capped) limit. Thanks @dajiaohuang. (#62)
  • Optional tool arguments accept an explicit null — nine str | None parameters now validate when a client sends the advertised null default. Thanks @vishalhabib99. (#58)
  • Raised the mcp[cli] floor to >=1.27.2 (kept the <2.0.0 cap) to clear four published SDK advisories. Thanks @prateekparshwa. (#40)

See the full version history in the Changelog below.


What Can This Do?

Property Management

  • See all your GSC properties in one place
  • Get verification details and ownership information
  • Add or remove properties from your account

Search Analytics & Reporting

  • Discover which queries bring visitors to your site
  • Track impressions, clicks, and click-through rates
  • Analyze performance trends and compare time periods
  • Visualize data with charts created by your AI assistant

URL Inspection & Indexing

  • Check if specific pages have indexing problems
  • See when Google last crawled your pages
  • Inspect multiple URLs at once to identify patterns

Sitemap Management

  • View all sitemaps and their status
  • Submit new sitemaps
  • Check for errors or warnings

Available Tools

ToolWhat It DoesWhat You Need to Provide
get_capabilitiesLists all tools and shows auth status — call this first if unsureNothing
list_propertiesShows all your GSC propertiesNothing
get_site_detailsDetails about a specific siteSite URL
get_search_analyticsTop queries and pages with clicks, impressions, CTR, positionSite URL, time period
get_performance_overviewSummary of site performanceSite URL, time period
compare_search_periodsCompare performance between two time periodsSite URL, two date ranges
get_search_by_page_querySearch terms driving traffic to a specific pageSite URL, page URL
get_advanced_search_analyticsAnalytics with filters by country, device, query, pageSite URL
inspect_url_enhancedDetailed crawl/index status for a URLSite URL, page URL
batch_url_inspectionInspect up to 10 URLs at onceSite URL, list of URLs
check_indexing_issuesCheck multiple URLs for indexing problemsSite URL, list of URLs
get_sitemapsLists all sitemaps for a siteSite URL
list_sitemaps_enhancedDetailed sitemap info including errors and warningsSite URL
manage_sitemapsSubmit or delete sitemapsSite URL, action
reauthenticateRe-run the OAuth browser login (switch accounts)Nothing

Ask your AI assistant to "call get_capabilities" for the full list of all 20 tools.


Skip setup — try the hosted MCP server with one-click Google sign-in. Works in ChatGPT and Claude web. Includes GA4 and advanced SEO tools.


Getting Started

Step 1 — Set Up Google API Credentials

You need credentials before configuring any client. Pick one method:

Option A — OAuth (Recommended — uses your own Google account)
  1. Go to Google Cloud Console and create or select a project
  2. Enable the Search Console API
  3. Go to Credentials → Create Credentials → OAuth client ID
  4. Configure the OAuth consent screen, select Desktop app, click Create
  5. Download the JSON file — save it somewhere permanent (e.g. ~/Documents/client_secrets.json)

On first use, a browser window will open asking you to sign in to your Google account. After that, the token is saved and no browser interaction is needed again.

Option B — Service Account (For automation or team use)
  1. Go to Google Cloud Console and create or select a project
  2. Enable the Search Console API
  3. Go to Credentials → Create Credentials → Service Account
  4. Go to the Keys tab → Add Key → Create new key → JSON → Download
  5. Save the file somewhere permanent (e.g. ~/Documents/service_account.json)
  6. Add the service account email to your GSC property: Search Console → Settings → Users and permissions → Add user → Full access
🎥 Watch the step-by-step setup tutorial for this section

GSC MCP Server Installation Guide 2026

Updated 2026 — covers the full installation process using the new uvx method, from setting up your Google credentials to your first successful query.


Step 2 — Installation

Option A — uvx (Recommended)

No cloning, no Python installation, no virtual environments. uvx downloads and runs the server automatically and keeps it up to date.

Install uv — open Terminal and run all three commands in order:

# 1. Download and install
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Activate in the current Terminal session
source $HOME/.local/bin/env

# 3. Make it permanent for all future sessions
echo 'source $HOME/.local/bin/env' >> ~/.zshrc

Verify:

uv --version

Why all three commands? The installer puts uv in ~/.local/bin, but your already-open Terminal session doesn't know about that folder yet. Step 2 activates it immediately. Step 3 ensures every future Terminal window has it automatically.

Now configure your AI client:


Claude Desktop

Config file: ~/Library/Application Support/Claude/claude_desktop_config.json

OAuth:

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

Service Account:

{
  "mcpServers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": ["mcp-search-console"],
      "env": {
        "GSC_CREDENTIALS_PATH": "/full/path/to/service_account.json",
        "GSC_SKIP_OAUTH": "true"
      }
    }
  }
}

Cursor

Config file: ~/.cursor/mcp.json

OAuth:

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

Codex CLI

Config file: ~/.codex/config.toml

OAuth:

[mcp_servers.gscServer]
command = "/FULL/PATH/TO/uvx"
args = ["mcp-search-console"]
enabled = true
env = { GSC_OAUTH_CLIENT_SECRETS_FILE = "/full/path/to/client_secrets.json" }

Service Account:

[mcp_servers.gscServer]
command = "/FULL/PATH/TO/uvx"
args = ["mcp-search-console"]
enabled = true
env = { GSC_CREDENTIALS_PATH = "/full/path/to/service_account.json", GSC_SKIP_OAUTH = "true" }

Finding your uvx path: On macOS/Linux run which uvx in Terminal after installing uv (typically /Users/YOUR_NAME/.local/bin/uvx). On Windows, run Get-Command uvx | Select-Object -ExpandProperty Source in PowerShell (or where uvx in cmd) — it's usually C:\Users\YOUR_NAME\.local\bin\uvx.exe. Replace /FULL/PATH/TO/uvx in the configs above with that path.

Why the full path? GUI apps like Claude Desktop and Cursor launch without reading your shell config (~/.zshrc), so they don't know about ~/.local/bin. Using the full path guarantees it works regardless of how the app is launched. If you see a spawn uvx ENOENT error, this is the fix.

After saving the config, fully quit the app (Cmd+Q) and reopen it.

For OAuth: on first use, a browser window will open automatically for login. After that, the token is cached and you won't be asked again.


Option B — Clone (Advanced)

Prefer a video walkthrough for this method? The tutorial below covers the clone install path step by step — virtual environment setup, dependencies, and config:

Google Search Console API Setup Tutorial

Use this if you want to modify the code or run a specific local version. This method uses the video tutorial above for the credential setup steps.

Requires Python 3.11+. This server will not start on Python 3.10 or older — and when it's launched by a GUI client like Claude Desktop, it fails silently (no tools appear and no log file is written). Check your version with python --version. If it's below 3.11, install Python 3.11 or newer and recreate your virtual environment. The uvx method (Option A) avoids this entirely by managing the Python version for you, so it's the recommended path on Windows.

Clone the repo:

git clone https://github.com/AminForou/mcp-gsc.git
cd mcp-gsc

Or download the ZIP from the green Code button at the top of this page and unzip it.

Set up the environment:

uv venv .venv
uv pip install -r requirements.txt

Configure your AI client (Claude Desktop example):

OAuth:

{
  "mcpServers": {
    "gscServer": {
      "command": "/full/path/to/mcp-gsc/.venv/bin/python",
      "args": ["/full/path/to/mcp-gsc/gsc_server.py"],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Service Account:

@aminforou
Ships withmcp-search-console

A Model Context Protocol (MCP) server that connects Google Search Console (GSC) to AI assistants, allowing you to analyze your SEO data through natural language conversations.

2.2k4 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
2.2k
Star history of AminForou/mcp-gsc on GitHub, a chart by star-history.com

More MCP servers from other plugins.

NotFair

NotFair

MCP

Ships with notfair: Open-source SEO, GEO, and marketing skills for AI agents. The NotFair Plugin gives Claude Code, Codex,…

notfair1d4.1k
@nowork-studio@nowork-studioInstall MCP
NotFair

NotFair

MCP

Ships with notfair: Open-source SEO, GEO, and marketing skills for AI agents. The NotFair Plugin gives Claude Code, Codex,…

notfair1d4.1k
@nowork-studio@nowork-studioInstall MCP
medialyst

medialyst

MCP

Ships with newsjack: The open-source skills that turn your agent into a full PR team. Install once. Your agent — Claude Code,…

newsjack2w1.7k
@elvisun@elvisunInstall MCP

Questions about mcp-search-console.

Which coding agents can use mcp-search-console?
mcp-search-console works in any agent that reads an MCP config file: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf. Each agent reads it from its own file; this page names the file for each one.
How do I add mcp-search-console to Claude Code?
Run this in your terminal: claude mcp add mcp-search-console -e GSC_CREDENTIALS_PATH=YOUR_VALUE -e GSC_OAUTH_CLIENT_SECRETS_FILE=YOUR_VALUE -e GSC_DATA_STATE=YOUR_VALUE -- uvx mcp-search-console
Is mcp-search-console safe to install?
Low risk. Signals from public registries, not an audit.