npm mcp-google-search-consolestdioMITupdated 9d ago
A1 Google Search Console MCP connects an AI app to Google Search Console. Investigate search performance, check whether a URL is indexed, inspect sitemaps and deliberately submit or remove a sitemap when needed.
¿Qué puedes hacer con Google Search Console MCP?
Google Search Console MCP
English | Русский
A1 Google Search Console MCP connects an AI app to Google Search Console. Investigate search performance, check whether a URL is indexed, inspect sitemaps and deliberately submit or remove a sitemap when needed.
It works with the properties your Google account can access. The important detail is that it uses the exact Search Console property value — a domain property and a URL-prefix property are different objects.
- 12 tools. Seven tools read properties, search data, sitemaps and index status; two add a property or submit a sitemap; three can remove data or call an arbitrary API method.
- Exact property IDs.
https://example.com/,https://www.example.com/andsc-domain:example.comare distinct.list_sitesshows the value to use. - Search data with context. Query clicks, impressions, CTR and position by date, page, query, country, device or search appearance.
- Indexing, not publishing. URL inspection explains Google’s current status; it does not force a page into the index.
Start with a read-only question:
Show the top 20 search queries for my property over the last 28 days, with clicks and CTR.
Connect the server · Explore use cases · Open technical documentation
See it work in a minute
You: Is
https://example.com/pricingindexed? If not, why?Assistant: Inspects the URL and shows the index verdict, coverage, crawl information and canonical URLs. Nothing changes.
You: Check my submitted sitemaps and prepare a resubmission for the one with errors.
Assistant: Shows the sitemap, its warnings and errors, then asks for confirmation before submitting it again.
You: Confirm.
Assistant: Resubmits the selected sitemap. It does not change page content or guarantee indexing.
Contents
- Quick start
- What you can ask it to do
- How Search Console properties work
- What can change
- Getting access
- Configuration
- Data, limits and background work
- Technical documentation
- Support
Quick start
You need Node.js 20+, a Google account with access to a Search Console property and OAuth credentials from Google Cloud.
- Prepare OAuth access.
- Add the server to your AI app.
- Start with the read-only question above.
In the app: open Settings → MCP servers, select Add server, choose STDIO, enter the command npx -y mcp-google-search-console@latest and environment variables GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET, GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN, then select Save and Restart.
codex mcp add google-search-console \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
--env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
-- npx -y mcp-google-search-console@latest
codex mcp list
claude mcp add \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
--env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
--transport stdio --scope user google-search-console \
-- npx -y mcp-google-search-console@latest
claude mcp list
The current official path is Settings → Extensions. For a custom desktop extension, open Advanced settings → Extension Developer → Install Extension…, select a .mcpb file and follow the prompts.
This repository currently publishes an npm stdio package and does not contain a .mcpb bundle. For Claude Desktop builds that still support local configuration, use the following JSON stdio configuration as a fallback:
{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}
In those builds, save it to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.
Claude Desktop MCP documentation
Add to ~/.cursor/mcp.json on macOS/Linux or %USERPROFILE%\.cursor\mcp.json on Windows:
{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}
Run MCP: Open User Configuration and add:
{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"${input:gsc_client_id}","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"${input:gsc_client_secret}","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"${input:gsc_refresh_token}"}}},"inputs":[{"type":"promptString","id":"gsc_client_id","description":"Google OAuth client ID"},{"type":"promptString","id":"gsc_client_secret","description":"Google OAuth client secret","password":true},{"type":"promptString","id":"gsc_refresh_token","description":"Google OAuth refresh token","password":true}]}
Check it with MCP: List Servers. VS Code MCP documentation
What you can ask it to do
Find search opportunities
- Which queries and pages brought the most clicks this month?
- Which pages lost clicks compared with the previous period?
- Show queries containing
mcpwhere average position is below 10.
Check index status and sitemaps
- Is this URL indexed? Show coverage, crawl and canonical information.
- Which submitted sitemaps have errors or warnings?
- Resubmit this sitemap after showing its current status.
Manage properties carefully
- List the Search Console properties I can access.
- Add this exact property value; I will verify ownership separately.
- Remove this property from my account after confirmation.
How Search Console properties work
A URL-prefix property must include its protocol and trailing slash, for example https://example.com/. A domain property is written as sc-domain:example.com. A near-match causes 403 or 404, so use the exact value returned by list_sites.
add_site only registers a property. Verification remains in the Search Console UI or Site Verification API. Search data uses Pacific Time; end_date is inclusive and final analytics data typically lags by two to three days. data_state: "all" can include fresher, still-changing rows.
What can change
| Operation | What happens | Confirmation boundary |
|---|---|---|
| List properties, analytics, sitemaps and URL status | Reads Search Console data | No change |
| Add a property | Adds a property entry; does not verify it | Changes account access |
| Submit or resubmit a sitemap | Requests processing of a sitemap | Changes Search Console state |
| Delete a property | Unlinks the property from the account; Google data is not deleted | Destructive |
| Delete a sitemap | Removes a submitted sitemap | Destructive |
| Raw API request | May call a write or delete endpoint | Potentially destructive |
The AI client controls confirmation prompts. The server marks reads, writes and destructive calls so the client can distinguish an inspection from a real change.
Getting access
Search Console data requires Google OAuth 2.0; an API key is not enough.
- Create or select a Google Cloud project and enable Google Search Console API.
- Configure the OAuth consent screen and create a Desktop app OAuth client.
- Use the OAuth 2.0 Playground with Use your own OAuth credentials to authorize the Google account that can access the properties and obtain a refresh token.
- Use
https://www.googleapis.com/auth/webmastersto include sitemaps and property changes. Usehttps://www.googleapis.com/auth/webmasters.readonlyonly if you intentionally need read-only access.
Testing-mode refresh tokens can expire after seven days. Publish the OAuth app, or use an Internal Workspace app, for long-lived access. Treat the client secret and refresh token as passwords.
Configuration
| Variable | Required | Description |
|---|---|---|
GOOGLE_SEARCH_CONSOLE_CLIENT_ID |
Yes* | OAuth client ID. |
GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET |
Yes* | OAuth client secret. |
GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN |
Yes* | OAuth refresh token. |
GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN |
Yes* | Short-lived alternative to the OAuth trio. |
GOOGLE_SEARCH_CONSOLE_API_BASE |
No | API base URL override. |
GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS |
No | Per-request timeout; default 60000 ms. |
GOOGLE_SEARCH_CONSOLE_MAX_RETRIES |
No | Temporary-error retries; default 3. |
* Provide either the OAuth trio or an access token.
Data, limits and background work
- Privacy. The local server calls Google and sends anonymous telemetry with an installation ID, versions and tool names — never OAuth tokens, property data, tool arguments or prompts. Set
ASKADS_TELEMETRY=0to opt out. - API limits. URL inspection allows 2,000 inspections per property per day and 600 per minute. Analytics returns at most 25,000 rows per request; long-tail anonymized queries are never returned. Use pagination and do not inspect whole sites URL by URL.
- No background monitoring. The server works only while called. If your AI app supports scheduled tasks, it can periodically check a sitemap or an important URL.
Technical documentation
- MCP capability catalog — task-oriented pages for every tool.
- All tools and inputs
- Development documentation
- Publishing documentation
- Google Search Console API
Support
Found a bug or need a scenario? Create an issue or write in Telegram.
Instalación
Añade Google Search Console MCP a tu cliente. Elige el que uses.
claude mcp add mcp-google-search-console -- npx -y mcp-google-search-consolecodex mcp add mcp-google-search-console -- npx -y mcp-google-search-consoleamp mcp add mcp-google-search-console -- npx -y mcp-google-search-console{
"mcpServers": {
"mcp-google-search-console": {
"command": "npx",
"args": [
"-y",
"mcp-google-search-console"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp-google-search-console": {
"command": "npx",
"args": [
"-y",
"mcp-google-search-console"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp-google-search-console","command":"npx","args":["-y","mcp-google-search-console"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp-google-search-console": {
"command": "npx",
"args": [
"-y",
"mcp-google-search-console"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp-google-search-console": {
"command": "npx",
"args": [
"-y",
"mcp-google-search-console"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp-google-search-console": {
"command": "npx",
"args": [
"-y",
"mcp-google-search-console"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp-google-search-console": {
"type": "local",
"command": "npx",
"args": [
"-y",
"mcp-google-search-console"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp-google-search-console": {
"command": {
"path": "npx",
"args": [
"-y",
"mcp-google-search-console"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y mcp-google-search-consoleRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Puntuación
39 / 100
Incompleta
- Documentación25/25
- Mantenimiento25/25
- Confianza16/20
- Capacidad0/15
- Instalación12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 1 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Historial de versiones
| Versiones | Publicada |
|---|---|
| 1.1.0Última | 18 ago 2026 |
| 1.0.0 | 11 ago 2026 |
| 0.1.1 | 10 ago 2026 |
| 0.1.0 | 9 ago 2026 |