A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Google Search Console Insights with Claude AI 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, added GA4 tools. Works with Claude Desktop, Claude Code, Claude.ai, Codex, Cursor, and any MCP client. Only 100 seats. → Advanced GSC MCP (hosted)
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.Property Management
Search Analytics & Reporting
URL Inspection & Indexing
Sitemap Management
| 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.
You need credentials before configuring any client. Pick one method:
~/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.
~/Documents/service_account.json)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
Verify:
uv --version
Why all three commands? The installer puts
uvin~/.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 uvxin Terminal after installing uv (typically/Users/YOUR_NAME/.local/bin/uvx). On Windows, runGet-Command uvx | Select-Object -ExpandProperty Sourcein PowerShell (orwhere uvxin cmd) — it's usuallyC:\Users\YOUR_NAME\.local\bin\uvx.exe. Replace/FULL/PATH/TO/uvxin 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 aspawn uvx ENOENTerror, 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 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:
{
"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:
/Users/yourname/Documents/mcp-gsc/.venv/bin/python/Users/yourname/Documents/mcp-gsc/gsc_server.pyAsk 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.
| Variable | Required | Default | Description |
|---|---|---|---|
GSC_OAUTH_CLIENT_SECRETS_FILE | OAuth only | — | Absolute path to your OAuth client secrets JSON. Always required when using uvx. |
GSC_CREDENTIALS_PATH | Service account only | — | Absolute path to your service account JSON key. Always required when using uvx. |
GSC_SKIP_OAUTH | No | false | Set to "true" to force service account auth and skip OAuth entirely |
GSC_DATA_STATE | No | "all" | "all" matches the GSC dashboard. "final" returns only confirmed data (2–3 day lag). |
GSC_ALLOW_DESTRUCTIVE | No | false | Set to "true" to enable add/delete site and delete sitemap tools |
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:
| Skill | How to invoke | What 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 |
| Tool | Sample 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." |
spawn uvx ENOENT or command not found: uvxYour 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 installingThe 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
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 ❌
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.
Cmd+Q) and reopen the app after any config change — just closing the window is not enoughBy default, add_site, delete_site, and delete_sitemap are disabled. To enable them:
"GSC_ALLOW_DESTRUCTIVE": "true"
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
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | stdio | Set to sse for network/remote use |
MCP_HOST | 127.0.0.1 | Host to bind |
MCP_PORT | 3001 | Port to bind |
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
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 →
Found a bug or have an idea for improvement? Open an issue or submit a pull request on GitHub.
MIT License. See the LICENSE file for details.
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.reauthenticate when credentials are missing or expired.list_properties description — better semantic tool discovery in clients that use lazy tool loading.list_properties masking real auth errors; fail-fast on missing credentials.uvx upgrades)reauthenticate tool for switching Google accountsdataState: "all" by default (matches GSC dashboard)row_limit parameter (up to 500)A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it