Claude Code
one commandclaude mcp add gsc -- uvx gsc-indexer-mcpsearch console, from inside your ai assistant
An open-source MCP server that installs on your own machine and hands your AI assistant 15 real Search Console tools. Ask it which pages are not indexed and it inspects them through Google's own API and comes back with reasons, not guesses. Ask it to submit the ones worth submitting and it drives your own browser to do it, at a pace Google does not throttle.
Nothing needs installing first. uvx fetches and runs the published package on demand, which is why every option below is one line.
claude mcp add gsc -- uvx gsc-indexer-mcp{
"mcpServers": {
"gsc": { "command": "uvx", "args": ["gsc-indexer-mcp"] }
}
}pip install --pre gsc-indexer-mcpOne click, in the editors that support it:VS CodeCursorLM Studio
One of the lines above. Restart the client.
Ask it to run gsc_setup. Sign in to Google once.
It loads the bridge extension into a browser profile.
"Which of my pages are not indexed, and why?"
The distribution is gsc-indexer-mcp. Note the indexer: plain gsc-mcp on PyPI is an unrelated project by another author, so installing that name gets you someone else's server. Version 0.1.0a4 is current, and the changelog says what moved.
Grouped by the job they do, because the distinction that matters is not alphabetical: reading costs you almost nothing, and submitting spends a slot you cannot get back.
Nothing here changes anything in Search Console.
The part that turns a property into a work list.
Drives your own browser. Slots are roughly eleven per property, rolling, and unrecoverable.
Run once, then only when something breaks.
gsc_find_unindexed classifies every URL it returns under one of ten reason codes, each carrying a submitting_helps flag. That flag is the one to read before spending anything: it means a slot can move the URL, not that today is the day to spend it on this one. A URL whose state could not be established comes back as undetermined, never as unindexed, because absence of evidence is not a finding.
Most tools in this space get Google's limits wrong, get throttled, and then blame detection. Both limits that matter are per property, not per account, so eight properties means eight independent budgets.
| Limit | Value | Mechanic |
|---|---|---|
| Request Indexing | ~11 slots per property | Rolling. Each slot frees 24 hours and a minute after its own use, not at midnight. |
| URL Inspection | 2,000 per day per property | Daily reset. |
| URL Inspection | 600 per minute per property | Rate limit. |
gsc_quota subtracts the daily reserve you set aside in config, so the number you act on is the number you can actually spend.Pre-alpha, and stated plainly rather than buried. The whole surface is wired up and has met a real Google account, on one operating system, driven by one person. Sign-in has been walked live on Windows, and Google confirmed real Request Indexing calls in both Chrome and Brave against live properties. Every automated assertion is still made against a fake, and macOS and Linux are unproven.
That is the honest shape of it: usable today if you are on Windows and reading the output rather than trusting it blindly. If you run it somewhere else and it breaks,the repo is where that becomes a fix. The defects the live run found are already written down in the smoke notes rather than quietly patched out of the record.
Nowhere near me. This is not a hosted product: the server runs as a process on your machine, and every request it makes goes straight from there to Google. There is no account here, no telemetry call home, and no server of mine anywhere in the path. I cannot see your properties, your URLs or your results, and the architecture is the reason rather than the promise.
Sign-in uses OAuth with PKCE in your own browser. The token and the local store live under your user account on your own disk, so uninstalling takes them with it. The one shared thing is the OAuth client the project ships, which is what spares you a Google Cloud project; it identifies the application to Google and grants access to nothing. Supply your own instead if you would rather.
The browser tools on this site make the same promise by a different route: they run in your tab and keep nothing. Same rule either way, stated in full on theprivacy page.
Because I was doing this by hand, every morning, one property at a time. Open Search Console, pick a property, paste a URL, read the verdict, decide whether it is worth one of the eleven slots, wait, repeat. Across client properties that is most of a morning gone before any actual work starts, and the case studies here are built from exactly those snapshots. An assistant that can ask Google the same questions turns the reading into a sentence and leaves the judgment where it belongs. The judgment is still the job, which is whatthe indexing service is.
MCP is the Model Context Protocol: a standard way to hand an AI assistant a set of real tools it can call. Installing this one means Claude stops guessing about your site and starts asking Google. You type "which of my blog posts are not indexed" in the chat, and it calls the Search Console API, reads the answer, and tells you. There is no dashboard here and no web app, only the tools your assistant gains.
No, and this is the part most alternatives get wrong. Nothing on this page asks you for a key. The
server ships its own OAuth client, so sign-in happens once, in your own browser, when you first call
gsc_setup(). The token that comes back is stored on your machine, under your user
account, and never travels anywhere near me. You can supply your own OAuth client instead if your
organisation requires it.
Yes, and honestly: Google publishes no Request Indexing API that a tool like this may use, so submission goes through your own browser. A small bridge extension, loaded into the profile you pair during setup, clicks the real Request Indexing button in a real Search Console session. It paces submissions 130 to 180 seconds apart, which is the interval proven not to draw a throttle over long runs. Five URLs is therefore up to fifteen minutes of wall clock. The slowness is the feature.
Roughly eleven per property, and the counting is stranger than most tools admit. The window is rolling, not daily: each slot frees itself 24 hours and one minute after its own use, not at midnight. Properties are independent budgets, so eight properties means eight separate pools. This server tracks slots individually rather than counting a daily total, so it knows the exact minute the next one opens, and it deliberately over-counts rather than under-counts when a race is possible, because a short wait costs less than a hard quota error.
It means the whole surface is wired up and has met a real Google account, on one operating system, driven by one person. Sign-in, browser-driven submission and the reporting tools have all been walked live on Windows against real properties, and Google confirmed real Request Indexing calls in both Chrome and Brave. Every automated assertion, though, is still made against a fake. So: usable, and not yet proven on macOS or Linux. The defects that live run found are written down in the repo rather than quietly fixed.
Python 3.11 or newer, and a Chromium browser: Chrome, Brave, Edge, Vivaldi, Opera or Chromium itself. Setup loads the bridge extension into one of your existing profiles, and there is no way to finish setup without one. Firefox and Safari are not Chromium and will not work. The read-only tools, the ones that inspect and report, need no browser at all.
Free, and the whole source is public under the Functional Source License, which converts to Apache 2.0 over time. You can read every line that touches your Google account before you install it. The only thing asked in return is that you say so when something breaks, because one person on one operating system cannot find every defect alone.
Broke on your machine, or want a tool it does not have?Open an issue, ortell me on WhatsApp. One person on one operating system cannot find every defect alone.