# mcp-gsc [Health: Active]

**Category:** 🎯 Marketing  
**Repository:** https://github.com/pijusz/mcp-gsc  
**GitHub Stars:** 3  
**npm Downloads (last month):** 3074  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-gsc

## Description
Google Search Console MCP server — query performance, sitemaps, indexing & more

## Tools
Capabilities this server exposes over MCP:

- **list_properties** — List all Google Search Console properties you have access to, with permission levels and verification status.
- **get_property_details** — Get verification info, ownership, and permissions for a specific Google Search Console property.
- **search_analytics** — Query Google Search Console search performance data (clicks, impressions, CTR, position) with filtering and grouping.

DIMENSIONS: query, page, country, device, date, searchAppearance, hour
- "hour" requires data_state="hourly_all" and is limited to the last 10 days
- "searchAppearance" CANNOT be combined with "query" or "page" (API restriction)

TYPE: web (default), image, video, news, discover, googleNews
- "discover" = Google Discover feed. "googleNews" = Google News tab (distinct from "news")

DATA STATE: Controls data freshness.
- "all" (default) includes recent incomplete data matching the GSC dashboard
- "final" returns only confirmed data with a 2-3 day lag, useful for stable reporting
- "hourly_all" enables hourly granularity but data may be incomplete for the current day

BRAND FILTER: Set to "brand_only" or "non_brand_only" to auto-filter queries by your domain name.

Country codes use ISO 3166-1 alpha-3 format (e.g., 'usa', 'gbr', 'deu') — NOT alpha-2.
- **list_sitemaps** — List all sitemaps for a property with status, type, indexed URL counts, errors/warnings.
- **get_sitemap** — Get detailed info for a specific sitemap including content breakdown by type (web, image, video, etc.).
- **inspect_url** — Inspect a URL's indexing status, crawl info, rich results, mobile usability, and canonical URLs. Counts against the daily 2,000 and per-minute 600 URL Inspection limits.
- **batch_inspect_urls** — Inspect up to 10 URLs simultaneously. Returns categorized results (indexed, not indexed, issues). Each URL counts against the daily 2,000 and per-minute 600 URL Inspection limits.
- **export_csv** — Export search analytics data to a CSV file on the machine running this server. Pages through results internally (25K rows per API call, up to 40 calls) to write the full dataset, bypassing the tool response row cap.

