Google Search Console MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GSC_LOG_LEVEL | No | DEBUG also logs every HTTP request. Logs go to stderr. | INFO |
| GSC_TOKEN_FILE | No | Where `auth login` saves the login (mode 0600). Defaults to per-user config dir. | |
| GSC_ENABLE_WRITES | No | Register the four write tools. Needs a login with write access: `auth login --write`. | 0 |
| GSC_OAUTH_CLIENT_FILE | No | OAuth client JSON, so `auth login` needs no `--client-file`. | |
| GSC_SERVICE_ACCOUNT_FILE | No | Service account key; when set, it is used instead of OAuth. |
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": false
} |
| prompts | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sitesA | List every Search Console property this account can access, with its exact site_url and permission level. Call this first: every other tool needs a site_url. |
| get_siteB | Get one property's exact site_url, type and this account's permission level. |
| add_siteA | Add a property to this account. It starts unverified: ownership must be verified in the Search Console web interface before any data is available. |
| delete_siteA | Remove a property from this account. This removes access for this account only; it does not delete the site or other users' access. Confirm with the user first. |
| query_search_analyticsA | Clicks, impressions, CTR and average position from the Performance report, grouped by dimensions and filtered. Rows are sorted by clicks. Invalid combinations are rejected with an explanation before Google is called. For Discover, Images, video, Google News or the News tab, the matching query_*_analytics tool offers only what that surface supports. |
| query_discover_analyticsA | Google Discover performance: clicks, impressions and CTR by page, country or date. Discover reports no queries, no average position and no device breakdown, and has data only for sites that appear in Discover feeds. |
| query_image_analyticsB | Performance in Google Images and the Images tab of Search: clicks, impressions, CTR and average position within image results, by query, page, country, device or date. |
| query_video_analyticsA | Performance in the Videos tab of Google Search: clicks, impressions, CTR and average position, by query, page, country, device or date. Video results shown on the main web results are counted under web search, not here. |
| query_google_news_analyticsA | Google News performance (news.google.com and the Google News app): clicks, impressions and CTR by page, country, device or date. Google News reports no queries and no average position. For the News tab in Google Search, use query_news_tab_analytics. |
| query_news_tab_analyticsA | Performance in the News tab of Google Search: clicks, impressions, CTR and average position, by query, page, country, device or date. For news.google.com and the Google News app, use query_google_news_analytics. |
| query_hourly_analyticsA | Search performance broken down by hour (Pacific Time) for the last ~10 days. Use it to spot same-day spikes or compare today with the same day last week. The most recent hours are incomplete; first_incomplete_hour says where that starts. |
| list_search_appearancesA | Step one: list the search appearances (rich results and other result features, such as VIDEO or REVIEW_SNIPPET) the property had, with clicks and impressions. Then call query_search_appearance with one of the names to break it down. |
| query_search_appearanceA | Step two: performance of one search appearance, broken down by query, page, country, device or date. Get the appearance name from list_search_appearances. |
| compare_periodsA | Compare search performance between two periods of equal length: totals plus a per-key breakdown with absolute and percent changes. Position change is negative when ranking improved. |
| explain_changeA | Answer "why did traffic go up or down?" between two periods of equal length. Splits the change by page, query, country, device and search appearance and says which slices account for most of it; separates clicks lost to fewer impressions from clicks lost to a lower CTR; and lists Google updates that ran in or near the periods. Defaults compare the last 28 days of final data with the 28 before. |
| inspect_urlA | Google's index status for one URL: whether it is indexed and why not, last crawl, canonical chosen by Google versus declared, robots.txt and fetch state, sitemaps and rich results. This is Google's indexed view, not a live test of the page. |
| batch_inspect_urlsA | Inspect up to 50 URLs concurrently and summarize their index verdicts. Failures are reported per URL; if the daily quota runs out, the remaining URLs are skipped and listed so you can retry them later. |
| audit_indexingA | Full indexing audit of a property, rebuilt from its sitemaps because Google's API does not expose the Page indexing report's URL lists. Each call inspects the next URLs (new ones first, then any checked more than 14 days ago) and reports every URL inspected so far: grouped by Google's index status with likely fixes, plus canonical conflicts, indexed pages with no search impressions in 90 days, and pages shown in search but missing from the sitemaps. Progress is saved locally, so call again to continue, today or on later days; Google allows 2,000 inspections per property per day. |
| list_sitemapsA | List submitted sitemaps with their status: last submitted and downloaded, errors, warnings, whether processing is pending, and URL counts by content type. |
| get_sitemapC | Status of one submitted sitemap. |
| submit_sitemapA | Submit (or resubmit) a sitemap so Google fetches it. Safe to repeat. |
| delete_sitemapA | Remove a sitemap from Search Console. Google may still know the URLs in it, and the file itself is not touched. Confirm with the user first. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| weekly_report | Week-over-week performance report: totals, what drove the change, biggest query and page movers, devices, countries and search appearances. |
| indexing_audit | Audit the index status of every sitemap URL, grouped by issue with fixes. Optionally pass URLs, one per line or comma-separated, to check just those. |
| content_opportunities | Find striking-distance queries, low-CTR snippets, cannibalization and declining pages, prioritized by potential clicks. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
The seven query_*_analytics tools map to genuinely distinct Google surfaces (Search, Discover, Images, Video, Google News, News tab, hourly) and their descriptions explicitly cross-reference each other to steer selection. The two-step appearance flow, the scale-based inspection trio (inspect_url, batch_inspect_urls, audit_indexing), and the compare_periods vs explain_change split are all clearly delineated.
All 22 tools use consistent snake_case with a predictable verb_noun shape (list_sites, query_search_analytics, delete_sitemap, inspect_url). Verbs vary by intent (query, compare, explain, inspect, audit) but the convention is uniform and readable throughout.
22 tools is on the heavier side but each earns its place by covering a real Search Console surface or lifecycle (sites, sitemaps, per-surface analytics, inspection, comparison). It leans toward the upper bound without obvious redundancy.
The surface covers full site CRUD, full sitemap CRUD, analytics across all Google surfaces, search appearances, period comparison/explanation, and both single-URL and bulk/property-wide inspection. No obvious dead ends for the stated Search Console domain.