Google Search Console

by aminforou

55 stars
1.7k downloads
Not rated
GitHub

About

Integrates with Google Search Console API to provide website search performance analytics, indexing status monitoring, and sitemap management for SEO professionals

Details

Author
aminforou
Repository
AminForou/mcp-gsc
GitHub stars
55
Downloads
1,650
License
MIT License
Categories
Marketing, Other, AI, Design, Developer Tools, Search, Security, Infrastructure
Tags
#web, #analytics

- List all GSC properties with verification and ownership details.
- Get top queries and pages with clicks, impressions, CTR, position.
- Compare search performance between two time periods.
- Inspect single or batch URLs for crawl/indexing status.
- Manage sitemaps: view, submit, delete.
- get_capabilities tool lists all available tools and auth status.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Google Search Console
    Command (node, npx, python, etc.) /FULL/PATH/TO/uvx
    Arguments
    • Argument 1 mcp-search-console
    Environment
    • GSC_OAUTH_CLIENT_SECRETS_FILE /full/path/to/client_secrets.json

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

<div align="center">
<a href="https://www.youtube.com/watch?v=vhIOoD7B8Ow">
<img src="assets/seo-mcp-install-video-1.jpg" alt="GSC MCP Server Installation Guide 2026" width="600" style="margin: 20px 0; border-radius: 8px;">
</a>
</div>

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

---

curl -LsSf https://astral.sh/uv/install.sh | sh

get_capabilities

Lists all tools and shows auth status — call this first if unsure.

list_properties

Shows all your GSC properties.

get_site_details

Details about a specific site. Parameter: Site URL.

get_search_analytics

Top queries and pages with clicks, impressions, CTR, position. Parameters: Site URL, time period.

get_performance_overview

Summary of site performance. Parameters: Site URL, time period.

compare_search_periods

Compare performance between two time periods. Parameters: Site URL, two date ranges.

get_search_by_page_query

Search terms driving traffic to a specific page. Parameters: Site URL, page URL.

get_advanced_search_analytics

Analytics with filters by country, device, query, page. Parameter: Site URL.

inspect_url_enhanced

Detailed crawl/index status for a URL. Parameters: Site URL, page URL.

batch_url_inspection

Inspect up to 10 URLs at once. Parameters: Site URL, list of URLs.

check_indexing_issues

Check multiple URLs for indexing problems. Parameters: Site URL, list of URLs.

get_sitemaps

Lists all sitemaps for a site. Parameter: Site URL.

list_sitemaps_enhanced

Detailed sitemap info including errors and warnings. Parameter: Site URL.

manage_sitemaps

Submit or delete sitemaps. Parameters: Site URL, action.

reauthenticate

Re-run the OAuth browser login (switch accounts).

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

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

---

<div align="center">
<a href="https://www.advancedgsc.com/mcp?utm_source=github&utm_medium=readme&utm_campaign=mcp-gsc&utm_content=banner">
<img src="assets/banner-1.jpg" alt="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." width="800" style="margin: 20px 0; border-radius: 8px;">
</a>
</div>

---

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

Linux

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

Macos

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

Windows

