Google Search Console MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_CLIENT_ID | No | OAuth 2.0 client ID for the Google Cloud project that owns your OAuth client. | |
| GOOGLE_CLIENT_SECRET | No | OAuth 2.0 client secret for the Google Cloud project that owns your OAuth client. | |
| SEARCH_CONSOLE_READ_ONLY | No | Optional. When true, requests only the readonly scope and refuses all four mutating calls (add_site, delete_site, submit_sitemap, delete_sitemap). | false |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to a service account credentials file. Used only when the three OAuth variables are not all set, via the Application Default Credentials fallback (local gcloud auth also works). | |
| GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN | No | Refresh token minted via scripts/get_refresh_token.py, scoped to the https://www.googleapis.com/auth/webmasters scope. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_client_statusA | Check that the Search Console client is configured and can authenticate. Returns: Whether credentials resolve, whether the server is in read-only mode, and the OAuth scopes in use. |
| list_sitesA | List all Search Console properties the account can access. Returns: Each property's siteUrl and the caller's permissionLevel (siteOwner, siteFullUser, siteRestrictedUser or siteUnverifiedUser). |
| get_siteB | Get one Search Console property and the caller's permission level. |
| add_siteA | Add a property to Search Console. Requires verification afterwards. |
| delete_siteA | Remove a property from Search Console. This unlinks the property from the account. Historical data is retained by Google but becomes inaccessible until the property is re-added and re-verified. |
| list_sitemapsC | List the sitemaps submitted for a property. |
| get_sitemapA | Get one sitemap's processing status and error counts. |
| submit_sitemapC | Submit a sitemap to Search Console. |
| delete_sitemapC | Delete a sitemap from Search Console. |
| submit_sitemapsB | Submit several sitemaps to one property in a single call. |
| query_search_analyticsA | Run a raw Search Analytics query with full control over the request. This is the unmodified API method. For the common cases prefer top_queries, top_pages, performance_by_date, performance_by_country, performance_by_device, compare_periods or query_all_rows. |
| query_all_rowsB | Retrieve every row for a query, paging past the 25,000-row cap. |
| top_queriesC | Top search queries by clicks for a property. |
| top_pagesC | Top landing pages by clicks for a property. |
| performance_by_dateC | Daily performance time series for a property. |
| performance_by_countryC | Performance broken down by country. |
| performance_by_deviceB | Performance broken down by device (desktop, mobile, tablet). |
| performance_by_search_appearanceA | Performance broken down by search appearance (rich result types). Note that SEARCH_APPEARANCE cannot be combined with other dimensions in the same request, which is why this has no filters argument. |
| compare_periodsB | Compare a period against the equal-length period immediately before it. |
| inspect_urlA | Inspect one URL's index status in Google Search. |
| inspect_urlsA | Inspect several URLs and summarise their index status. Each URL costs one unit of the 2,000-per-property-per-day URL Inspection quota. |
| run_mobile_friendly_testA | DEPRECATED AND NON-FUNCTIONAL. Run the Mobile-Friendly Test on a URL. Google shut this API down on 1 December 2023; calling it returns an error. It exists here only so this server covers the published API surface completely. Do not call it expecting a result. For mobile usability signals, use inspect_url instead, whose response carries a mobileUsabilityResult. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools target distinct resources or actions, and descriptions explicitly differentiate the raw analytics query from specialized ones. Minor overlap exists between singular/plural pairs (submit_sitemap/submit_sitemaps, inspect_url/inspect_urls), but the text clarifies the distinction.
Names are consistently snake_case and mostly follow a verb_noun pattern. A few analytics tools are noun phrases (top_queries, performance_by_date), which is a minor deviation but still readable and coherent.
At 22 tools the set feels heavy for the domain. Several analytics wrappers overlap with query_search_analytics, and run_mobile_friendly_test is explicitly deprecated and non-functional, so not every tool earns its place.
The surface covers full lifecycle operations for sites and sitemaps, offers comprehensive search analytics breakdowns, and includes both single and batch URL inspection. No obvious gaps remain for the Google Search Console API.