A side-by-side look at the Google Search Console and Google Search Console 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 for marketing work as a local process; choose Google Search Console MCP for marketing as a local process. You can also run both side by side in one mcpServers block.
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, TOKEN_ENCRYPTION_KEY.server.capabilities, sites.list, sites.get.GSC_SITE_URL, GOOGLE_APPLICATION_CREDENTIALS.list_gsc_sites, list_sites, list_available_dimensions.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 59/100 · Good | 63/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | other |
| Pricing | Not declared | Not declared |
| Required env vars | GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETTOKEN_ENCRYPTION_KEY | GSC_SITE_URLGOOGLE_APPLICATION_CREDENTIALS |
| Verified owner | Community listing | Community listing |
| GitHub stars | 5 | 40 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 10 | 12 |
| Full listing | View Google Search Console | View Google Search Console MCP |
server.capabilitiesList every tool this server exposes and report local Google credential state. `connected` means a stored refresh credential is present; the response also exposes `auth_status_basis` and `provider_auth_live_verified: false` because this discovery call does not probe Google. A later Google tool call…sites.listList the Search Console properties the connected Google account can access (`siteUrl`, `permissionLevel`).sites.getRetrieve one exact Search Console property and the connected account's permission level for it.analytics.queryImpressions, clicks, CTR, and average position over a date range, with dimensions, filters, safe pagination, and selectable search type. Pass `dimensions: []` for true site totals; Google's aggregate row may omit `keys`. Search Analytics does not guarantee every data row and can return only top row…urls.inspectGoogle's URL Inspection report for the version of one page currently known in Google's index. It is not a live URL test; mobile-usability output is deprecated.urls.inspect_manyInspect Google's indexed versions of up to 10 URLs with bounded concurrency of 3 in one call while preserving input-order results. Each URL still consumes one Google URL Inspection request and one unit of the server's shared inspection safety budget; this does not run live URL tests.reports.weekly_digestGenerate a plain-language seven-day performance report with movers, top pages, and one recommended action. Query movers compare only rows returned in both weekly Search Analytics result sets; a query missing from one bounded response is not treated as zero because Google does not guarantee every da…indexing.statusRead Google's latest successful Indexing API `URL_UPDATED` / `URL_DELETED` notification receipts for a previously submitted URL. This is notification metadata only, not index coverage, crawl status, indexing completion, or removal completion. It requires `GSC_ACCESS_MODE=readwrite` because Google's…indexing.requestRequests indexing through Google's Indexing API. Google currently restricts this API to pages containing `JobPosting` structured data or livestream pages containing `BroadcastEvent` inside `VideoObject`. It is not available for general webpage submission. Google's default 200 publish requests/day/p…indexing.removeRequest a `URL_DELETED` notification for a previously eligible Indexing API page. Before removal, the URL must already return HTTP 404/410 or expose a robots `noindex` meta directive. Google's receipt does not prove removal completed; use URL Inspection for indexed-state evidence.list_gsc_sites
List all sites verified in Google Search Console.
Returns:
List of verified sites with their permission levels.
list_sites
List all sites verified in Google Search Console (alias for list_gsc_sites).
Returns:
List of verified sites with their permission levels.
list_available_dimensions
List all available GSC dimensions with their descriptions.
Returns:
List of dimension objects with api_name and description.
list_available_metrics
List all available GSC metrics with their descriptions.
Returns:
List of metric objects with api_name and description.
skills_list
List available analytical skills (playbooks) for Google Search Console.
Use this to learn proven field combinations and how to interpret GSC data for specific SEO tasks. Fetch the full playbook with skill_read.
skill_read
Fetch the full content of one analytical skill (playbook) for Google Search Console.
Args:
skill_id: The skill id from skills_list (e.g., "brand_visibility.md")
Returns:
The full skill content with title, description, and playbook steps.
get_search_analytics
Retrieve Google Search Console search analytics data.
Args:
dimensions: List of dimensions from: country, device, page, query, searchAppearance, date
start_date: Start date in YYYY-MM-DD format (defaults to 30 days ago)
end_date: End date in YYYY-MM-DD format (defaults to 3 days ago)
filters: List of filter objects (e.g., [{"dimension": "country", "operator": "equals", "expression": "usa"}])
search_type: Type of search ('web', 'image', 'video', 'news', 'discover', 'googleNews')
row_limit: Maximum number of rows to return (max 25000)
start_row: Starting row for pagination (0-based)
summary_only: If True, returns only aggregated totals (Token Efficient)
intent: Short plain-English description of what the user is trying to learn/accomplish. E.g. "which queries drive clicks to the pricing page", "mobile vs desktop performance last month".
Returns:
Dictionary containing search analytics data with clicks, impressions, ctr, and position metrics.
get_sitemaps
Get all sitemaps for the configured site.
Returns:
List of sitemaps with their status and details.
submit_sitemap
Submit a sitemap to Google Search Console.
Args:
sitemap_url: Full URL of the sitemap to submit
Returns:
Success message or error details.
delete_sitemap
Delete a sitemap from Google Search Console.
Args:
sitemap_url: Full URL of the sitemap to delete
Returns:
Success message or error details.
check_for_updatesCheck PyPI for newer versions of this MCP server and get upgrade instructions.setup_gsc_access
Interactively fix a broken Google Search Console MCP setup (missing or
wrong credentials path, missing GSC_SITE_URL, invalid key, or missing
property access) by asking the user for the needed value through the
client, then re-initializing without a restart. Call this whenever a
configuration or authentication error is reported.
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": {
"google-search-console": {
"command": "npx",
"args": [
"-y",
"@digestseo/mcp-gsc"
],
"env": {
"GOOGLE_CLIENT_ID": "YOUR_GOOGLE_CLIENT_ID_HERE",
"GOOGLE_CLIENT_SECRET": "YOUR_GOOGLE_CLIENT_SECRET_HERE",
"TOKEN_ENCRYPTION_KEY": "YOUR_TOKEN_ENCRYPTION_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"surendranb-google-search-console-mcp": {
"command": "uvx",
"args": [
"google-search-console-mcp"
],
"env": {
"GSC_SITE_URL": "YOUR_GSC_SITE_URL_HERE",
"GOOGLE_APPLICATION_CREDENTIALS": "YOUR_GOOGLE_APPLICATION_CREDENTIALS_HERE"
}
}
}
}