Google Search Console
PYPI · MCP-GOOGLE-SEARCH-CONSOLE · SCANNED SEP 20
Google Search Console: SEO audits, performance queries, URL inspection, indexing checks.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 2 of 46 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (MIT License) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 28 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4392 tokens (~258/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
- Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
- Structured output schemas are declared (94% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Google Search Console MCP server?
Google Search Console runs locally as a PyPI package, launched with uvx mcp-google-search-console. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · mcp-google-search-console
claude mcp add acamolese-google-search-console-mcp -- uvx mcp-google-search-console
{
"mcpServers": {
"acamolese-google-search-console-mcp": {
"command": "uvx",
"args": [
"mcp-google-search-console"
]
}
}
} {
"servers": {
"acamolese-google-search-console-mcp": {
"command": "uvx",
"args": [
"mcp-google-search-console"
]
}
}
} codex mcp add acamolese-google-search-console-mcp -- uvx mcp-google-search-console
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"acamolese-google-search-console-mcp": {
"type": "local",
"command": [
"uvx",
"mcp-google-search-console"
],
"enabled": true
}
}
} openclaw mcp add acamolese-google-search-console-mcp --command uvx --arg mcp-google-search-console
mcp_servers:
acamolese-google-search-console-mcp:
command: "uvx"
args: ["mcp-google-search-console"] {
"McpServers": {
"acamolese-google-search-console-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"mcp-google-search-console"
]
}
}
} assistant mcp add acamolese-google-search-console-mcp -t stdio -c uvx -a mcp-google-search-console
{
"mcpServers": {
"acamolese-google-search-console-mcp": {
"command": "uvx",
"args": [
"mcp-google-search-console"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 17 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 15 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/mcp-google-search-console@3.0.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 46 packages
| Packages resolved | 46 |
|---|---|
| Stale | 1 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
gsc_alerts ~210
What changed sharply enough to be worth a message today. Compares the last `window_days` against the window before it across both queries and pages, and returns only movements past the alerting rules: lost positions, collapsed CTR, dropped or vanished pages.
| Name | Type | Req | Description |
|---|---|---|---|
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| no_cache | boolean | – | – |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
| window_days | integer | – | Length of the window to compare. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_audit ~503
Build a complete, self-contained HTML SEO audit for one property. Collects the period and its baseline, top queries and pages, devices, countries, the daily trend, six months of history, sitemaps and an indexing check, then detects issues and builds a prioritised strategy and roadmap. Thresholds adapt to the size of the property, so small sites get a report too. Available in English and Italian. Ask the user for the period if they have not named one: the 28-day default is rarely what a client report wants. Returns a compact JSON summary first (KPIs with deltas, issue counts, top quick wins, roadmap), so the findings can be discussed without reading the HTML, followed by the report path or the document itself.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_terms | – | – | Words that mark a query as branded. Without them the first label of the domain is used, which is often wrong. |
| branding_path | string | – | Path to a branding.json overriding colours, logo, name and thresholds. |
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| inspect_top_pages | integer | – | How many top pages to run through URL Inspection. 0 disables it. |
| language | string | – | Report language: en, it. Defaults to en. |
| output | string | – | `file` writes the report and returns its path, `inline` returns the HTML as an embedded resource, `both` does both, `auto` picks by transport. |
| output_dir | string | – | Where to write the report. Defaults to ~/gsc-reports/. |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| sections | – | – | Subset of sections to render: overview, issues, top_queries, top_pages, countries, sitemaps, indexing, strategy, roadmap. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
No output schema declared.
No examples provided.
gsc_cannibalization ~307
Queries where several pages of the site compete for the same result. Reads one page of up to 25,000 query/page pairs; on a very large property the tail is cut off, and the meta says how many pairs were analysed. Each row lists the competing pages with their own clicks and positions.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| min_pages | integer | – | Minimum competing pages per query. |
| min_share | number | – | A page must hold this share of the query's impressions to count. |
| no_cache | boolean | – | – |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_compare_periods ~347
Join two periods on one dimension and rank the rows by click delta. Answers "what changed" without the model diffing two tables by hand. Rows present in only one period are kept, with zeros on the missing side; the biggest movers in both directions are returned, worst first. The meta counts how many rows gained and how many lost clicks.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| dimension | string | – | One of query, page, country, device, searchAppearance. |
| min_impressions | integer | – | Drop rows below this impression count in both periods. |
| no_cache | boolean | – | Bypass the response cache for this call. |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| prev_date_from | string | – | Baseline start YYYY-MM-DD. Defaults to the equally long period ending the day before date_from. |
| prev_date_to | string | – | Baseline end YYYY-MM-DD. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_content_decay ~240
Pages sliding down month after month. A period comparison hides this: a page that halves over six months never shows a sharp drop in any single month-on-month check. One query per month runs in parallel.
| Name | Type | Req | Description |
|---|---|---|---|
| consecutive_months | integer | – | Months of uninterrupted decline required. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| min_peak_clicks | integer | – | Ignore pages that never reached this many clicks in a month. |
| months | integer | – | How many months of history to read (2-16). |
| no_cache | boolean | – | – |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_ctr_gaps ~315
Rows that rank well but are clicked far less than their position implies. The snippet, not the ranking, is the problem, which makes these the cheapest fixes available. `expected_ctr` is what a result at that position normally earns.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| entity | string | – | Analyse by `page` (default) or by `query`. |
| gap_ratio | number | – | Flag rows whose CTR is below this fraction of the expected CTR. |
| max_position | number | – | Only consider rows at or above this position. |
| no_cache | boolean | – | – |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_doctor ~66
Report the server's configuration and whether Search Console answers. Call this first when something fails: it names the auth mode in use, when the token expires, how many properties the account can read, the cache state and the defaults every other tool applies. Secrets are masked.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| auth | object | yes | – |
| cache | object | yes | – |
| defaults | object | yes | – |
| mcp_major | integer | yes | – |
| mcp_version | string | yes | – |
| package_version | string | yes | – |
| paths | object | yes | – |
| platform | string | yes | – |
| properties | object | yes | – |
| python_version | string | yes | – |
| transport | string | yes | – |
No examples provided.
gsc_indexing_issues ~274
Check whether a batch of URLs is indexed, and why not when they are not. Runs the inspections concurrently and returns one row per input URL, in input order. A URL that fails gets an `error` column instead of a verdict; the rest of the batch still comes back. For the full payload of a single page (mobile usability, rich results, AMP) use `gsc_inspect_url`. Quota: 600 inspections per minute and 2,000 per day, per property. Columns: url, verdict (PASS / PARTIAL / FAIL / NEUTRAL), coverage_state, robots_txt_state, indexing_state, page_fetch_state, crawled_as, last_crawl_time, google_canonical, user_canonical, error. The meta carries a verdict summary.
| Name | Type | Req | Description |
|---|---|---|---|
| no_cache | boolean | – | Bypass the response cache for this call. |
| pages | array | yes | Fully qualified URLs under site_url. At most 100 per call. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_inspect_url ~147
Full URL Inspection for one page: index, mobile, rich results and AMP. Use this when one page needs a diagnosis. For an indexed-or-not sweep across many URLs use `gsc_indexing_issues`. Quota: 600 inspections per minute and 2,000 per day, per property.
| Name | Type | Req | Description |
|---|---|---|---|
| no_cache | boolean | – | Bypass the response cache for this call. |
| page_url | string | yes | Fully qualified URL under site_url. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| Name | Type | Req | Description |
|---|---|---|---|
| amp | object | – | – |
| coverage_state | string | – | – |
| index_status | object | – | – |
| inspection_result_link | string | – | – |
| mobile_usability | object | – | – |
| page_url | string | yes | – |
| rich_results | object | – | – |
| site_url | string | yes | – |
| verdict | string | – | – |
No examples provided.
gsc_performance_overview ~263
Site totals for a period, compared with the preceding one by default. Start here: it answers "is the site up or down" in one call, with the percentage change on every metric. `position_delta` is negative when the average position improves.
| Name | Type | Req | Description |
|---|---|---|---|
| compare_previous | boolean | – | Also fetch the equally long preceding period. |
| data_state | string | – | `all` (default, includes today's partial data) or `final`. |
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| no_cache | boolean | – | Bypass the response cache for this call. |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| type | string | – | web, image, video, news, discover or googleNews. |
| Name | Type | Req | Description |
|---|---|---|---|
| current | – | yes | – |
| data_state | string | – | – |
| date_from | string | yes | – |
| date_to | string | yes | – |
| delta | – | – | – |
| previous | – | – | – |
| previous_range | – | – | – |
| site_url | string | yes | – |
No examples provided.
gsc_portfolio ~133
Every accessible property at a glance, ranked worst first. One row per property with the current period, the previous one and a health flag: critical below -30% clicks, warning below -15%. Use it to decide which property to look at before running anything else.
| Name | Type | Req | Description |
|---|---|---|---|
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| limit | integer | – | How many properties to check. |
| no_cache | boolean | – | – |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_query ~482
Query the Search Analytics report: clicks, impressions, CTR, position. This is the general-purpose tool. With no dates it covers the last 28 days ending today (UTC), with data_state=all so today's partial data is included, matching what the Search Console UI shows. Example: site_url="sc-domain:example.com", dimensions="query,page", period="last_28_days", row_limit=100. Returns a `# meta ...` line then a TSV table, or JSON with `meta` and `rows`. The meta names the exact range, the row count, whether more rows exist and the `start_row` to pass next.
| Name | Type | Req | Description |
|---|---|---|---|
| aggregation_type | string | – | auto, byPage or byProperty. |
| data_state | string | – | `all` (default, includes today's partial data) or `final`. |
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| dimensions | string | – | Comma-separated dimensions: query, page, country, device, date, searchAppearance, hour. `hour` covers only the last 10 days. |
| filter_group_type | string | – | Only `and` is supported by the API within one group. |
| filters | – | – | List of {dimension, operator, expression}. Operators: equals, notEquals, contains, notContains, includingRegex, excludingRegex. |
| no_cache | boolean | – | Bypass the response cache for this call. |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| start_row | integer | – | Zero-based pagination offset. |
| type | string | – | web, image, video, news, discover or googleNews. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_quick_wins ~305
Queries close enough to the top that a push would pay off. Ranked by the clicks each query would gain at `target_position`, not by impressions: a big query already near its ceiling is not an opportunity. The meta reports the thresholds that were applied.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| max_position | number | – | Ignore queries below this position. |
| min_position | number | – | Ignore queries above this position. |
| no_cache | boolean | – | – |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| target_position | integer | – | Position to size the opportunity against. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_site_details ~99
Permission level and property type for one property.
| Name | Type | Req | Description |
|---|---|---|---|
| no_cache | boolean | – | Bypass the response cache for this call. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_sitemaps ~168
List the sitemaps Google knows about for a property, with errors and warnings. Read-only: submitting or deleting a sitemap needs the read-write scope, which this server never requests. Returns one row per sitemap: path, last submitted and downloaded timestamps, pending flag, index flag, warning and error counts, and the submitted / indexed URL counts when Google reports them.
| Name | Type | Req | Description |
|---|---|---|---|
| no_cache | boolean | – | Bypass the response cache for this call. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_sites ~99
List every property the authenticated account can read. Call this first when a property string fails: it returns the exact `site_url` values the other tools expect, and whether each one is a domain property (`sc-domain:example.com`) or a URL-prefix property.
| Name | Type | Req | Description |
|---|---|---|---|
| no_cache | boolean | – | Bypass the response cache for this call. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
gsc_traffic_drops ~287
Pages that lost clicks against the baseline, each with a likely cause. `diagnosis` separates a ranking loss from falling demand, a collapsed CTR and a page that disappeared: the four need different fixes, and the raw numbers for both periods are in the row so the call can be checked.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Start date YYYY-MM-DD. Overrides period and days. |
| date_to | string | – | End date YYYY-MM-DD. Defaults to today. |
| days | – | – | Rolling window length ending today. |
| min_drop_pct | number | – | Minimum click loss, in percent. |
| no_cache | boolean | – | – |
| period | string | – | Named range: last_7_days, last_28_days, last_3_months, last_month, this_month, last_16_months. |
| response_format | string | – | `tsv` (default, compact) or `json`. |
| row_limit | integer | – | Rows returned. Default 100, capped at 1000. |
| site_url | string | yes | `sc-domain:example.com` for a domain property, or `https://example.com/` with the trailing slash for a URL-prefix property. Call gsc_sites if unsure. |
| thresholds | – | – | Override the adaptive thresholds: min_impressions, min_clicks, high_visibility_impressions, ctr_curve. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the Google Search Console MCP server?
Google Search Console is an MCP server listed in the public MCP registry as io.github.acamolese/google-search-console-mcp. Google Search Console: SEO audits, performance queries, URL inspection, indexing checks. This page covers its PyPI package (mcp-google-search-console).
Is the Google Search Console MCP server safe to use?
Google Search Console scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Google Search Console MCP server expose?
Google Search Console exposes 17 tools: gsc_sites, gsc_site_details, gsc_query, gsc_performance_overview, gsc_compare_periods, and 12 more. Their descriptions and schemas cost roughly 4,245 tokens of context every time the server is loaded.
Is the Google Search Console MCP server still maintained?
Google Search Console is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.