Note: Google itself caps how many rows it exposes per day and search type (sorted by clicks), so very large sites may not get the complete long tail. Use dimension_filters to split the export into smaller slices if needed.
- **performance_overview** — Aggregate metrics (total clicks, impressions, avg CTR, avg position) plus a daily trend breakdown for a property. Single API call.
- **compare_periods** — Compare two date ranges with delta calculations (absolute change + percentage change) for each dimension value. Makes 2 API calls.
- **top_movers** — Biggest gains and drops in clicks/impressions/position between two periods. Period A = start_date to end_date. Period B = the comparison_days before start_date.
- **device_country_breakdown** — Performance breakdown by device type and/or country.
- **quick_wins** — Find high-impression, low-CTR queries in striking distance (position 4-20). These are opportunities to improve rankings and CTR with small content or SEO tweaks.
- **cannibalization** — Detect keyword cannibalization — multiple pages ranking for the same query. Uses query + page dimensions to find overlap.
- **opportunity_finder** — Find queries with improving impressions but low clicks, new emerging queries, and declining performers. Makes 2 API calls to compare periods.
- **position_tracking** — Track position changes for specific queries or pages over time. Uses date dimension with query/page filters. Returns daily or weekly averages.
- **ctr_anomalies** — Detect queries/pages with abnormally low or high CTR relative to their position. Uses expected CTR curves per position bucket and flags deviations.
- **content_decay** — Detect pages/queries where impressions have dropped significantly compared to their historical peak within the 16-month API window.
- **weekly_seo_report** — All-in-one SEO report: runs performance overview + quick wins + top movers + indexing issues summary. Returns a combined markdown report.
- **indexing_coverage** — Batch-inspect user-provided URLs and categorize by indexing status: indexed, not indexed, canonical mismatch, robots blocked, fetch error, other. Respects URL Inspection rate limits.
- **sitemap_health** — Analyze all sitemaps: error/warning patterns, submission freshness (days since last submitted), indexed vs submitted ratio per sitemap.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-gsc": {
    "command": "npx",
    "args": ["-y","mcp-gsc"],
    "env": {
      "GOOGLE_GSC_CREDENTIALS_PATH": ""
    }
  }
}
```

**Requires environment variables:** `GOOGLE_GSC_CREDENTIALS_PATH` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What mcp-gsc does

mcp-gsc exposes Google Search Console data and operations as MCP tools for AI assistants. The core set can list verified properties, show property permissions and verification details, query clicks, impressions, CTR, and position, inspect sitemap status, and check URL indexing information.

Search Analytics queries support dimensions such as query, page, country, device, date, search appearance, and hour, along with filters and brand segmentation. Supported search types include web, image, video, news, Discover, and Google News. Results can be exported to a local CSV file, with automatic pagination for larger datasets.

Optional tool groups add period comparisons, trend summaries, top movers, device and country breakdowns, quick-win detection, cannibalization analysis, position tracking, CTR anomaly detection, content-decay checks, indexing coverage, sitemap health, and a weekly SEO report. Separate write tools can add or remove properties, submit or delete sitemaps, request URL crawling, and retrieve indexing submission status.

## How it works

The server runs over MCP using standard input/output and communicates with Google APIs after authentication. OAuth credentials are authorized through a browser during setup, which stores a refresh token and checks access to available properties. A Google service-account key can also be used when that account has been added as a user to the relevant Search Console properties.

A default property can be configured, while bare domains are resolved against matching verified properties. URL inspection supports batches of up to 10 URLs. Google Search Console URL Inspection requests are automatically tracked against limits of 600 requests per minute and 2,000 per day per site.

## Setup and configuration

Create Google Cloud credentials, enable the Google Search Console API, configure the OAuth consent screen with the webmasters scope, and create a desktop OAuth client. Set `GOOGLE_GSC_CREDENTIALS_PATH` to the downloaded JSON file, then run `npx mcp-gsc setup` to authorize access. Node.js 22+ is required when using `npx`; Bun users can run the package with `bunx`.

The optional `GOOGLE_GSC_TOKEN_PATH` controls cached token storage. `GOOGLE_GSC_PROPERTY` sets a default property, and `GOOGLE_GSC_ENV_FILE` selects an environment file. Set `GOOGLE_GSC_ENABLE_EXTENDED_TOOLS=true` for reporting, SEO, and technical SEO tools. Set `GOOGLE_GSC_ENABLE_WRITES=true` to expose mutation and indexing tools. `DEBUG` enables debug logging.

## Tools and capabilities

Core capabilities include:

- Query search performance with dimensions, filters, and search-type selection.
- Inspect individual URLs or batches and review crawl, canonical, rich-result, and indexing information.
- Review sitemap errors, types, freshness, indexed counts, and content breakdowns.
- Export up to 1 million analytics rows to CSV, fetching up to 25,000 rows per call.
- Compare periods and identify traffic movements or potential SEO opportunities when extended tools are enabled.
- Manage properties and sitemaps or request crawls when write tools are enabled.

## Limitations and notes

Hourly Search Analytics data requires `data_state="hourly_all"` and is limited to the last 10 days. Search appearance cannot be combined with query or page dimensions, and country filters use ISO 3166-1 alpha-3 codes.

Indexing requests require the Indexing API, a newly authorized credential with the indexing scope, and verified owner access to the property. Google officially supports that API for pages containing `JobPosting` or `BroadcastEvent` structured data, with a default quota of 200 URLs per day. A crawl request does not guarantee indexing.

_Full upstream README: https://allmcps.com/mcp/mcp-gsc/readme_

