# How to Set Up Claude Desktop with Google Search Console MCP
By Richard Baxter · 2 October 2025 · Source: https://houtini.com/articles/how-to-set-up-claude-desktop-with-google-search-console-mcp/
> Claude Desktop's ability to support access to API services using Model Context Protocol (MCP) is impressive stuff. And yes, that means you can get Claude connected to the Search Console API and query it to answer your questions. Better…
**Claude Desktop's ability to support access to API services using **[**Model Context Protocol**](https://houtini.com/what-is-an-mcp-server/)** (MCP) is impressive stuff. And yes, that means you can get Claude connected to the Search Console API and query it to answer your questions. Better still, with **[**Better Search Console**](https://github.com/houtini-ai/better-search-console)**, your data syncs to a local SQLite database - so you're not limited to the API's 1,000-row cap *****and***** you can run proper SQL queries (or Claude can run SQL queries - you just describe what you want) against your own data. This MCP is something I'm particularly delighted with and I hope you'll agree too.**
<!-- unsupported block: break -->
Psst! This project was inspired by [SEOgets](https://seogets.com/?ref=src), which is an excellent GSC analytics platform. If you want a polished, hosted UI with content grouping and topic clustering, [check them out](https://seogets.com/?ref=src) - they're worth the [$49/month](https://seogets.com/pricing?ref=src) for teams that need a production dashboard.
<!-- unsupported block: break -->
[https://github.com/houtini-ai/better-search-console](https://github.com/houtini-ai/better-search-console)

*An MCPapp feature - Better Search Console will plot interactive charts inside Claude Desktop*
In this guide, I'll walk you through how you setup Claude Desktop with Google Search Console integration, allowing Claude to access your website's search performance data and provide SEO insights from simple prompts.
The outcome, you can ask cool questions like:
```
"Show me the top 10 queries for houtini.com that rank in the top 20 positions and have more than 50 impressions. Sort by impressions, highest first."
```
Or even run SQL directly against your synced data:
```
Run this query against houtini.com: SELECT query, SUM(clicks) as clicks, SUM(impressions) as impressions FROM search_analytics WHERE position < 20 AND impressions > 50 GROUP BY query ORDER BY impressions DESC LIMIT 10
```
And
```
Show me new search rankings for houtini.com
```
Which will generate you a table like this in Claude Desktop:

*New ranking data table*
## What is MCP and Why Should You Care?
Model Context Protocol ( [MCP](https://www.anthropic.com/news/model-context-protocol)) is a framework that allows AI models like Claude to interact with external tools and data sources. By connecting Claude to Google Search Console, you can ask questions about your site's search performance.
## Prerequisites
Before we begin, make sure you have:
- The latest version of Claude Desktop installed
- A Google Search Console account with at least one verified property
- Access to [Google Cloud Platform](https://cloud.google.com/?hl=en)
- Windows (though the process is similar for Mac/Linux)
## Step 1: Install Node.js on Windows
To get this working, we're going to need to install the MCP package with NPM (Node Package Manager), which means installing [Node](http://Nodejs.org). If you haven't installed it already:
- Visit [nodejs.org](https://nodejs.org/)
- Download the LTS (Long Term Support) version
- Run the installer and follow the prompts
- Accept the default options if you're unsure
Once installed, verify by opening Command Prompt and typing:
```
node --version
```
You should see the version number displayed.

Node.js automatically includes npm (Node Package Manager), which we'll use to install the Search Console integration. Verify npm is installed by typing:
```
npm --version
```
## Step 2: Enable the Search Console API in Google Cloud
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
1. Create a new project or select an existing one
1. In the navigation menu, go to "APIs & Services" > "Library"
1. Search for "Search Console API" and select it
1. Click "Enable" to activate the API for your project

## Step 3: Create a Service Account
1. In Google Cloud Console, navigate to "IAM & Admin" > "Service Accounts"
1. Click "Create Service Account"
1. Enter a name and description for your service account
1. Click "Create and Continue"
1. You can skip assigning roles for now (we'll grant access directly in Search Console)
1. Click "Done"

Note the "Service accounts" navigation link in the left-hand nav.
## Step 4: Generate Service Account Credentials
1. From the Service Accounts list, find your newly created account
1. Click the three dots (⋮) menu and select "Manage keys"
1. Click "Add Key" > "Create new key"
1. Select "JSON" as the key type
1. Click "Create" to download the JSON file
1. Store this file very securely – it contains sensitive credentials

## Step 5: Grant Access in Google Search Console
1. Open [Google Search Console](https://search.google.com/)
1. Select the property you want Claude to access
1. Click on "Settings" (gear icon) > "Users and permissions"
1. Click "Add User"
1. Enter the service account email address (it looks like `name@project-id.iam.gserviceaccount.com`)
1. Set permission level to "Owner" or "Full User" (depending on what access you want Claude to have)
1. Click "Add"

## Step 6: Configure Claude Desktop

Better Search Console runs via npx, so there's no separate install step. You configure it directly in Claude Desktop:
1. Open Claude Desktop
1. Go File > Settings
1. Select the Developer tab in the pop-up dialogue
1. Click "Edit Config"
1. Open the claude_desktop_config.json file with your text editor of choice
1. Important: Use forward slashes in the path, even on Windows!
1. Save the changes
1. Restart Claude Desktop completely
Here's the JSON for Better Search Console - note you'll need the full file path to the JSON access key for the Search Console API:
```
{
"mcpServers": {
"better-search-console": {
"command": "npx",
"args": ["-y", "@houtini/better-search-console"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "C:/path/to/your/credentials.json"
}
}
}
}
```
That's it! Don't forget to restart Claude Desktop. It seems to take a tiny bit longer to start when it's loading an MCP config.
## Step 7: Test your Integration
The first thing to do is run the setup. Ask Claude:
```
Run the Better Search Console setup to sync my properties.
```
This fetches up to 3 months of data from the Search Console API and stores it in a local SQLite database. It takes a few minutes depending on how many properties you have, but you only need to do it once. After that, syncs are incremental.
Once that's finished, verify everything worked:
```
Show me all my Search Console properties.
```
Claude should return a list of your properties with sync status and row counts. If you see your sites listed with data, you're good to go.
## What Makes Better Search Console Different
The original `mcp-server-gsc` package was a straightforward API wrapper. You'd pass raw JSON parameters and get raw results back. It worked, but you were limited to 1,000 rows per query and couldn't do much analysis without copying data elsewhere.
Better Search Console takes a different approach. It syncs your Search Console data into a local SQLite database per property, which means you can:
- **Query all your data** - no 1,000-row API limit
- **Run SQL directly** - `SELECT query, clicks FROM search_analytics WHERE position BETWEEN 5 AND 20 ORDER BY impressions DESC`
- **Use 16 pre-built insights** - opportunities, growing/declining queries, new/lost keywords, branded splits, and more
- **Get interactive dashboards** - visual overviews with sparklines, hero metrics, and trend charts
- **Compare periods** - last 28 days vs previous 28 days, year-over-year, whatever you need
The data persists locally. Close Claude, reopen it, and your data's still there. No re-fetching.
Oh and, we use MCPapps so you get an interactive visiualisation in Claude Desktop:

*MCPapp dashboard for search console data right inside your chat window*
## Useful Prompts for Better Search Console
If you can describe what you want, you can write a prompt, so I'm not sure I need to go particularly far with this section.
The big difference from the basic, and undermaintained version of GSC MCP is that you don't need to pass raw JSON parameters anymore. Just ask for what you want in plain English.
### 1. Quick Health Check Across All Properties
```
Show me the overview of all my Search Console properties for the last 28 days, sorted by clicks.
```
This returns an interactive grid showing clicks, impressions, CTR, average position, and percentage changes for every synced property. Useful for a Monday morning check across all your sites.
### 2. Find Ranking Opportunities
```
Show me ranking opportunities for my site - queries ranking between position 5 and 20 with high impressions.
```
These are keywords where you're visible but not yet getting clicks. A small ranking improvement could mean a big traffic increase.
### 3. Compare Performance Across Periods
```
Compare performance for houtini.com: last 28 days versus the previous 28 days. Break it down by query.
```
Shows you what's growing, what's declining, and the percentage change for each query. Much more useful than eyeballing the GSC interface.
### 4. Custom SQL Queries
```
Run this SQL against houtini.com:
SELECT page, SUM(clicks) as total_clicks, SUM(impressions) as total_impressions,
ROUND(AVG(position), 1) as avg_position
FROM search_analytics
WHERE date >= date('now', '-28 days')
GROUP BY page
ORDER BY total_clicks DESC
LIMIT 15
```
This is where it gets properly powerful. Any question you can express as SQL, you can ask. Find cannibalising pages, spot device-specific issues, or slice data any way you want.
### 5. Full Property Dashboard
```
Show me the full dashboard for houtini.com with the last 3 months of data.
```
Returns hero metrics, trend charts, top queries, top pages, country breakdown, ranking distribution, and new/lost queries - all in one view.
And that's about it! In my opinion, this is a very small step towards something much bigger. I've been working heavily with automation for stuff like this, reporting, and site monitoring. Working with API services via MCP or on platforms like N8N is the future of where we're headed. But, don't think of it as particularly special - think of this stuff as a prerequisite, much like Excel. That's my opinion at least.
Enjoy!
Claude Desktop's ability to support access to API services using Model Context Protocol (MCP) is impressive stuff. And yes, that means you can get Claude connected to the Search Console API and query it to answer your questions. Better…
Richard Baxter
Claude Desktop's ability to support access to API services using Model Context Protocol (MCP) is impressive stuff. And yes, that means you can get Claude connected to the Search Console API and query it to answer your questions. Better still, with Better Search Console , your data syncs to a local SQLite database - so you're not limited to the API's 1,000-row cap and you can run proper SQL queries (or Claude can run SQL queries - you just describe what you want) against your own data. This MCP is something I'm particularly delighted with and I hope you'll agree too.
Psst! This project was inspired by SEOgets , which is an excellent GSC analytics platform. If you want a polished, hosted UI with content grouping and topic clustering, check them out - they're worth the $49/month for teams that need a production dashboard.
An MCPapp feature - Better Search Console will plot interactive charts inside Claude Desktop
In this guide, I'll walk you through how you setup Claude Desktop with Google Search Console integration, allowing Claude to access your website's search performance data and provide SEO insights from simple prompts.
The outcome, you can ask cool questions like:
"Show me the top 10 queries for houtini.com that rank in the top 20 positions and have more than 50 impressions. Sort by impressions, highest first."
Or even run SQL directly against your synced data:
Run this query against houtini.com: SELECT query, SUM(clicks) as clicks, SUM(impressions) as impressions FROM search_analytics WHERE position < 20 AND impressions > 50 GROUP BY query ORDER BY impressions DESC LIMIT 10
And
Show me new search rankings for houtini.com
Which will generate you a table like this in Claude Desktop:
New ranking data table
What is MCP and Why Should You Care?
Model Context Protocol ( MCP ) is a framework that allows AI models like Claude to interact with external tools and data sources. By connecting Claude to Google Search Console, you can ask questions about your site's search performance.
Prerequisites
Before we begin, make sure you have:
The latest version of Claude Desktop installed
A Google Search Console account with at least one verified property
Windows (though the process is similar for Mac/Linux)
Step 1: Install Node.js on Windows
To get this working, we're going to need to install the MCP package with NPM (Node Package Manager), which means installing Node . If you haven't installed it already:
Once installed, verify by opening Command Prompt and typing:
node --version
You should see the version number displayed.
Node.js automatically includes npm (Node Package Manager), which we'll use to install the Search Console integration. Verify npm is installed by typing:
npm --version
Step 2: Enable the Search Console API in Google Cloud
That's it! Don't forget to restart Claude Desktop. It seems to take a tiny bit longer to start when it's loading an MCP config.
Step 7: Test your Integration
The first thing to do is run the setup. Ask Claude:
Run the Better Search Console setup to sync my properties.
This fetches up to 3 months of data from the Search Console API and stores it in a local SQLite database. It takes a few minutes depending on how many properties you have, but you only need to do it once. After that, syncs are incremental.
Once that's finished, verify everything worked:
Show me all my Search Console properties.
Claude should return a list of your properties with sync status and row counts. If you see your sites listed with data, you're good to go.
What Makes Better Search Console Different
The original mcp-server-gsc package was a straightforward API wrapper. You'd pass raw JSON parameters and get raw results back. It worked, but you were limited to 1,000 rows per query and couldn't do much analysis without copying data elsewhere.
Better Search Console takes a different approach. It syncs your Search Console data into a local SQLite database per property, which means you can:
Query all your data - no 1,000-row API limit
Run SQL directly - SELECT query, clicks FROM search_analytics WHERE position BETWEEN 5 AND 20 ORDER BY impressions DESC
Use 16 pre-built insights - opportunities, growing/declining queries, new/lost keywords, branded splits, and more
Get interactive dashboards - visual overviews with sparklines, hero metrics, and trend charts
Compare periods - last 28 days vs previous 28 days, year-over-year, whatever you need
The data persists locally. Close Claude, reopen it, and your data's still there. No re-fetching.
Oh and, we use MCPapps so you get an interactive visiualisation in Claude Desktop:
MCPapp dashboard for search console data right inside your chat window
Useful Prompts for Better Search Console
If you can describe what you want, you can write a prompt, so I'm not sure I need to go particularly far with this section.
The big difference from the basic, and undermaintained version of GSC MCP is that you don't need to pass raw JSON parameters anymore. Just ask for what you want in plain English.
1. Quick Health Check Across All Properties
Show me the overview of all my Search Console properties for the last 28 days, sorted by clicks.
This returns an interactive grid showing clicks, impressions, CTR, average position, and percentage changes for every synced property. Useful for a Monday morning check across all your sites.
2. Find Ranking Opportunities
Show me ranking opportunities for my site - queries ranking between position 5 and 20 with high impressions.
These are keywords where you're visible but not yet getting clicks. A small ranking improvement could mean a big traffic increase.
3. Compare Performance Across Periods
Compare performance for houtini.com: last 28 days versus the previous 28 days. Break it down by query.
Shows you what's growing, what's declining, and the percentage change for each query. Much more useful than eyeballing the GSC interface.
4. Custom SQL Queries
Run this SQL against houtini.com:
SELECT page, SUM(clicks) as total_clicks, SUM(impressions) as total_impressions,
ROUND(AVG(position), 1) as avg_position
FROM search_analytics
WHERE date >= date('now', '-28 days')
GROUP BY page
ORDER BY total_clicks DESC
LIMIT 15
This is where it gets properly powerful. Any question you can express as SQL, you can ask. Find cannibalising pages, spot device-specific issues, or slice data any way you want.
5. Full Property Dashboard
Show me the full dashboard for houtini.com with the last 3 months of data.
Returns hero metrics, trend charts, top queries, top pages, country breakdown, ranking distribution, and new/lost queries - all in one view.
And that's about it! In my opinion, this is a very small step towards something much bigger. I've been working heavily with automation for stuff like this, reporting, and site monitoring. Working with API services via MCP or on platforms like N8N is the future of where we're headed. But, don't think of it as particularly special - think of this stuff as a prerequisite, much like Excel. That's my opinion at least.
# How to Set Up Claude Desktop with Google Search Console MCP
By Richard Baxter · 2 October 2025 · Source: https://houtini.com/articles/how-to-set-up-claude-desktop-with-google-search-console-mcp/
> Claude Desktop's ability to support access to API services using Model Context Protocol (MCP) is impressive stuff. And yes, that means you can get Claude connected to the Search Console API and query it to answer your questions. Better…
**Claude Desktop's ability to support access to API services using **[**Model Context Protocol**](https://houtini.com/what-is-an-mcp-server/)** (MCP) is impressive stuff. And yes, that means you can get Claude connected to the Search Console API and query it to answer your questions. Better still, with **[**Better Search Console**](https://github.com/houtini-ai/better-search-console)**, your data syncs to a local SQLite database - so you're not limited to the API's 1,000-row cap *****and***** you can run proper SQL queries (or Claude can run SQL queries - you just describe what you want) against your own data. This MCP is something I'm particularly delighted with and I hope you'll agree too.**
<!-- unsupported block: break -->
Psst! This project was inspired by [SEOgets](https://seogets.com/?ref=src), which is an excellent GSC analytics platform. If you want a polished, hosted UI with content grouping and topic clustering, [check them out](https://seogets.com/?ref=src) - they're worth the [$49/month](https://seogets.com/pricing?ref=src) for teams that need a production dashboard.
<!-- unsupported block: break -->
[https://github.com/houtini-ai/better-search-console](https://github.com/houtini-ai/better-search-console)

*An MCPapp feature - Better Search Console will plot interactive charts inside Claude Desktop*
In this guide, I'll walk you through how you setup Claude Desktop with Google Search Console integration, allowing Claude to access your website's search performance data and provide SEO insights from simple prompts.
The outcome, you can ask cool questions like:
```
"Show me the top 10 queries for houtini.com that rank in the top 20 positions and have more than 50 impressions. Sort by impressions, highest first."
```
Or even run SQL directly against your synced data:
```
Run this query against houtini.com: SELECT query, SUM(clicks) as clicks, SUM(impressions) as impressions FROM search_analytics WHERE position < 20 AND impressions > 50 GROUP BY query ORDER BY impressions DESC LIMIT 10
```
And
```
Show me new search rankings for houtini.com
```
Which will generate you a table like this in Claude Desktop:

*New ranking data table*
## What is MCP and Why Should You Care?
Model Context Protocol ( [MCP](https://www.anthropic.com/news/model-context-protocol)) is a framework that allows AI models like Claude to interact with external tools and data sources. By connecting Claude to Google Search Console, you can ask questions about your site's search performance.
## Prerequisites
Before we begin, make sure you have:
- The latest version of Claude Desktop installed
- A Google Search Console account with at least one verified property
- Access to [Google Cloud Platform](https://cloud.google.com/?hl=en)
- Windows (though the process is similar for Mac/Linux)
## Step 1: Install Node.js on Windows
To get this working, we're going to need to install the MCP package with NPM (Node Package Manager), which means installing [Node](http://Nodejs.org). If you haven't installed it already:
- Visit [nodejs.org](https://nodejs.org/)
- Download the LTS (Long Term Support) version
- Run the installer and follow the prompts
- Accept the default options if you're unsure
Once installed, verify by opening Command Prompt and typing:
```
node --version
```
You should see the version number displayed.

Node.js automatically includes npm (Node Package Manager), which we'll use to install the Search Console integration. Verify npm is installed by typing:
```
npm --version
```
## Step 2: Enable the Search Console API in Google Cloud
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
1. Create a new project or select an existing one
1. In the navigation menu, go to "APIs & Services" > "Library"
1. Search for "Search Console API" and select it
1. Click "Enable" to activate the API for your project

## Step 3: Create a Service Account
1. In Google Cloud Console, navigate to "IAM & Admin" > "Service Accounts"
1. Click "Create Service Account"
1. Enter a name and description for your service account
1. Click "Create and Continue"
1. You can skip assigning roles for now (we'll grant access directly in Search Console)
1. Click "Done"

Note the "Service accounts" navigation link in the left-hand nav.
## Step 4: Generate Service Account Credentials
1. From the Service Accounts list, find your newly created account
1. Click the three dots (⋮) menu and select "Manage keys"
1. Click "Add Key" > "Create new key"
1. Select "JSON" as the key type
1. Click "Create" to download the JSON file
1. Store this file very securely – it contains sensitive credentials

## Step 5: Grant Access in Google Search Console
1. Open [Google Search Console](https://search.google.com/)
1. Select the property you want Claude to access
1. Click on "Settings" (gear icon) > "Users and permissions"
1. Click "Add User"
1. Enter the service account email address (it looks like `name@project-id.iam.gserviceaccount.com`)
1. Set permission level to "Owner" or "Full User" (depending on what access you want Claude to have)
1. Click "Add"

## Step 6: Configure Claude Desktop

Better Search Console runs via npx, so there's no separate install step. You configure it directly in Claude Desktop:
1. Open Claude Desktop
1. Go File > Settings
1. Select the Developer tab in the pop-up dialogue
1. Click "Edit Config"
1. Open the claude_desktop_config.json file with your text editor of choice
1. Important: Use forward slashes in the path, even on Windows!
1. Save the changes
1. Restart Claude Desktop completely
Here's the JSON for Better Search Console - note you'll need the full file path to the JSON access key for the Search Console API:
```
{
"mcpServers": {
"better-search-console": {
"command": "npx",
"args": ["-y", "@houtini/better-search-console"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "C:/path/to/your/credentials.json"
}
}
}
}
```
That's it! Don't forget to restart Claude Desktop. It seems to take a tiny bit longer to start when it's loading an MCP config.
## Step 7: Test your Integration
The first thing to do is run the setup. Ask Claude:
```
Run the Better Search Console setup to sync my properties.
```
This fetches up to 3 months of data from the Search Console API and stores it in a local SQLite database. It takes a few minutes depending on how many properties you have, but you only need to do it once. After that, syncs are incremental.
Once that's finished, verify everything worked:
```
Show me all my Search Console properties.
```
Claude should return a list of your properties with sync status and row counts. If you see your sites listed with data, you're good to go.
## What Makes Better Search Console Different
The original `mcp-server-gsc` package was a straightforward API wrapper. You'd pass raw JSON parameters and get raw results back. It worked, but you were limited to 1,000 rows per query and couldn't do much analysis without copying data elsewhere.
Better Search Console takes a different approach. It syncs your Search Console data into a local SQLite database per property, which means you can:
- **Query all your data** - no 1,000-row API limit
- **Run SQL directly** - `SELECT query, clicks FROM search_analytics WHERE position BETWEEN 5 AND 20 ORDER BY impressions DESC`
- **Use 16 pre-built insights** - opportunities, growing/declining queries, new/lost keywords, branded splits, and more
- **Get interactive dashboards** - visual overviews with sparklines, hero metrics, and trend charts
- **Compare periods** - last 28 days vs previous 28 days, year-over-year, whatever you need
The data persists locally. Close Claude, reopen it, and your data's still there. No re-fetching.
Oh and, we use MCPapps so you get an interactive visiualisation in Claude Desktop:

*MCPapp dashboard for search console data right inside your chat window*
## Useful Prompts for Better Search Console
If you can describe what you want, you can write a prompt, so I'm not sure I need to go particularly far with this section.
The big difference from the basic, and undermaintained version of GSC MCP is that you don't need to pass raw JSON parameters anymore. Just ask for what you want in plain English.
### 1. Quick Health Check Across All Properties
```
Show me the overview of all my Search Console properties for the last 28 days, sorted by clicks.
```
This returns an interactive grid showing clicks, impressions, CTR, average position, and percentage changes for every synced property. Useful for a Monday morning check across all your sites.
### 2. Find Ranking Opportunities
```
Show me ranking opportunities for my site - queries ranking between position 5 and 20 with high impressions.
```
These are keywords where you're visible but not yet getting clicks. A small ranking improvement could mean a big traffic increase.
### 3. Compare Performance Across Periods
```
Compare performance for houtini.com: last 28 days versus the previous 28 days. Break it down by query.
```
Shows you what's growing, what's declining, and the percentage change for each query. Much more useful than eyeballing the GSC interface.
### 4. Custom SQL Queries
```
Run this SQL against houtini.com:
SELECT page, SUM(clicks) as total_clicks, SUM(impressions) as total_impressions,
ROUND(AVG(position), 1) as avg_position
FROM search_analytics
WHERE date >= date('now', '-28 days')
GROUP BY page
ORDER BY total_clicks DESC
LIMIT 15
```
This is where it gets properly powerful. Any question you can express as SQL, you can ask. Find cannibalising pages, spot device-specific issues, or slice data any way you want.
### 5. Full Property Dashboard
```
Show me the full dashboard for houtini.com with the last 3 months of data.
```
Returns hero metrics, trend charts, top queries, top pages, country breakdown, ranking distribution, and new/lost queries - all in one view.
And that's about it! In my opinion, this is a very small step towards something much bigger. I've been working heavily with automation for stuff like this, reporting, and site monitoring. Working with API services via MCP or on platforms like N8N is the future of where we're headed. But, don't think of it as particularly special - think of this stuff as a prerequisite, much like Excel. That's my opinion at least.
Enjoy!