Allows querying search performance data including clicks, impressions, CTR, and position data, as well as managing sitemaps, inspecting URL indexing status, and identifying SEO opportunities like keyword cannibalization and low-CTR keywords.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GSC-MCP-ServerShow me my top performing keywords from the last 30 days."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GSC-MCP-Server
Google Search Console MCP Server β Connect Google Search Console to Claude, Cursor, and other MCP clients.
Features
π Search Analytics β Query clicks, impressions, CTR, and position data
π SEO Opportunities β Find low-CTR keywords, detect cannibalization issues
π Reports β Weekly summaries, period comparisons
πΊοΈ Sitemaps β List, submit, and manage sitemaps
π URL Inspection β Check indexing status (requires full scope)
πΎ Caching β SQLite cache for faster repeated queries
π Secure β OAuth tokens stored in OS keychain
Quick Start
# Install globally
npm install -g @appsyogi/gsc-mcp-server
# Set up OAuth credentials
gsc-mcp init
# Verify setup
gsc-mcp doctor
# Start the server (for MCP clients)
gsc-mcp runPrerequisites
1. Create Google Cloud OAuth Credentials
You need to create your own OAuth credentials in Google Cloud Console:
Go to Google Cloud Console
Create a new project or select an existing one
Enable the Google Search Console API:
Go to "APIs & Services" β "Library"
Search for "Google Search Console API"
Click "Enable"
Create OAuth credentials:
Go to "APIs & Services" β "Credentials"
Click "Create Credentials" β "OAuth client ID"
Choose "Desktop application"
Name it (e.g., "GSC-MCP")
Click "Create"
Copy the Client ID and Client Secret
Add test users (required while app is in testing mode):
Go to "APIs & Services" β "OAuth consent screen"
Scroll to "Test users" section
Click "Add users"
Add the Google account email(s) you'll use to authenticate
Click "Save"
Note: While your app's publishing status is "Testing", only test users can authenticate. You can add up to 100 test users.
2. Configure GSC-MCP
Run the init command and enter your credentials:
gsc-mcp initThis will:
Prompt for your Client ID and Client Secret
Open a browser for Google authentication
Store your refresh token securely in the OS keychain
Usage
CLI Commands
# Initialize with OAuth (interactive)
gsc-mcp init
# Initialize with service account
gsc-mcp init --service-account /path/to/key.json
# Initialize with full scope (for sitemap submission, URL inspection)
gsc-mcp init --scope full
# Check configuration and connectivity
gsc-mcp doctor
gsc-mcp doctor --verbose
# Start MCP server (stdio mode)
gsc-mcp run
# Start in HTTP mode (for debugging)
gsc-mcp run --http 3333
# View current configuration
gsc-mcp config
# Clear credentials
gsc-mcp logoutMCP Client Configuration
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"gsc": {
"command": "gsc-mcp",
"args": ["run"]
}
}
}VS Code (Copilot)
Add to your VS Code MCP settings (~/.vscode/mcp.json or workspace settings):
{
"servers": {
"gsc": {
"command": "gsc-mcp",
"args": ["run"],
"type": "stdio"
}
}
}Cursor
Add to your Cursor MCP config:
{
"mcpServers": {
"gsc": {
"command": "npx",
"args": ["-y", "@appsyogi/gsc-mcp-server", "run"]
}
}
}Available Tools
Search Analytics
Tool | Description |
| Query search performance data with dimensions and filters |
| Compare two time periods |
Sitemaps
Tool | Description | Scope |
| List all sitemaps | readonly |
| Get sitemap details | readonly |
| Submit a sitemap | full |
| Delete a sitemap | full |
URL Inspection
Tool | Description | Scope |
| Inspect a URL's indexing status | full |
| Inspect multiple URLs | full |
SEO Opportunities
Tool | Description |
| Find quick-win keywords (position 4-20, low CTR) |
| Detect keyword cannibalization |
| Generate weekly performance summary |
Export
Tool | Description |
| Export data as CSV |
| Export data as JSON |
LLM Optimization (v0.2.0+)
All tools support parameters to reduce token consumption for LLM use cases:
Compact Response Format
Add format: "compact" to any tool for LLM-optimized output:
{
"siteUrl": "sc-domain:example.com",
"startDate": "2026-01-01",
"endDate": "2026-01-28",
"dimensions": ["query"],
"format": "compact"
}Compact format features:
Short key names (
impinstead ofimpressions,posinstead ofposition)CTR as percentage string (
"5.41%"instead of0.054123...)Natural language summary field
URL prefixes stripped from page paths
Example compact response:
{
"summary": "Top query 'example keyword' got 150 clicks at position 3.2",
"rows": [
{"key": "example keyword", "clicks": 150, "imp": 2800, "ctr": "5.36%", "pos": 3.2}
]
}Date Rollup Granularity
For date dimension queries, use granularity to reduce row count:
{
"siteUrl": "sc-domain:example.com",
"startDate": "2025-07-01",
"endDate": "2026-01-28",
"dimensions": ["date"],
"granularity": "weekly"
}Options:
dailyβ Default, returns daily dataweeklyβ Aggregates by week (Monday-based)monthlyβ Aggregates by monthautoβ Picks based on date range (>90 days = monthly, >21 days = weekly)
Default Row Limits
Default rowLimit is 25 (optimized for LLM context windows). Use higher values when needed:
{
"siteUrl": "sc-domain:example.com",
"rowLimit": 100
}Maximum: 25,000 rows.
Resources
The server exposes browsable resources:
gsc://sitesβ List all propertiesgsc://sites/{siteUrl}/sitemapsβ List sitemaps for a property
Scopes
GSC-MCP supports two permission levels:
Readonly (default)
Search analytics queries
List sitemaps
SEO analysis tools
gsc-mcp init # Uses readonly by defaultFull
Everything in readonly, plus:
Submit/delete sitemaps
URL inspection
gsc-mcp init --scope fullConfiguration Files
GSC-MCP stores configuration in platform-specific locations:
Platform | Config Path |
macOS |
|
Linux |
|
Windows |
|
Files:
config.jsonβ OAuth client ID/secret, scope settingscache.sqliteβ Query cache and saved presets
Tokens are stored securely in the OS keychain when available.
Service Account Setup
For automated/server use, you can use a service account instead of OAuth:
Create a service account in Google Cloud Console
Download the JSON key file
Add the service account email as an owner in Google Search Console
Initialize:
gsc-mcp init --service-account /path/to/key.jsonAPI Quotas
Google Search Console API has a default quota of 1,200 queries per day. GSC-MCP includes:
Automatic retry with exponential backoff
Query caching to reduce API calls
Pagination handling for large result sets
Examples
Find Quick-Win Keywords
Use gsc-mcp to find quick-win opportunities for my site https://example.comWeekly Report
Generate a weekly performance summary for https://example.comCompare Periods
Compare search performance for https://example.com between last week and the week beforeExport Data
Export the top 1000 queries for https://example.com in the last 28 days as CSVDevelopment
# Clone the repo
git clone https://github.com/AppsYogi-com/gsc-mcp-server.git
cd gsc-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Run in dev mode
npm run dev
# Test locally
node dist/cli/index.js doctorLicense
MIT
Contributing
Contributions are welcome! Please open an issue or PR.
Credits
Built with:
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.