Google Search Console MCP | GSC MCP
Pricing
from $2.00 / 1,000 results
Google Search Console MCP | GSC MCP
Google Search Console MCP (GSC MCP) — connect GSC to any AI assistant. Get search analytics, inspect URLs for indexing problems, manage sitemaps, and track SEO performance. Supports Claude, Cursor, Codex, Gemini, Kiro, and VS Code. Runs on Apify.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
halam
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Google Search Console MCP Server
A Model Context Protocol (MCP) server that connects Google Search Console (GSC) to AI assistants, allowing you to analyze your SEO data through natural language conversations. Works with Claude Desktop, Cursor, Codex CLI, Gemini CLI, and any other MCP-compatible client.
No local installation needed — runs entirely on Apify. Just provide your Google credentials and connect.
What Can This Do?
Search Analytics & Reporting
- Discover which queries bring visitors to your site
- Track impressions, clicks, and click-through rates
- Analyze performance trends and compare time periods
- Filter by country, device, search type
- Pagination up to 25,000 rows for bulk exports
URL Inspection & Indexing
- Check if specific pages have indexing problems
- See when Google last crawled your pages
- Inspect multiple URLs at once to identify patterns
- Detect canonical issues, robots blocks, and fetch errors
Property Management
- See all your GSC properties in one place
- Get verification details and ownership information
- Add or remove properties from your account
Sitemap Management
- View all sitemaps and their status
- Submit new sitemaps
- Check for errors or warnings
Available Tools (20+)
| Tool | What It Does |
|---|---|
get_search_analytics | Top queries and pages with clicks, impressions, CTR, position |
get_advanced_search_analytics | Analytics with filters by country, device, query, page |
get_performance_overview | Summary of site performance with daily trends |
compare_search_periods | Compare performance between two time periods |
get_search_by_page_query | Search terms driving traffic to a specific page |
inspect_url_enhanced | Detailed crawl/index status for a URL |
batch_url_inspection | Inspect up to 10 URLs at once |
check_indexing_issues | Check multiple URLs for indexing problems |
list_properties | Shows all your GSC properties |
get_site_details | Details about a specific site |
get_sitemaps | Lists all sitemaps for a site |
list_sitemaps_enhanced | Detailed sitemap info including errors and warnings |
manage_sitemaps | Submit or delete sitemaps |
get_capabilities | Lists all tools and shows auth status |
Getting Started
Step 1 — Create a Google Service Account
- Go to Google Cloud Console and create or select a project
- Enable the Search Console API
- Go to IAM & Admin → Service Accounts → click + Create Service Account → give it a name (e.g. "gsc-mcp") → click Create and Continue → skip optional permissions → click Done
- Click on the service account you just created → go to the Keys tab → Add Key → Create new key → select JSON → click Create — a
.jsonfile will download - Find your service account email: It's shown on the Service Accounts page (looks like
your-name@your-project-id.iam.gserviceaccount.com). You can also find it in the downloaded JSON file under the"client_email"field. - Add the email to GSC: Go to Google Search Console → Settings → Users and permissions → Add user → paste the service account email → set Full access
⚠️ Important: Do NOT use an OAuth client credential (created under Credentials → OAuth client ID). OAuth requires a browser login and does not work on Apify. You need a Service Account key (the downloaded JSON will have
"type": "service_account"at the top).
Step 2 — Configure This Actor
- Open this actor on Apify
- In the Input tab, paste your service account JSON key into the "Service Account Credentials" field
- Start the actor — it will run as an MCP server in standby mode
Step 3 — Connect Your AI Client
Once the actor is running, you'll get a standby URL. Use it in your MCP client config:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
Cursor (~/.cursor/mcp.json):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
Windsurf (~/.codeium/windsurf/mcp_config.json):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
Codex CLI (~/.codex/mcp.json):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
Gemini CLI (~/.gemini/settings.json):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
Kiro (.kiro/settings/mcp.json in your workspace):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
VS Code (GitHub Copilot) (.vscode/mcp.json in your workspace):
{"mcpServers": {"gsc": {"url": "https://YOUR_ACTOR_STANDBY_URL/sse"}}}
💡 Replace
YOUR_ACTOR_STANDBY_URLwith the actual standby URL from your Apify actor run. You can find it in the actor's Runs tab after starting it.
Step 4 — Test
Ask your AI assistant: "List my GSC properties"
If you see your properties — it's working!
Troubleshooting
"No Search Console properties found"
The service account authenticated successfully but doesn't have access to any properties.
Fix: Go to Google Search Console → Settings → Users and permissions → Add the service account email with Full access.
"The provided credentials don't appear to be a service account key"
You pasted an OAuth client JSON (has "web" or "installed" at the top) instead of a service account JSON (has "type": "service_account").
Fix: Go to Google Cloud Console → IAM → Service Accounts → Keys → Create new key → JSON. Use that file instead.
"Invalid JSON in serviceAccountJson field"
The JSON you pasted is malformed or incomplete.
Fix: Open the downloaded .json file in a text editor, select ALL content (Cmd+A / Ctrl+A), copy (Cmd+C / Ctrl+C), and paste directly into the input field. Make sure you include the opening { and closing }.
Service account from one project works but another doesn't
Each Google Cloud project needs the Search Console API enabled separately.
Fix: Go to https://console.cloud.google.com/apis/library/searchconsole.googleapis.com?project=YOUR_PROJECT_ID and click Enable.
"Permission denied" or "Forbidden" errors
The service account doesn't have sufficient access to the GSC property.
Fix: Ensure you added the service account email with Full (not Restricted) access in GSC Users and permissions.
Sample Prompts
Once connected, try these with your AI assistant:
| What you want | What to ask |
|---|---|
| Top queries | "Show me the top 20 search queries for mysite.com in the last 30 days" |
| Performance overview | "Create a performance overview of mysite.com for the last 28 days, identify any drops or spikes" |
| Compare periods | "Compare my site's performance between May and June. What queries improved the most?" |
| Filter analytics | "Show queries with high impressions but positions below 10, filtered to mobile traffic in the US" |
| Find opportunities | "Find keywords where I rank on page 2 (positions 11-20) with high impressions" |
| Check indexing | "Check these pages for indexing issues: mysite.com/page1, mysite.com/page2, mysite.com/page3" |
| Inspect a URL | "Do a comprehensive inspection of mysite.com/landing-page" |
| See all properties | "List all my GSC properties" |
Input Options
| Field | Required | Default | Description |
|---|---|---|---|
| Service Account JSON | Option 1 | — | Paste your entire Google Cloud service account JSON key |
| Service Account Email | Option 2 | — | The client_email from your service account JSON |
| Private Key | Option 2 | — | The private_key from your service account JSON |
| Project ID | Option 2 | — | The project_id from your service account JSON |
| Data Freshness | No | all | all = matches GSC dashboard. final = confirmed data only (2-3 day lag) |
| Allow Destructive | No | false | Enable add/delete site and delete sitemap tools |
Safety
Tools that modify your account (add_site, delete_site, delete_sitemap) are disabled by default. To enable them, toggle "Allow Destructive Operations" to true in the actor input. We recommend keeping this off unless you specifically need to add or remove properties/sitemaps.