No official Google Search Console MCP connector exists, so this is a from-scratch build — a free, local Claude Desktop extension using only first-party SDKs (Anthropic's own MCP SDK and Google's own API client), with four read-only tools: listing your Search Console properties, search performance data, sitemap status, and single-URL index inspection. Setup is entirely free; the only real limitation is that Google's API doesn't expose the bulk "Pages" indexing-issue report — that's UI/export only, with no workaround.
Key takeaways
- No official connector exists — not from Google, not from Anthropic. What's listed in Claude's Discover marketplace for "GSC" is entirely community/third-party code.
- Entirely free for personal use — no credit card anywhere in Google Cloud Console setup, OAuth configuration, or normal API usage.
- One real capability gap to know up front: the Search Console API has no endpoint for the bulk indexing-issue report (404s, soft 404s, excluded-by-noindex). That data is UI/export-only, permanently — no MCP server can get around it.
- Local-first by design: this runs as a Claude Desktop extension on your own machine. Each person who installs it authorizes with their own Google account — nobody's data passes through anybody else's server.
- The install method that actually works turned out not to be the obvious one — more on that below.
Why build this instead of using an existing one
Searching for a Google Search Console MCP connector turns up a real gap: nothing official from Google or Anthropic. Claude's own Discover marketplace does list several community-built options when you search "GSC" — multiple of them, in fact, which says something about the actual demand — but every single one is third-party code from an author with no track record to check. For something that would hold OAuth access to real Search Console data, that's a meaningful trust gap, not a theoretical one. Worth noting: some of those listings are hosted connectors, meaning the vendor's own server sits between you and Google — your OAuth grant would flow through infrastructure you've never heard of, not just code you haven't audited.
The alternative built here draws a specific line: original code, built on
first-party SDKs only — Anthropic's own
@modelcontextprotocol/sdk for the protocol, Google's own
googleapis client for OAuth and API calls. Not a hand-rolled OAuth
implementation either — reusing the provider's own, audited libraries for the
security-critical parts is the safer choice, not a compromise on "from scratch."
What you end up with
Four read-only tools, usable directly from a Claude Desktop chat once installed:
| Tool | What it does |
|---|---|
list_sites | Lists the Search Console properties your Google account can access |
list_sitemaps | Submitted sitemaps and their status for a property |
search_analytics_query | Clicks, impressions, CTR, position — by query, page, country, device, or date |
inspect_url | Index status, canonical URL, mobile usability for one exact page |
Scope is webmasters.readonly only — nothing it does can change anything in
your Search Console account. It can look, not touch.
Setting it up, step by step
This section assumes zero prior experience with Google Cloud Console or MCP. Every command is given for both Windows and macOS/Linux where they actually differ — most don't.
Before you start: install Node.js (the LTS version) and Git if you don't already have them. Windows users: installing Git also installs Git Bash — use that instead of Command Prompt for the commands below (PowerShell works too; given separately wherever the syntax differs).
Step 1 — create a Google Cloud project
- Go to console.cloud.google.com.
- Top bar → project dropdown → New Project.
- Name it anything (e.g. "gsc-mcp-server") and create it.
- Make sure the new project is selected in the top bar before continuing.
Step 2 — enable the Search Console API
- APIs & Services → Library.
- Search for "Google Search Console API".
- Click it, then click Enable.
Step 3 — configure the OAuth consent screen
This is the step most likely to trip you up if you skip a sub-step, so read this one slowly.
- APIs & Services → OAuth consent screen.
- User type: External — this just means "not restricted to a Google Workspace org." It stays private to you until you explicitly publish it, which personal use never requires.
- Fill in the required fields (app name, your email as support contact) — nothing here is visible to anyone but you.
- Scopes: add
https://www.googleapis.com/auth/webmasters.readonly. - Test users: add your own Google account's email address — do not skip this. Miss it, and signing in later fails with
Error 403: access_denied, for a reason that isn't obvious from the error itself (explained below). - Leave Publishing status as Testing. In Testing mode, only the emails you listed as test users can authorize the app at all, and Google's full app-verification review — a real, multi-week process — doesn't apply. It only kicks in if you publish for the general public. The "100 test users" limit you'll see mentioned is irrelevant here; this uses 1 of 100.
Step 4 — create the OAuth client credentials
- APIs & Services → Credentials → Create Credentials → OAuth client ID.
- Application type: Desktop app — important. Desktop-type clients get Google's automatic loopback-redirect allowance, so no redirect URI or port needs registering ahead of time.
- Name it anything, create it.
- Click the download icon next to the new client → Download JSON.
Step 5 — save the client secret where the server expects it
Windows (Git Bash) and macOS/Linux — identical command:
mkdir -p ~/.gsc-mcp-server
mv ~/Downloads/client_secret_*.json ~/.gsc-mcp-server/client_secret.json
Windows (PowerShell), if that's what you're using instead:
mkdir "$env:USERPROFILE\.gsc-mcp-server"
Move-Item "$env:USERPROFILE\Downloads\client_secret_*.json" "$env:USERPROFILE\.gsc-mcp-server\client_secret.json"
The single most common mistake here is Windows-specific and invisible.
File Explorer hides known file extensions by default, so renaming a file by hand can
silently produce client_secret.json.json instead of
client_secret.json — it looks correct in the UI and isn't. Verify with the commands below, and confirm the file is exactly client_secret.json, nothing appended.
# macOS / Linux
ls -la ~/.gsc-mcp-server/
# Windows PowerShell
dir "$env:USERPROFILE\.gsc-mcp-server\"
Step 6 — clone, install, and authorize
Same commands on every OS — git and npm don't differ by platform:
git clone https://github.com/learnwithbadridutta/gsc-mcp-server.git
cd gsc-mcp-server
npm install
npm run authorize
npm run authorize prints a URL — open it, sign in with the
same Google account you added as a test user in step 3, and approve.
The script catches the redirect on a local port automatically, saves a token to
~/.gsc-mcp-server/token.json, and exits. One-time step — the saved token is
reused after this.
Step 7 — test it before involving Claude at all
npm run inspect
This opens Anthropic's own official MCP Inspector in a browser — a tool built
specifically for testing MCP servers directly, call by call, before wiring them into a
real client. Try list_sites first; if it returns your properties, the
Google side of this is fully working and anything that goes wrong afterward is specific
to Claude Desktop, not the server itself.
Step 8 — install it into Claude Desktop
Current Claude Desktop versions install local MCP servers as a packaged
.mcpb file — Anthropic's own "MCP Bundle" format — through
Settings → Extensions. This is not the same place as
Settings → Connectors, which is for remote/HTTPS servers and won't show
a local one.
Download the pre-built bundle directly — no build step needed: releases/gsc-mcp-server-v0.1.0.mcpb, click "Download raw file."
~/.gsc-mcp-server/ folder, which lives outside the packaged project
directory and was never part of what gets bundled. Confirmed by unzipping the built
archive and searching it for any trace of credential filenames before this was written
up — found none. Until you complete steps 1-6 yourself with your own Google account, the
installed extension has nothing to authenticate with.
Use this install method — it's the one that actually worked in testing:
- Open Claude Desktop → Settings → Extensions
- Find Advanced settings → Install Extension…
- Browse to the downloaded
.mcpbfile and select it
Double-clicking the file and dragging it into the Claude Desktop window are both also documented as valid install methods — neither worked reliably here: double-click did nothing at all on Windows, and dragging the file in got treated as a chat attachment instead of an install action. The Settings menu path above didn't have either problem.
Claude Desktop shows a permissions screen — review it, approve, and the four tools become available. One more thing worth knowing: once installed, it's actually listed under Settings → Connectors → Yours alongside any remote connectors — that's where to check it's there and enabled, even though the install itself happened through Extensions.
Step 9 — try it
Start a new chat and ask:
"Using the gsc tool, list my Search Console sites"
Claude Desktop will ask you to approve the tool call the first time — allow it. You should get back your verified properties. From there, something more useful:
"Using gsc, show me search analytics for [your exact site URL from that list] over the last 28 days, broken down by query"
Every real mistake made getting here
This is the part a polished walkthrough usually edits out. Each of these cost real troubleshooting time, and every one of them is now baked into the steps above so nobody else has to hit it blind.
| What happened | Actual cause |
|---|---|
| GitHub clone failed with "password authentication is not supported" | GitHub dropped password auth years ago — a Personal Access Token is required as the password instead |
npm run authorize generated a URL, but signing in returned Error 403: access_denied | The Google account wasn't added as a Test user on the OAuth consent screen — required in Testing mode, easy to miss |
| "No OAuth client secret found" even after saving the file | Windows had silently renamed it to client_secret.json.json — hidden file extensions struck again |
Double-clicking the .mcpb file did nothing on Windows | File-type association for .mcpb wasn't reliably registered — the Settings → Extensions install path sidesteps this entirely |
| Dragging the file into Claude Desktop uploaded it as a chat attachment | The drop zone in this build is a general chat attachment target, not an install trigger |
| After install, nothing showed under Settings → Connectors | It actually was there — just needed a full process restart via Task Manager, not just closing the window (which usually just minimizes to the tray) |
| A GitHub Release with the built file attached couldn't be created | Blocked by platform policy on this specific session type, not a permissions issue — worked around by committing the built file directly into the repo instead |
A note on trusting this (or anything like it)
The honest version of "is this safe": this server can only do what its
webmasters.readonly OAuth scope allows — read, never write — and it runs
entirely on your own machine once installed, talking directly to Google's API with your
own credentials. Nobody else's server sits in between. That said, "safe" for a
downloaded binary isn't a property of the file format — it's a property of whether the
source behind it is actually inspectable, which is why this is published as open source
rather than a closed download, and why the bundle was verified by hand (not just
assumed) before being written up here.
Documented vs. inferred vs. unsupported
| Claim | Status | Basis |
|---|---|---|
| No official Google or Anthropic Search Console MCP connector exists | Documented | Checked against Anthropic's connector directory and Google's own published MCP server list — neither lists one |
| The Search Console API has no bulk indexing-issue endpoint | Documented | Confirmed against the API's own published reference — the Pages report has no corresponding API method |
| Double-click and drag-and-drop install are unreliable generally, not just on this machine | Inferred | Observed failing on one Windows setup; plausible as a general pattern given how file-type associations and drop-zone handling work, but not verified across other systems |
| Community GSC connectors in Claude's Discover marketplace are unsafe to use | Unsupported | Not independently audited one by one — the concern here is the absence of verification, not a confirmed finding of a specific problem in any particular listing |