Google Search Console MCP Server
Free open source MCP server for Google Search Console: analyse queries, clicks, indexing issues and sitemaps through chat, run locally via uvx with your own Google account.
- Skill Road
- Google Search Console MCP Server
Categories
Description
The Google Search Console MCP Server, originally called mcp-gsc, connects Google Search Console to AI assistants such as Claude Desktop, Claude Code, Cursor, Codex or the Gemini CLI. Instead of clicking through performance reports and exporting data, you simply ask: Which queries brought the most clicks last month? Which pages have lots of impressions but a weak click-through rate? Is this URL indexed at all? MCP, the Model Context Protocol, is an open standard that assistants use to call external tools. The server is a community project by Amin Foroutan, published on GitHub under the MIT licence, and with around 2,000 stars it is one of the best-known SEO servers there. It is not an official Google product.
What can the server do?
According to the README, it offers around 20 tools across four areas. For property management, it lists every website in your account and shows verification details. For performance data, it returns queries and pages with clicks, impressions, click-through rate and position, compares time periods and filters by country, device, query or page. For URL inspection, it shows whether a page is indexed, when Google last crawled it and whether there are problems with structured data, for up to ten URLs at once. For sitemaps, it lists existing files with errors and warnings and submits new ones. A dedicated tool called get_capabilities summarises all features and the current sign-in status and helps with troubleshooting.
Safe by default
Tools that delete something or add properties are switched off by default. Only when you set the environment variable GSC_ALLOW_DESTRUCTIVE to true may the assistant remove websites or delete sitemaps. That is a sensible safeguard, because a misunderstanding in chat should not make a property disappear. GSC_DATA_STATE lets you choose whether you see the data as in the dashboard or only finalised values with a lag of a few days.
Sign in with your own Google account or a service account
The server runs locally on your machine. To set it up, you create a project in Google Cloud Console, enable the Search Console API and create either an OAuth client ID for desktop apps or a service account. With OAuth, you sign in once in the browser with your Google account on first start; the token is stored afterwards. A service account suits automation and teams; its email address must then be added as a user in Search Console. For running it on a server, there is an SSE mode and a Dockerfile.
Cost
The server is free and open source, and Google's Search Console API costs nothing either. All you need is a Google account with access to Search Console and a Google Cloud project. The author also offers a paid hosted variant with additional features; the open source version described here is independent of it.
Who is the Google Search Console MCP Server for?
It pays off for website owners, SEO freelancers and agencies that want to analyse their own Search Console data faster without paying for yet another SEO tool. Typical uses are weekly performance reports, finding pages in positions 11 to 20 with lots of potential, spotting keyword cannibalisation and checking indexing after a relaunch. Setting things up in Google Cloud Console takes a little time the first time round; the guide below walks you through it step by step.
Requirements
A Google account with access to at least one property in Google Search Console, a Google Cloud project with the Search Console API enabled and the Python tool uv (which provides the uvx command). An MCP client such as Claude Desktop, Claude Code, Cursor or Codex.
Installation instructions
Step 1: Enable the Search Console API
Open https://console.cloud.google.com/ and create a new project or select an existing one. Then enable the Google Search Console API for that project at https://console.cloud.google.com/apis/library/searchconsole.googleapis.com.
Step 2: Create credentials (OAuth, recommended)
Go to https://console.cloud.google.com/apis/credentials and click Create credentials, then OAuth client ID. If prompted, configure the OAuth consent screen and choose Desktop app as the application type. Download the JSON file and save it in a permanent location, for example as client_secrets.json in your Documents folder. Do not move this file while you use the server.
Alternatively, for teams and automation: under Credentials, create a service account, download a new JSON key in the Keys tab and add the service account's email address in Search Console under Settings, Users and permissions as a user with full access.
Step 3: Install uv
The server is started with uvx, which is part of uv. On macOS and Linux, open a terminal and run these one after another:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
echo 'source $HOME/.local/bin/env' >> ~/.zshrc
On Windows, open PowerShell and run:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Check the installation:
uv --version
Step 4: Find the full path to uvx
Desktop apps such as Claude Desktop or Cursor often do not know where uv lives. So note down the full path. On macOS and Linux:
which uvx
On Windows in PowerShell:
Get-Command uvx | Select-Object -ExpandProperty Source
Step 5: Add it to Claude Desktop or Cursor
In Claude Desktop, open Settings, Developer, Edit Config to get to claude_desktop_config.json; in Cursor, open ~/.cursor/mcp.json. Add this entry and replace the two paths with the path from step 4 and the path to your JSON file from step 2:
{
"mcpServers": {
"gscServer": {
"command": "/FULL/PATH/TO/uvx",
"args": ["mcp-search-console"],
"env": {
"GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
}
}
}
}
With a service account, use these two environment variables instead:
"env": {
"GSC_CREDENTIALS_PATH": "/full/path/to/service_account.json",
"GSC_SKIP_OAUTH": "true"
}
Then quit the app completely (Cmd+Q on a Mac) and reopen it. Just closing the window is not enough.
Step 6: Alternatively add it to Claude Code
In Claude Code, a single terminal command does the job. Replace the path with the one to your JSON file:
claude mcp add gsc --env GSC_OAUTH_CLIENT_SECRETS_FILE=/full/path/to/client_secrets.json -- uvx mcp-search-console
Step 7: Alternatively add it to Codex
Open the file ~/.codex/config.toml and add:
[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" }
Step 8: Sign in and test
Ask your assistant the first question:
List my Search Console properties.
With OAuth, a browser window opens the first time so you can sign in with your Google account. After that, your websites appear. If something does not work, ask the assistant:
Call get_capabilities and show me the authentication status.
Step 9: Enable delete functions (optional)
Tools for adding and removing properties and for deleting sitemaps are switched off for safety reasons. Only if you really need them, add this to the env block:
"GSC_ALLOW_DESTRUCTIVE": "true"
Common errors
The message spawn uvx ENOENT means the app cannot find uvx. In that case, put the full path from step 4 in the command field. If the server reports that the credentials file is missing, check that you used an absolute path. The server runs locally and therefore works in the Claude desktop app, not in claude.ai in the browser.
claude mcp add gsc --env GSC_OAUTH_CLIENT_SECRETS_FILE=/pfad/zu/client_secrets.json -- uvx mcp-search-console
Authentication
OAuth with your own OAuth client ID (desktop app) from Google Cloud Console, one-time browser sign-in, token stored locally. Alternatively, a service account key (GSC_CREDENTIALS_PATH with GSC_SKIP_OAUTH=true).
Required access permissions
Reading properties, performance data, URL inspections and sitemaps, and submitting sitemaps. Adding and removing properties and deleting sitemaps only with GSC_ALLOW_DESTRUCTIVE=true.
Transmitted or stored data
The server runs locally and talks directly to the Google Search Console API; there is no intermediary service run by the author. Retrieved performance and indexing data enter the AI client context and therefore reach the model provider.
Security risks
The OAuth client file, stored token and service account key grant access to your Search Console data and do not belong in shared folders or repositories. With delete functions enabled, an assistant can remove properties and sitemaps.
License and costs
- License
- MIT
- Cost
- free
Free and open source (MIT). The Google Search Console API is free as well. The author separately offers a paid hosted variant.
Alternatives
Not recorded yet.
At a glance
- Provider
- Amin Foroutan
- Status
- Community
- Deployment
- Local
- Current version
- Not recorded yet.
- Last reviewed
- 27.10.2026
Repository and documentation
Categories
Supported clients
Related guides
Guides and background related to this entry.
Set up Airbyte Agent MCP
Set up Airbyte Agent MCP: connect the hosted server in Claude Code, Cursor, or Claude Desktop, sign in connectors, and run first read-only queries.
23.10.2026
Setting up the Financial Statements Skill: Analyze balance sheets via AI
The Financial Statements Skill calculates ratios from statements. This guide explains input quality, review, and limits.
18.09.2026
Work with spreadsheets using the Spreadsheet Skill
Spreadsheet Skill guide for safely editing workbooks, preserving formulas, handling sensitive data, and choosing openpyxl or XlsxWriter.
10.09.2026
Set up and use Cookbook Audit safely
How Anthropic's official Cookbook Audit skill automatically checks and reviews Jupyter notebooks against a fixed scoring rubric.
09.09.2026