Google Search Console MCP server for AI agents
Google Search Console MCP Server
A Model Context Protocol (MCP) server that gives AI agents direct access to your Google Search Console data.
- Search analytics — query clicks, impressions, CTR, and average position by page, query, country, device, or date range
- Compare periods — week-over-week, month-over-month trends
- Find opportunities — high-impression/low-click queries, ranking keywords you didn't know about
- Track specific pages — see which URLs are gaining or losing traction
- Index coverage — check which pages are indexed, excluded, or erroring
- Sitemap status — verify sitemaps are being read and how many URLs are indexed
Read-only access — this server cannot submit URLs, modify settings, or make any changes to your Search Console properties.
[!IMPORTANT] This server uses service account authentication. The service account must be added as a user on each Search Console property you want to access.
Tools
list_sites
List all sites (properties) you have access to in Google Search Console.
No parameters required.
search_analytics
Query search analytics data — clicks, impressions, CTR, and position.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| siteUrl | string | Yes | Site URL as it appears in Search Console (e.g. https://example.com/ or sc-domain:example.com) |
| startDate | string | Yes | Start date in YYYY-MM-DD format |
| endDate | string | Yes | End date in YYYY-MM-DD format |
| dimensions | string | No | Comma-separated: query, page, country, device, searchAppearance, date |
| rowLimit | number | No | Max rows to return (default 100, max 25000) |
| searchType | string | No | web, image, video, news, discover, or googleNews (default web) |
| queryFilter | string | No | Filter by query. Prefix with regex: for regex matching |
| pageFilter | string | No | Filter by page URL. Prefix with regex: for regex matching |
| countryFilter | string | No | ISO 3166-1 alpha-3 country code (e.g. USA, GBR) |
| deviceFilter | string | No | DESKTOP, MOBILE, or TABLET |
inspect_url
Check indexing status, crawl info, and mobile usability for a URL.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| siteUrl | string | Yes | Site URL as it appears in Search Console |
| inspectionUrl | string | Yes | The full URL to inspect (must belong to the site) |
list_sitemaps
List all submitted sitemaps and their status for a site.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| siteUrl | string | Yes | Site URL as it appears in Search Console |
Installation
Quick setup via agent
Already have your service account key? Paste this prompt into Claude Code or Claude Desktop and it will configure everything for you:
Clone and build the Google Search Console MCP server from https://github.com/sarahpark/google-search-console-mcp, then add it to my global MCP config. My service account key is at
/path/to/service-account-key.json. After setup, calllist_sitesto verify it works.
Replace the key path with your actual file location.
Build from source
git clone https://github.com/sarahpark/google-search-console-mcp.git
cd google-search-console-mcp
npm install
npm run build
Configuration
Google Cloud setup: service account key
- Go to Google Cloud Console and create a new project (or select an existing one)
- Open the Search Console API page and click Enable
- In the sidebar, go to APIs & Services → Credentials
- Click Create Credentials → Service account
- Give it a name (e.g. "search-console-mcp"), then click Create and Continue
- You can skip the optional role/access steps — click Done
- On the Credentials page, click on the service account you just created
- Go to the Keys tab → Add Key → Create new key → select JSON → click Create
- A
.jsonkey file will download — save it somewhere safe (e.g.~/.config/gcloud/service-account-key.json)
[!CAUTION] Treat this key file like a secret key. Do not save it inside your project repo or commit it to git. Store it outside your project directory and reference it by absolute path in your MCP config.
Google Search Console access
- Copy the service account's email address (it looks like
name@project-id.iam.gserviceaccount.com— you can find it on the service account details page) - Go to Google Search Console
- Select your property, then go to Settings → Users and permissions
- Click Add user, paste the service account email, set the permission to Restricted, and click Add
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"gsc": {
"command": "node",
"args": ["/absolute/path/to/google-search-console-mcp/build/index.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account-key.json"
}
}
}
}
Claude Code (VS Code)
Add to the "mcpServers" object in ~/.claude.json:
{
"mcpServers": {
"gsc": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/google-search-console-mcp/build/index.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account-key.json"
}
}
}
}
Usage
Once configured, ask Claude naturally:
- "List my Search Console properties"
- "Show me the top 20 queries for my site over the last 28 days"
- "Check the indexing status of https://example.com/blog/my-post"
- "Compare mobile vs desktop performance this month"
- "What sitemaps are submitted for my site?"
License
MIT