gsc-mcp-server
Provides tools to query Google Search Console for search performance data, list properties, and inspect URL indexing status.
Click on "Deploy 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-server List my Search Console properties"
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
MCP server for Google Search Console. Query search performance, list properties, inspect URLs, and list sitemaps from Cursor, Claude Desktop, or any MCP-compatible client.
Use the scoped package name
@jlnkrth/gsc-mcp-server. The unscoped namegsc-mcp-serveron npm is a different package.
Quick start
Situation | Auth | Run MCP server |
Cloned this repo (inside project folder) |
|
|
Installed from npm (any other directory) |
|
|
Set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET before auth (see Google Cloud setup).
Using a Google passkey to sign in? That's fine — passkey only applies to signing into Google in the browser during auth. You still need your own GCP OAuth client ID and secret.
Related MCP server: mcp-gsc
Tools
Tool | Description |
| List Search Console properties accessible to your Google account |
| Query clicks, impressions, CTR, and position with dimensions and filters |
| Inspect a URL's index status, crawl state, and mobile usability |
| List submitted sitemaps with status, errors, and indexed counts |
gsc_search_analytics filters
Parameter | Description |
| Shorthand: queries containing this string |
| Shorthand: page URLs containing this string |
| Full GSC filter objects (advanced) |
Prerequisites
Node.js 18+
A Google Cloud project with the Search Console API enabled
An OAuth 2.0 Desktop client (client ID + secret)
A Google account with access to the Search Console properties you want to query
Google Cloud setup
Go to Google Cloud Console.
Create or select a project.
Open APIs & Services → Library and enable Google Search Console API.
Open APIs & Services → OAuth consent screen — configure the consent screen. If the app is in Testing mode, add your Google account under Test users or sign-in will fail.
Open APIs & Services → Credentials → Create Credentials → OAuth client ID.
Application type: Desktop app.
Add
http://localhost:3336/callbackas an authorized redirect URI (if prompted).Copy the Client ID and Client secret.
Install and authenticate
From npm
export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
npx -y -p @jlnkrth/gsc-mcp-server gsc-mcp-authFrom source
git clone https://github.com/jlnkrth/gsc-mcp-server.git
cd gsc-mcp-server
npm install
cp .env.example .env
# Edit .env with your credentials, then:
export $(grep -v '^#' .env | xargs)
npm run authThe auth flow opens a browser on port 3336. Tokens are saved to ~/.config/gsc-mcp/tokens.json by default (override with GSC_TOKEN_PATH).
MCP client configuration
Cursor
Add to ~/.cursor/mcp.json (merge with existing servers):
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "@jlnkrth/gsc-mcp-server"],
"env": {
"GOOGLE_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"GSC_TOKEN_PATH": "/Users/you/.config/gsc-mcp/tokens.json"
}
}
}
}Keep mcp.json private — it contains your OAuth client secret. Do not commit it to git.
For local development, point command at Node directly:
{
"mcpServers": {
"google-search-console": {
"command": "node",
"args": ["/absolute/path/to/gsc-mcp-server/src/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
}
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (see examples/claude-desktop.json).
After changing MCP config, fully quit and restart your client so the server reloads tokens.
Example prompts
Once connected, you can ask your AI assistant:
"List my Search Console properties"
"What are the top 20 queries by clicks for https://example.com/ in the last 28 days?"
"Show me blog pages with the most impressions last week" (use
page_filter)"Is https://example.com/blog/my-post indexed?"
"List sitemaps for sc-domain:example.com"
Environment variables
Variable | Required | Description |
| Yes | OAuth 2.0 Desktop client ID |
| Yes | OAuth 2.0 Desktop client secret |
| No | Token file path (default: |
| No | Pre-fill email in the OAuth browser sign-in |
Troubleshooting
Symptom | Fix |
| Run |
| Use |
Google sign-in fails / access denied | If OAuth app is in Testing mode, add your Google account as a test user in GCP |
No | Revoke the app at Google Account permissions, then re-run auth |
Port 3336 in use | Free the port or stop the conflicting process, then re-run auth |
| Confirm the signed-in Google account has access to the property in Search Console |
MCP client can't find | Use the full path to |
Google OAuth fails after passkey sign-in |
|
Related MCP servers
Google Analytics MCP — official GA4 server
DataForSEO MCP — official DataForSEO server
Contributing
See CONTRIBUTING.md for local development, tests, and publishing.
License
MIT
Available Tools
4 toolsgsc_inspect_urlA
Inspect a URL's indexing status in Google Search Console. Shows whether the URL is indexed, crawl issues, and mobile usability.
Inputs: site_url (required), inspection_url (required).
gsc_list_sitemapsA
List all sitemaps submitted for a site in Google Search Console. Returns paths, types, dates, and errors/warnings.
Inputs: site_url (required).
gsc_list_sitesA
List all sites (properties) in Google Search Console accessible to the authenticated Google account.
Inputs: no named parameters.
gsc_search_analyticsB
Query Google Search Console search analytics. Returns clicks, impressions, CTR, and position. Dimensions: query, page, country, device, date, searchAppearance.
Inputs: end_date (required), site_url (required), start_date (required), type, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool targets a distinct resource in Google Search Console: sites, search analytics, URL inspection, and sitemaps. There is no functional overlap, so an agent can easily select the correct tool for a task.
All tool names follow the consistent pattern gsc_<verb>_<object> (e.g., gsc_list_sites, gsc_search_analytics). The prefix 'gsc_' and snake_case are applied uniformly, making the naming predictable.
With only 4 tools, the server is tightly scoped to the core read-only operations of Google Search Console. Each tool earns its place, and the count feels appropriate for the service's purpose.
The set covers the primary GSC data surfaces: site enumeration, performance analytics, URL indexing status, and sitemap information. No obvious gaps exist for typical read-only use cases, making the surface complete.
Related MCP Connectors
Read-only Google Search Console MCP server for AI assistants.
Hosted, read-only Google Search Console MCP: performance, comparisons, URL inspection, sitemaps.
MCP server for Google search results via SERP API
Hosted Google Search Console MCP server, with each action switched on or off per account.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for Google Search Console API that enables querying search analytics, managing sites, inspecting URLs, and supporting domain delegation via service accounts.34 PyPI1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Google Search Console, enabling querying search analytics, URL inspection, sitemap management, and more via natural language.16,878 npm3MIT
- AlicenseAqualityDmaintenanceA read-only MCP server for Google Search Console that lets you query search performance data, sitemaps, and URL index status from any MCP client.55MIT
- AlicenseAqualityBmaintenanceSecure MCP server for Google Search Console. Query search analytics (clicks, impressions, CTR, position), manage sitemaps, inspect URL indexing status, and manage site properties.10AGPL 3.0