AminForou

mcp gsc

Built by AminForou โ€ข 585 stars

What is mcp gsc?

Google Search Console Insights with Claude AI for SEOs

How to use mcp gsc?

1. Install a compatible MCP client (like Claude Desktop). 2. Open your configuration settings. 3. Add mcp gsc using the following command: npx @modelcontextprotocol/mcp-gsc 4. Restart the client and verify the new tools are active.
๐Ÿ›ก๏ธ Scoped (Restricted)
npx @modelcontextprotocol/mcp-gsc --scope restricted
๐Ÿ”“ Unrestricted Access
npx @modelcontextprotocol/mcp-gsc

Key Features

Native MCP Protocol Support
Real-time Tool Activation & Execution
Verified High-performance Implementation
Secure Resource & Context Handling

Optimized Use Cases

Extending AI models with custom local capabilities
Automating system workflows via natural language
Connecting external data sources to LLM context windows

mcp gsc FAQ

Q

Is mcp gsc safe?

Yes, mcp gsc follows the standardized Model Context Protocol security patterns and only executes tools with explicit user-granted permissions.

Q

Is mcp gsc up to date?

mcp gsc is currently active in the registry with 585 stars on GitHub, indicating its reliability and community support.

Q

Are there any limits for mcp gsc?

Usage limits depend on the specific implementation of the MCP server and your system resources. Refer to the official documentation below for technical details.

Official Documentation

View on GitHub

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.

Prefer zero setup? There's also a hosted version of this MCP server with one-click Google sign-in, no Python, no terminal, and added GA4 tools โ€” works in Claude.ai, ChatGPT, Cursor, Claude Desktop, and any MCP client. โ†’ Advanced GSC MCP (hosted) ยท starts at $12/mo during the founding cohort.


What's New

[0.3.2] โ€” April 2026

  • 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.

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.


<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/mcp-banner.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>

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

<div align="center"> <a href="https://www.youtube.com/watch?v=vhIOoD7B8Ow"> <img src="assets/new-video-thumbnail.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.


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: Run which uvx in Terminal after installing uv. On macOS it is typically /Users/YOUR_NAME/.local/bin/uvx. 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:

<div align="center"> <a href="https://youtu.be/PCWsK5BgSd0"> <img src="https://i.ytimg.com/vi/PCWsK5BgSd0/maxresdefault.jpg" alt="Google Search Console API Setup Tutorial" width="600" style="margin: 20px 0; border-radius: 8px;"> </a> </div>

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.

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:

{
  "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"
      }
    }
  }
}

Mac path examples:

  • Python: /Users/yourname/Documents/mcp-gsc/.venv/bin/python
  • Script: /Users/yourname/Documents/mcp-gsc/gsc_server.py

Step 3 โ€” Test

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.


Environment Variables Reference

VariableRequiredDefaultDescription
GSC_OAUTH_CLIENT_SECRETS_FILEOAuth onlyโ€”Absolute path to your OAuth client secrets JSON. Always required when using uvx.
GSC_CREDENTIALS_PATHService account onlyโ€”Absolute path to your service account JSON key. Always required when using uvx.
GSC_SKIP_OAUTHNofalseSet to "true" to force service account auth and skip OAuth entirely
GSC_DATA_STATENo"all""all" matches the GSC dashboard. "final" returns only confirmed data (2โ€“3 day lag).
GSC_ALLOW_DESTRUCTIVENofalseSet to "true" to enable add/delete site and delete sitemap tools

Cursor Marketplace

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:

SkillHow to invokeWhat it does
seo-weekly-report"Run the SEO weekly report for example.com"Full 28-day performance summary with period-over-period comparison and top queries
cannibalization-check"Check for keyword cannibalization on example.com"Finds queries where multiple pages compete; recommends which to keep
indexing-audit"Audit indexing for my top pages"Batch-inspects top 20 pages and returns a prioritized fix list
content-opportunities"Find content opportunities for example.com"Surfaces position-11-20 queries with high impressions and low CTR

Sample Prompts

ToolSample Prompt
list_properties"List all my GSC properties and tell me which ones have the most pages indexed."
get_search_analytics"Show me the top 20 search queries for mywebsite.com in the last 30 days, highlight any with CTR below 2%, and suggest title improvements."
get_performance_overview"Create a visual performance overview of mywebsite.com for the last 28 days, identify any unusual drops or spikes, and explain possible causes."
check_indexing_issues"Check these pages for indexing issues: mywebsite.com/product, mywebsite.com/services, mywebsite.com/about"
inspect_url_enhanced"Do a comprehensive inspection of mywebsite.com/landing-page and give me actionable recommendations."
compare_search_periods"Compare my site's performance between January and February. What queries improved the most?"
get_advanced_search_analytics"Analyze queries with high impressions but positions below 10, filtered to mobile traffic in the US only."

Troubleshooting

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:
which uvx
# Typically: /Users/YOUR_NAME/.local/bin/uvx

Replace "command": "uvx" with "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:

source $HOME/.local/bin/env

Then add it permanently:

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.

AI Client Configuration Issues

  1. Make sure all file paths in your config are correct absolute paths
  2. Fully quit (Cmd+Q) and reopen the app after any config change โ€” just closing the window is not enough
  3. Ask your AI assistant to "call get_capabilities" โ€” it will report the exact auth status and error

Safety: Destructive Operations

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.

HTTP Transport

MCP_TRANSPORT=sse MCP_HOST=0.0.0.0 MCP_PORT=3001 python gsc_server.py
VariableDefaultDescription
MCP_TRANSPORTstdioSet to sse for network/remote use
MCP_HOST127.0.0.1Host to bind
MCP_PORT3001Port to bind

Docker

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

Related Tools

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. Install from the Chrome Web Store โ†’


Contributing

Found a bug or have an idea for improvement? Open an issue or submit a pull request on GitHub.


License

MIT License. See the LICENSE file for details.


Changelog

[0.3.2] โ€” April 2026

  • 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.

[0.3.1] โ€” April 2026

  • Fixed list_properties masking real auth errors; fail-fast on missing credentials.

[0.3.0] โ€” April 2026

  • 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

[0.2.2] โ€” April 2026

  • Safety mode for destructive tools (disabled by default)
  • HTTP/SSE transport for remote deployments
  • Dockerfile

[0.2.1] โ€” March 2026

  • reauthenticate tool for switching Google accounts
  • Fixed sitemap TypeError crash
  • Fixed domain property 404 errors

[0.2.0] โ€” March 2026

  • dataState: "all" by default (matches GSC dashboard)
  • Flexible row_limit parameter (up to 500)
  • Multi-dimension filtering for advanced analytics

[0.1.0] โ€” Initial release

  • 19 tools covering property management, search analytics, URL inspection, and sitemap management
  • OAuth and service account authentication

Global Ranking

-
Trust ScoreMCPHub Index

Based on codebase health & activity.

Manual Config

{ "mcpServers": { "mcp-gsc": { "command": "npx", "args": ["mcp-gsc"] } } }