Connect Google Search Console to Claude, Cursor, and other MCP clients.
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 run
Prerequisites
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 init
This 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 logout
MCP 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 |
|---|---|
searchanalytics.query |
Query search performance data with dimensions and filters |
report.comparePeriods |
Compare two time periods |
Sitemaps
| Tool | Description | Scope |
|---|---|---|
sitemaps.list |
List all sitemaps | readonly |
sitemaps.get |
Get sitemap details | readonly |
sitemaps.submit |
Submit a sitemap | full |
sitemaps.delete |
Delete a sitemap | full |
URL Inspection
| Tool | Description | Scope |
|---|---|---|
urlInspection.inspect |
Inspect a URL's indexing status | full |
urlInspection.batchInspect |
Inspect multiple URLs | full |
SEO Opportunities
| Tool | Description |
|---|---|
opportunities.lowCtrHighPos |
Find quick-win keywords (position 4-20, low CTR) |
opportunities.cannibalization |
Detect keyword cannibalization |
report.weeklySummary |
Generate weekly performance summary |
Export
| Tool | Description |
|---|---|
export.csv |
Export data as CSV |
| `export.js |
Tools (7)
searchanalytics.queryQuery search performance data with dimensions and filtersreport.comparePeriodsCompare two time periodssitemaps.listList all sitemapsurlInspection.inspectInspect a URL's indexing statusopportunities.lowCtrHighPosFind quick-win keywords (position 4-20, low CTR)opportunities.cannibalizationDetect keyword cannibalizationreport.weeklySummaryGenerate weekly performance summaryEnvironment Variables
Client IDrequiredGoogle Cloud OAuth Client IDClient SecretrequiredGoogle Cloud OAuth Client SecretConfiguration
{"mcpServers": {"gsc": {"command": "gsc-mcp", "args": ["run"]}}}