Google Search Console MCP Server
# Google Search Console MCP Server
A Model Context Protocol (MCP) server providing comprehensive access to Google Search Console data with enhanced analytics capabilities.
## Features
- **Enhanced Search Analytics**: Retrieve up to 25,000 rows of performance data
- **Advanced Filtering**: Support for regex patterns and multiple filter operators
- **Quick Wins Detection**: Automatically identify optimization opportunities
- **Rich Dimensions**: Query, page, country, device, and search appearance analysis
- **Flexible Date Ranges**: Customizable reporting periods with historical data access
### Sponsored by
<a href="https://macuse.app?ref=mcp-server-gsc">
<img src="https://macuse.app/logo-pill.png" width="200" alt="macuse.app">
</a>
[macuse.app](https://macuse.app) is a native macOS application that gives your AI superpowers by integrating AI assistants with macOS apps like Calendar, Mail, and Notes, plus universal UI control for any application. Supports Claude Desktop, Cursor, and Raycast with one-click setup. Privacy-first, runs locally.
## Prerequisites
- Node.js 18 or later
- Google Cloud Project with Search Console API enabled
- Service Account credentials with Search Console access
## Installation
```bash
npm install mcp-server-gsc
```
## Authentication Setup
To obtain Google Search Console API credentials:
1. Visit the [Google Cloud Console](https://console.cloud.google.com/)
2. Create a new project or select an existing one
3. Enable the API:
- Go to "APIs & Services" > "Library"
- Search for and enable ["Search Console API"](https://console.cloud.google.com/marketplace/product/google/searchconsole.googleapis.com)
4. Create credentials:
- Navigate to ["APIs & Services" > "Credentials"](https://console.cloud.google.com/apis/credentials)
- Click "Create Credentials" > "Service Account"
- Fill in the service account details
- Create a new key in JSON format
- The credentials file (.json) will download automatically
5. Grant access:
- Open Search Console
- Add the service account email (format: name@project.iam.gserviceaccount.com) as a property administrator
## Usage
### Claude Desktop Configuration
```json
{
"mcpServers": {
"gsc": {
"command": "npx",
"args": ["-y", "mcp-server-gsc"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json"
}
}
}
}
```
## Available Tools
### search_analytics
Get comprehensive search performance data from Google Search Console with enhanced analytics capabilities.
**Required Parameters:**
- `siteUrl`: Site URL (format: `http://www.example.com/` or `sc-domain:example.com`)
- `startDate`: Start date (YYYY-MM-DD)
- `endDate`: End date (YYYY-MM-DD)
**Optional Parameters:**
- `dimensions`: Comma-separated list (`query`, `page`, `country`, `device`, `searchAppearance`, `date`)
- `type`: Search type (`web`, `image`, `video`, `news`, `discover`, `googleNews`)
- `aggregationType`: Aggregation method (`auto`, `byNewsShowcasePanel`, `byProperty`, `byPage`)
- `rowLimit`: Maximum rows to return (default: 1000, max: 25000)
- `dataState`: Data freshness (`all` or `final`, default: `final`)
**Filter Parameters:**
- `pageFilter`: Filter by page URL (supports regex with `regex:` prefix)
- `queryFilter`: Filter by search query (supports regex with `regex:` prefix)
- `countryFilter`: Filter by country ISO 3166-1 alpha-3 code (e.g., `USA`, `CHN`)
- `deviceFilter`: Filter by device type (`DESKTOP`, `MOBILE`, `TABLET`)
- `searchAppearanceFilter`: Filter by search feature (e.g., `AMP_BLUE_LINK`, `AMP_TOP_STORIES`)
- `filterOperator`: Operator for filters (`equals`, `contains`, `notEquals`, `notContains`, `includingRegex`, `excludingRegex`)
**Quick Wins Detection:**
- `detectQuickWins`: Enable automatic detection of optimization opportunities (default: `false`)
- `quickWinsConfig`: Configuration for quick wins detection:
- `positionRange`: Position range to consider (default: `[4, 20]`)
- `minImpressions`: Minimum impressions threshold (default: `100`)
- `minCtr`: Minimum CTR percentage (default: `1`)
**Example - Basic Query:**
```json
{
"siteUrl": "https://example.com",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"dimensions": "query,page",
"rowLimit": 5000
}
```
**Example - Advanced Filtering with Regex:**
```json
{
"siteUrl": "https://example.com",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"dimensions": "page,query",
"queryFilter": "regex:(AI|machine learning|ML)",
"filterOperator": "includingRegex",
"deviceFilter": "MOBILE",
"rowLimit": 10000
}
```
**Example - Quick Wins Detection:**
```json
{
"siteUrl": "https://example.com",
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"dimensions": "query,page",
"detectQuickWins": true,
"quickWinsConfig": {
"positionRange": [4, 15],
"minImpressions": 500,
"minCtr": 2
}
}
```
## License
MIT
## Contributing
Contributions are welcome! Please read our contributing guidelines before submitting pull requests.
TDQS
Scored across 8 tools
Most tools have distinct purposes targeting different Google Search Console operations, but there is some overlap between 'search_analytics' and 'enhanced_search_analytics' which could cause confusion as both handle search performance data. The 'detect_quick_wins' tool also overlaps with the quick wins detection feature mentioned in 'enhanced_search_analytics', creating minor ambiguity.
Tool names follow a consistent verb_noun pattern throughout (e.g., list_sites, get_sitemap, submit_sitemap), with all using snake_case. The only deviation is 'index_inspect' which uses a noun_verb structure instead of verb_noun, but this is minor and doesn't significantly impact readability.
With 8 tools, the count is well-scoped for a Google Search Console server, covering core functionalities like site management, sitemap handling, search analytics, and URL inspection. Each tool appears to earn its place without feeling excessive or insufficient for the domain.
The tool set provides good coverage for Google Search Console operations, including listing sites, managing sitemaps, inspecting URLs, and analyzing search data. A minor gap exists in missing tools for more advanced features like URL removal requests or security issue reporting, but core workflows are well-covered.