MCP server for Google Search Console API and Google Indexing API
gsc-mcp
MCP server for Google Search Console API and Google Indexing API — full API coverage.
When to Use
| Task | Tool |
|---|---|
| "Check which queries my site ranks for" | search_analytics_query |
| "Submit a URL for indexing" | indexing_publish |
| "Find pages with indexing errors" | url_inspection_inspect |
| "Get search performance data for the last 30 days" | search_analytics_query |
| "Compare click-through rates between mobile and desktop" | search_analytics_query (group by device) |
| "Submit my sitemap to Google" | sitemaps_submit |
| "Batch submit URLs for indexing" | indexing_batch_publish |
For AI agents: See `llms.txt` for a machine-readable summary. Copy `templates/CLAUDE.md` or `templates/AGENTS.md` into your project to teach your agent about this MCP.
Unlike other GSC MCP servers that only wrap searchAnalytics.query, this server exposes every endpoint available in the Google Search Console and Indexing APIs.
Tools (13)
Sites
| Tool | Description |
|---|---|
sites_list |
List all sites (properties) in your Search Console |
sites_get |
Get details of a specific site |
sites_add |
Add a new site (property) |
sites_delete |
Remove a site |
Sitemaps
| Tool | Description |
|---|---|
sitemaps_list |
List all submitted sitemaps for a site |
sitemaps_get |
Get details of a specific sitemap |
sitemaps_submit |
Submit a sitemap |
sitemaps_delete |
Delete a sitemap |
Search Analytics
| Tool | Description |
|---|---|
search_analytics_query |
Query search performance data (clicks, impressions, CTR, position) with filtering and grouping. Supports hourly data with the hour dimension. |
URL Inspection
| Tool | Description |
|---|---|
url_inspection_inspect |
Inspect a URL's index status, crawl info, rich results, AMP, and mobile usability |
Indexing API
| Tool | Description |
|---|---|
indexing_publish |
Notify Google about URL updates or removals |
indexing_get_metadata |
Get latest notification status for a URL |
indexing_batch_publish |
Batch notify Google about up to 100 URL updates/removals in a single request |
Authentication
Two authentication methods are supported:
Option 1: OAuth2 Refresh Token
{
"mcpServers": {
"gsc-mcp": {
"command": "npx",
"args": ["-y", "@mikusnuz/gsc-mcp"],
"env": {
"GSC_CLIENT_ID": "your-client-id",
"GSC_CLIENT_SECRET": "your-client-secret",
"GSC_REFRESH_TOKEN": "your-refresh-token"
}
}
}
}
Required OAuth2 scopes:
https://www.googleapis.com/auth/webmastershttps://www.googleapis.com/auth/indexing
Option 2: Service Account
{
"mcpServers": {
"gsc-mcp": {
"command": "npx",
"args": ["-y", "@mikusnuz/gsc-mcp"],
"env": {
"GSC_SERVICE_ACCOUNT_KEY_PATH": "/path/to/service-account-key.json"
}
}
}
}
The service account must be added as an owner or user in Google Search Console for each site.
Setup Guide
OAuth2 Setup
- Go to Google Cloud Console
- Create a project (or select existing)
- Enable Search Console API and Indexing API
- Create OAuth 2.0 credentials (Desktop app type)
- Use the OAuth Playground to generate a refresh token with scopes:
https://www.googleapis.com/auth/webmastershttps://www.googleapis.com/auth/indexing
Service Account Setup
- Go to Google Cloud Console
- Create a service account
- Download the JSON key file
- Enable Search Console API and Indexing API
- In Search Console, add the service account email as an owner for your sites
License
MIT
Tools (13)
sites_listList all sites (properties) in your Search Consolesites_getGet details of a specific sitesites_addAdd a new site (property)sites_deleteRemove a sitesitemaps_listList all submitted sitemaps for a sitesitemaps_getGet details of a specific sitemapsitemaps_submitSubmit a sitemapsitemaps_deleteDelete a sitemapsearch_analytics_queryQuery search performance data (clicks, impressions, CTR, position) with filtering and groupingurl_inspection_inspectInspect a URL's index status, crawl info, rich results, AMP, and mobile usabilityindexing_publishNotify Google about URL updates or removalsindexing_get_metadataGet latest notification status for a URLindexing_batch_publishBatch notify Google about up to 100 URL updates/removals in a single requestEnvironment Variables
GSC_CLIENT_IDOAuth2 Client IDGSC_CLIENT_SECRETOAuth2 Client SecretGSC_REFRESH_TOKENOAuth2 Refresh TokenGSC_SERVICE_ACCOUNT_KEY_PATHPath to service account JSON key fileConfiguration
{"mcpServers": {"gsc-mcp": {"command": "npx", "args": ["-y", "@mikusnuz/gsc-mcp"], "env": {"GSC_CLIENT_ID": "your-client-id", "GSC_CLIENT_SECRET": "your-client-secret", "GSC_REFRESH_TOKEN": "your-refresh-token"}}}}