{
    "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
    },
    "args": [
        "mcp-search-console"
    ],
    "command": "/FULL/PATH/TO/uvx"
}
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, added GA4 tools. Works with Claude Desktop, Claude Code, Claude.ai, Codex, Cursor, and any MCP client. Only**100 seats**. →](https://search.google.com/search-console/about)[**Advanced GSC MCP (hosted)** - **Fixed fresh installs broken by`mcp`2.0**— pinned`mcp](https://www.advancedgsc.com/mcp?utm_source=github&amp;utm_medium=readme&amp;utm_campaign=mcp-gsc&amp;utm_content=hero-callout)[cli]<2.0.0`. The`mcp`SDK 2.0.0 (released 2026-07-28) removed the`mcp.server.fastmcp`module, so every fresh`uvx mcp-search-console`install crashed on startup with`ModuleNotFoundError: No module named 'mcp.server.fastmcp'`. New installs now resolve a working 1.x SDK again — no`--with "mcp<2"`workaround needed. - **OAuth browser flow fixed for uvx**— removed the`isatty`block that prevented the browser login window from opening when running as an MCP subprocess on macOS. OAuth now works out of the box with`uvx`, no manual terminal run needed. - **`get_capabilities`tool added**— call this to get a full list of available tools and current auth status in one shot. Useful when your AI assistant isn't sure what tools are available. - **Better auth error messages**— all tools now tell you exactly what to do when credentials are missing or expired. - See all your GSC properties in one place - Get verification details and ownership information - Add or remove properties from your account - 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 - Check if specific pages have indexing problems - See when Google last crawled your pages - Inspect multiple URLs at once to identify patterns - View all sitemaps and their status - Submit new sitemaps - Check for errors or warnings *Ask your AI assistant to "call get_capabilities" for the full list of all 20 tools.* You need credentials before configuring any client. Pick one method: #### Option A — OAuth (Recommended — uses your own Google account) - Go to[Google Cloud Consoleand create or select a project - ](https://console.cloud.google.com/)[Enable the Search Console API - Go to](https://console.cloud.google.com/apis/library/searchconsole.googleapis.com)[Credentials→ Create Credentials →**OAuth client ID** - Configure the OAuth consent screen, select**Desktop app**, click Create - Download the JSON file — save it somewhere permanent (e.g.`~/Documents/client_secrets.json`) #### Option B — Service Account (For automation or team use) - Go to](https://console.cloud.google.com/apis/credentials)[Google Cloud Consoleand create or select a project - ](https://console.cloud.google.com/)[Enable the Search Console API - Go to](https://console.cloud.google.com/apis/library/searchconsole.googleapis.com)[Credentials→ Create Credentials →**Service Account** - Go to the Keys tab → Add Key → Create new key → JSON → Download - Save the file somewhere permanent (e.g.`~/Documents/service_account.json`) - 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 *Updated 2026 — covers the full installation process using the new uvx method, from setting up your Google credentials to your first successful query.* 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` ``` **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. Config file:`~/Library/Application Support/Claude/claude_desktop_config.json` ``` `{ "mcpServers": { "gscServer": { "command": "/FULL/PATH/TO/uvx", "args": ](https://console.cloud.google.com/apis/credentials)["mcp-search-console"], "env": { "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json" } } } }` ``` ``` `{ "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" } } } }` ``` ``` `{ "mcpServers": { "gscServer": { "command": "/FULL/PATH/TO/uvx", "args": ["mcp-search-console"], "env": { "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json" } } } }` ``` ``` `[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" }` ``` ``` `[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. **Prefer a video walkthrough for this method?**The tutorial below covers the clone install path step by step — virtual environment setup, dependencies, and config: 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 newerand 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. ``` `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. ``` `uv venv .venv uv pip install -r requirements.txt` ``` **Configure your AI client**(Claude Desktop example): ``` `{ "mcpServers": { "gscServer": { "command": "/full/path/to/mcp-gsc/.venv/bin/python", "args": ](https://www.python.org/downloads/)["/full/path/to/mcp-gsc/gsc_server.py"], "env": { "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json" } } } }` ``` ``` `{ "mcpServers": { "gscServer": { "command": "/full/path/to/mcp-gsc/.venv/bin/python", "args": ["/full/path/to/mcp-gsc/gsc_server.py"], "env": { "GSC_CREDENTIALS_PATH": "/full/path/to/service_account.json", "GSC_SKIP_OAUTH": "true" } } } }` ``` - Python:`/Users/yourname/Documents/mcp-gsc/.venv/bin/python` - Script:`/Users/yourname/Documents/mcp-gsc/gsc_server.py` Ask your AI assistant:**"List my GSC properties"** If you see your properties — it's working. If not, ask:**"Call get_capabilities"**to see auth status and diagnose the issue. One-click install available — search for`mcp-search-console`in the Cursor Marketplace. After installing, configure your credentials (see Step 1 above) then use the bundled skills directly in Cursor Agent chat: ### `spawn uvx ENOENT`or`command not found: uvx` Your AI client can't find`uvx`. Use the full path instead of just`uvx`: ``` `# Find your full path (macOS/Linux): which uvx # Typically: /Users/YOUR_NAME/.local/bin/uvx` ``` ``` `# Find your full path (Windows PowerShell): Get-Command uvx | Select-Object -ExpandProperty Source # Typically: C:\Users\YOUR_NAME\.local\bin\uvx.exe` ``` Replace`"command": "uvx"`with the full path (e.g.`"command": "/Users/YOUR_NAME/.local/bin/uvx"`) in your config. ### `uv --version`gives "command not found" right after installing The installer updates`~/.local/bin`but your current Terminal session doesn't see it yet. Run: ``` `echo 'source $HOME/.local/bin/env' >> ~/.zshrc` ``` ### Authentication failed / credentials file not found Make sure you are using the**absolute path**to your credentials file — not a relative path, not`~/`. Example: ``` `/Users/yourname/Documents/client_secrets.json ✅ ~/Documents/client_secrets.json ✅ client_secrets.json ❌` ``` ### MCP only works in Claude Desktop app, not the website The MCP server runs locally on your machine. It only works in the**Claude Desktop app**(downloaded from[claude.ai/download), not in the claude.ai browser interface. - Make sure all file paths in your config are correct absolute paths - Fully quit (`Cmd+Q`) and reopen the app after any config change — just closing the window is not enough - Ask your AI assistant to "call get_capabilities" — it will report the exact auth status and error By default,`add_site`,`delete_site`, and`delete_sitemap`are disabled. To enable them: ``` `"GSC_ALLOW_DESTRUCTIVE": "true"` ``` ## Remote Deployment & Docker (Advanced) The standard setup runs the server locally. This section is only for users who want to run it on a remote server or in a container. ``` `MCP_TRANSPORT=sse MCP_HOST=0.0.0.0 MCP_PORT=3001 python gsc_server.py` ``` ``` `docker build -t mcp-gsc . docker run \ -e MCP_TRANSPORT=sse \ -e MCP_HOST=0.0.0.0 \ -e MCP_PORT=3001 \ -e GSC_CREDENTIALS_PATH=/app/credentials.json \ -v /path/to/credentials.json:/app/credentials.json \ -p 3001:3001 \ mcp-gsc` ``` **](https://claude.ai/download)[Advanced GSC Visualizer**— A Chrome extension (14,000+ users) with interactive charts, one-click export of up to 25,000 rows, keyword cannibalization detection, and an AI assistant — all directly inside Google Search Console. Built by the same author.](https://www.advancedgsc.com/?utm_source=github&amp;utm_medium=readme&amp;utm_campaign=mcp-gsc&amp;utm_content=related-tools)[Install from the Chrome Web Store → Found a bug or have an idea for improvement? Open an issue or submit a pull request on GitHub. MIT License. See the](https://chromewebstore.google.com/detail/advanced-gsc-visualizer/cdiccpnglfpnclonhpchpaaoigfpieel)[LICENSEfile for details. - Pinned`mcp](https://github.com/AminForou/mcp-gsc/blob/HEAD/LICENSE)[cli]>=1.3.0,<2.0.0`. The`mcp`SDK 2.0.0 removed`mcp.server.fastmcp`, breaking all fresh`uvx`installs with`ModuleNotFoundError`. Capping below 2.0 restores working installs. (Fixes #41) - **OAuth browser flow fixed for uvx**— removed`isatty`block that prevented the OAuth browser window from opening when running as an MCP subprocess on macOS. OAuth +`uvx`now works out of the box. - **`get_capabilities`tool**— returns all available tools grouped by category plus live auth status in one call. - **Better auth error messages**— all tools now explicitly tell you to call`reauthenticate`when credentials are missing or expired. - **Improved`list_properties`description**— better semantic tool discovery in clients that use lazy tool loading. - Fixed`list_properties`masking real auth errors; fail-fast on missing credentials. - Cursor Marketplace plugin with 4 bundled SEO skills - Stable token storage in platform user config dir (survives`uvx`upgrades) - Structured JSON output for all data tools - 39 unit tests - Safety mode for destructive tools (disabled by default) - HTTP/SSE transport for remote deployments - Dockerfile - `reauthenticate`tool for switching Google accounts - Fixed sitemap TypeError crash - Fixed domain property 404 errors - `dataState: "all"`by default (matches GSC dashboard) - Flexible`row_limit`parameter (up to 500) - Multi-dimension filtering for advanced analytics - 19 tools covering property management, search analytics, URL inspection, and sitemap management - OAuth and service account authentication Free MCP that drives an audit of your marketing. Your AI connects, adsOS digs through your ads, email and site, and hands back a growth plan you can run today. Answers questions on AEO, SEO, web development and branding from the published material of GOJI, a Melbourne digital agency, with a goji.agency URL to cite on every result. Technical SEO audits and crawl insights for AI assistants via MCP. MCP server for SEO — run audits and site checks from your AI assistant.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.