How to connect Claude to Google Search Console

Google ships official MCP servers for Maps, BigQuery, and other Google products. It also maintains an open source one for Google Analytics 4, but it hasn’t shipped one for Search Console yet. Given how fast new features appear and get rolled out in GSC … well, it might be a while still.

I therefore built a custom setup that works similarly to an MCP and runs locally, to access all my GSC data within Claude. It’s a script bundled up in a reusable skill that runs each time I ask for Search Console data in a workflow or as a standalone, authenticating through a service account.

This setup takes +- 20 minutes and holds until you delete the key file or remove the service account from Search Console.

Step 1: create a Google Cloud project and enable the API

Go to Google Cloud, click Select a project โ†’ New Project, and give it a name. This is just a free container, no billing needed for anything in this article.

Then, inside the project, go to APIs & Services โ†’ Library, search for Google Search Console API, and click Enable.

Step 2: create a service account and download its key

A service account is a robot Google identity with its own email address. It’s what lets Claude authenticate without you doing an OAuth back and forth in the browser every session.

  1. Go to IAM & Admin โ†’ Service Accounts โ†’ Create Service Account
  2. Name it something recognizable and skip the optional permission steps as it needs no roles inside Google Cloud, its access will come from Search Console itself
  3. Open the created account, go to Keys โ†’ Add Key โ†’ Create new key โ†’ JSON, and download the file

That JSON file is the credential, so store it somewhere sensible and treat it like a password, anyone holding it can read your Search Console data.

The field you’ll need next is the client email, which looks like: gsc-yourname@your-project.iam.gserviceaccount.com.

Step 3: add the service account to Search Console

This is the step that actually grants access, and it works exactly like adding a colleague to a property:

  1. Open Search Console and select your property
  2. Go to Settings โ†’ Users and permissions โ†’ Add user
  3. Paste the service accountโ€™s client email
  4. Give it Restricted permission (or Full if you’re comfortable with it)

The robot is now just another user on your property.

Step 4: install the skill

Download the repo from GitHub (green Code button โ†’ Download ZIP), unzip it, and then let Claude do the rest. Open Claude Code or the Claude desktop app in the unzipped folder and prompt:

Install this skill into my Claude skills folder, install its Python dependencies, and set up the config file. My service account key is at [path to your key file] and my site is https://yoursite.com/. Then verify the connection works.

Claude copies the files, installs the dependencies, writes the config, and runs the verification.

If you prefer to run the commands yourself the README file has the manual version too.

The skill itself is quite short, it holds the knowledge (where the key lives, which property string to use, the API’s quirks and sensible defaults) and one Python script that does the querying. Once installed it loads automatically whenever you ask a Google Search Console question.

Good to know: the API treats domain properties (sc-domain:yoursite.com) and URL-prefix properties (https://yoursite.com/) as completely separate, so note which type you added the robot to. If a query ever returns a 403, that could be the problem.

Other ways to connect GSC to Claude

The method I used is not the only one. Depending on how much you want to own the pipe, there are three main routes right now:

1. Custom script bundled in a skill (my way): maximum control, minimum moving parts: your key, your machine, one readable Python file between Claude and Google. The limit here is that it depends on a local file and setup, so it can only work in Claude Code and Cowork on Claude Desktop, but not on plain Claude chat and claude.ai as those run on an hosted sandbox with no access to your folders.

2. Install someone else’s open source MCP server: it runs on your own machine too, just as a standing server rather than a script. If you search for “google search console mcp” you’ll find a few available options on GitHub. This route makes sense if you use plain Claude without code execution, where a code skill can’t run but an MCP can, or if you manage many properties, since most of these servers accept OAuth login, so one browser sign-in covers every property you own instead of adding a service account to each one. The trade-off is the security layer: you’re installing an open source package that holds your Google credentials, and it’s far more complex than a single readable script. If you can’t understand what the code you’re installing exactly does, I wouldn’t go for it.

3. Pay a third party to host it: there are tools that sell managed versions of GSC MCP. There, you authorise through their platform, they hold your Google credential, and you point Claude at their URL. This works in a browser, not locally, but the trade-off is that your Search Console data passes through their infrastructure to get to you so you need to trust the tool.

What you can do with a GSC connection

Your workflow imagination is the limit! Claude fetches the data and can reason over it and join it with everything else in the session. Some examples of what you can do:

  • A quick-wins report: “Which queries sit at position 4 to 10 with high impressions and a CTR below what that position should earn?”
  • Refresh triage“Compare clicks per page for the last 3 months against the same period last year and rank my blog posts by decay.”
  • Indexation checking“Inspect these 20 URLs, which are indexed?”
  • Cross-source pipelines: combine GSC with a crawl, “Find pages that get impressions but aren’t in the sitemap”, or with your rank tracker: “Which pages lost clicks quarter-over-quarter among the ones we refreshed?”
  • A weekly routine: it starts every Monday with the same prompt, top movers, biggest losers, new queries entering the top 20 etc.

Also, because the connection is a skill, every lesson you learn or tweak you want to make gets encoded once and applied forever.

Would this work on other AI agents?

More or less yes. Any coding agent that can run commands on your machine, like OpenAI’s Codex CLI, Gemini CLI or Cursor, can use the exact same script. The main Claude-specific part is the SKILL.md file, which is the instructions telling the agent how and when to use the script. Every agent has its own version of that file (AGENTS.md for Codex, GEMINI.md for Gemini CLI), so porting this means adjusting that to a different file.

If Google ships an official server

There’s no announced plan yet, but if it happens, the process gets simpler, it carries across devices, and it’s slightly faster. The data will be the same as what you get with these methods.

Other resources on this topic

Other resources I found very interesting and useful about this topic:

Share it!