The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Google Search Console MCP listing page.
English | Русский
A1 Google Search Console MCP connects an AI app to Google Search Console. Investigate search performance, check whether a URL is indexed, inspect sitemaps and deliberately submit or remove a sitemap when needed.
It works with the properties your Google account can access. The important detail is that it uses the exact Search Console property value — a domain property and a URL-prefix property are different objects.
127.0.0.1 with PKCE and keeps the tokens itself — no config files, no restart.https://example.com/, https://www.example.com/ and sc-domain:example.com are distinct. list_sites shows the value to use.Start with a read-only question:
Show the top 20 search queries for my property over the last 28 days, with clicks and CTR.
Connect the server · Explore use cases · Open technical documentation
You: Is
https://example.com/pricingindexed? If not, why?Assistant: Inspects the URL and shows the index verdict, coverage, crawl information and canonical URLs. Nothing changes.
You: Check my submitted sitemaps and prepare a resubmission for the one with errors.
Assistant: Shows the sitemap, its warnings and errors, then asks for confirmation before submitting it again.
You: Confirm.
Assistant: Resubmits the selected sitemap. It does not change page content or guarantee indexing.
You need Node.js 20+ and a Google account. Credentials are not required at install time — the server connects from the conversation.
npx -y mcp-google-search-console@latest and environment variables GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET, GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN, then select Save and Restart.
||||||| Stash base
In the app: open Settings → Plugins → MCP servers, choose Add server, then add npx -y mcp-google-search-console@latest with GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET and GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN.In the app: open Settings → Plugins → MCP servers, choose Add server, then add npx -y mcp-google-search-console@latest.
Stashed changes
The current official path is Settings → Extensions. For a custom desktop extension, open Advanced settings → Extension Developer → Install Extension…, select a .mcpb file and follow the prompts.
This repository currently publishes an npm stdio package and does not contain a .mcpb bundle. For Claude Desktop builds that still support local configuration, use the following JSON stdio configuration as a fallback:
In those builds, save it to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.
Add to ~/.cursor/mcp.json on macOS/Linux or %USERPROFILE%\.cursor\mcp.json on Windows:
Run MCP: Open User Configuration and add:
Check it with MCP: List Servers. VS Code MCP documentation
mcp where average position is below 10.A URL-prefix property must include its protocol and trailing slash, for example https://example.com/. A domain property is written as sc-domain:example.com. A near-match causes 403 or 404, so use the exact value returned by list_sites.
add_site only registers a property. Verification remains in the Search Console UI or Site Verification API. Search data uses Pacific Time; end_date is inclusive and final analytics data typically lags by two to three days. data_state: "all" can include fresher, still-changing rows.
| Operation | What happens | Confirmation boundary |
|---|---|---|
| List properties, analytics, sitemaps and URL status | Reads Search Console data | No change |
| Add a property | Adds a property entry; does not verify it | Changes account access |
| Submit or resubmit a sitemap | Requests processing of a sitemap | Changes Search Console state |
| Delete a property | Unlinks the property from the account; Google data is not deleted | Destructive |
| Delete a sitemap | Removes a submitted sitemap | Destructive |
| Raw API request | May call a write or delete endpoint | Potentially destructive |
The AI client controls confirmation prompts. The server marks reads, writes and destructive calls so the client can distinguish an inspection from a real change.
Google Search Console requires OAuth 2.0; an API key is not enough. There are two ways in, and the first one needs no configuration files.
Say "connect Google Search Console" and the assistant runs the flow with you:
setup_instructions prints the checklist: create or select a Google Cloud project, enable Google Search Console API, configure the consent screen and create a Desktop app OAuth client.set_client stores it owner-only. The secret never goes through the conversation.start_login returns a Google consent link. Open it on this machine and approve; the code comes back to a one-shot listener on 127.0.0.1 (PKCE), never through the chat.finish_login exchanges the code and saves the tokens to ~/.config/mcp-google-search-console/credentials.json (mode 0600) and verifies them with a real Google Search Console API call — so an API that is still switched off is caught right there.The tokens are re-read on every call, so the connection works immediately — no restart of the AI app. auth_status shows what is connected, logout revokes and deletes it.
https://www.googleapis.com/auth/webmasters to include sitemaps and property changes. Use https://www.googleapis.com/auth/webmasters.readonly only if you intentionally need read-only access.Testing-mode refresh tokens can expire after seven days. Publish the OAuth app, or use an Internal Workspace app, for long-lived access. Treat the client secret and refresh token as passwords.
Every variable is optional — with none of them the server connects from the chat.
| Variable | Required | Description |
|---|---|---|
GOOGLE_SEARCH_CONSOLE_CLIENT_ID | No* | OAuth client ID. |
GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET | No* | OAuth client secret. |
GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN | No* | OAuth refresh token. |
GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN | No* | Short-lived alternative to the OAuth trio. |
GOOGLE_SEARCH_CONSOLE_OAUTH_PORT | No | Fixed loopback port for the in-chat login; useful over SSH port forwarding. |
GOOGLE_SEARCH_CONSOLE_API_BASE | No | API base URL override. |
GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS | No | Per-request timeout; default 60000 ms. |
GOOGLE_SEARCH_CONSOLE_MAX_RETRIES | No | Temporary-error retries; default 3. |
* Provide either the OAuth trio or an access token.
ASKADS_TELEMETRY=0 to opt out.Found a bug or need a scenario? Create an issue or write in Telegram.
You made it to the end!