A side-by-side look at the Google Search Console MCP and Google Webtools MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Google Search Console MCP for marketing work as a local process; choose Google Webtools MCP for marketing. You can also run both side by side in one mcpServers block.
GSC_CLIENT_ID, GSC_CLIENT_SECRET, GSC_REFRESH_TOKEN.gsc_sites, gsc_site_details, gsc_query.GOOGLE_APPLICATION_CREDENTIALS.list_properties, get_property_details, add_property.Rows where the two servers differ are marked.
| Spec | G Google Webtools MCP | |
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 63/100 · Good | 51/100 · Good |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | OAuth 2.0 | OAuth 2.0 |
| Pricing | Free | Not declared |
| Required env vars | GSC_CLIENT_IDGSC_CLIENT_SECRETGSC_REFRESH_TOKEN | GOOGLE_APPLICATION_CREDENTIALS |
| Verified owner | Community listing | Community listing |
| GitHub stars | 9 | 7 |
| Directory activity | 4 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 17 | 39 |
| Full listing | View Google Search Console MCP | View Google Webtools MCP |
gsc_sitesList 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.
gsc_site_detailsPermission level and property type for one property.gsc_queryQuery 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.
gsc_performance_overviewSite 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.
gsc_compare_periodsJoin 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.
gsc_quick_winsQueries 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.
gsc_ctr_gapsRows 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.
gsc_cannibalizationQueries 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.
gsc_traffic_dropsPages 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.
gsc_content_decayPages 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.
gsc_alertsWhat 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.
gsc_portfolioEvery 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.
list_propertiesStarting point — see every GSC property you can access and your permission level on each.get_property_detailsCheck the type and permission level of one specific property.add_propertyRegister a new site in Search Console (verification is a separate step).delete_propertyDrop a property from the authenticated account's Search Console site list. Historical data is not destroyed — the property can be added back.list_sitemapsSee which sitemaps are submitted and whether Google reports errors or warnings.get_sitemap_detailsDrill into one sitemap: URL counts by content type, last download time, error and warning counts.submit_sitemapSubmit a new sitemap after publishing or moving one.delete_sitemapWithdraw a sitemap that is stale, duplicated, or returning errors.get_search_analyticsThe raw query — full control over dimensions, filters, search type, row limit, data state, aggregation. Use when the shaped tools below don't fit.get_performance_summary"How are we doing?" — clicks, impressions, CTR, position with period-over-period comparison. Trend advice is withheld when the previous period returned no data at all.compare_periodsCompare two explicit date ranges side by side (before/after a release, seasonal comparison).get_top_queriesTop queries by clicks, each scored against the CTR benchmark for its position.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"acamolese-google-search-console-mcp": {
"command": "uvx",
"args": [
"mcp-google-search-console"
],
"env": {
"GSC_CLIENT_ID": "YOUR_GSC_CLIENT_ID_HERE",
"GSC_CLIENT_SECRET": "YOUR_GSC_CLIENT_SECRET_HERE",
"GSC_REFRESH_TOKEN": "YOUR_GSC_REFRESH_TOKEN_HERE"
}
}
}
}
No confirmed install command for Google Webtools MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.