Sync Search Console data to SQLite for precise LLM-powered SEO analysis
Better Search Console

Quick Navigation
Why this exists | Quick start | Tools | Insight types | Data retention | Custom SQL | Development | Troubleshooting
Why This Exists
Every SEO tool that connects to an LLM has the same problem: the Google Search Console API returns 1,000 rows per request, your context window fills up fast, and you end up asking the model to reason about a tiny fraction of your data. The answers sound plausible but they're built on incomplete information.
This MCP server takes a different approach. It downloads your entire Search Console dataset into a local SQLite database, then gives Claude pre-built SQL queries for every standard SEO analysis type. Claude never sees the raw data. It sees query results: the top 50 declining pages, the queries ranking 5-20 with high impressions, the device breakdown for a specific URL pattern. Precise answers from complete data, using a few hundred tokens instead of tens of thousands.
What you get
One database per GSC property, synced in the background with full pagination (no row limits). Sixteen pre-built insight queries covering the things SEOs check repeatedly. Custom SQL for everything else. Automatic data retention that prunes low-value rows after each sync to keep databases from growing without bound. The data stays on your machine and the queries run in milliseconds.
Quick Start
Step 1: Set Up Google Credentials
You need a Google Cloud service account with Search Console API access. Here is how to create one from scratch.
Create a Google Cloud project and enable the API
- Go to the Google Cloud Console
- Create a new project (or select an existing one)
- Go to APIs and Services > Library
- Search for Google Search Console API and click Enable
Create a service account
- Go to APIs and Services > Credentials
- Click Create Credentials > Service account
- Give it a name (e.g.
search-console-mcp) and click Create and Continue - Skip the optional role and user access steps, click Done
- Click on the service account you just created
- Go to the Keys tab
- Click Add Key > Create new key > JSON
- Save the downloaded JSON file somewhere safe (e.g.
~/credentials/gsc-service-account.json)
For full details on creating credentials, see the Google Workspace credentials guide.
Grant the service account access to Search Console
- Open the JSON key file and copy the
client_emailvalue (it looks likename@project.iam.gserviceaccount.com) - Go to Google Search Console
- Select a property
- Go to Settings > Users and permissions > Add user
- Paste the service account email and set permission to Full
- Repeat for each property you want to access
Step 2: Add to Claude Desktop
Add this to your Claude Desktop config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"better-search-console": {
"command": "npx",
"args": ["-y", "@houtini/better-search-console"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your-service-account.json"
}
}
}
}
Replace /path/to/your-service-account.json with the actual path to the JSON key file you downloaded in Step 1.
Claude Code (CLI)
Claude Code uses a different registration mechanism -- it doesn't read claude_desktop_config.json. Use claude mcp add instead:
claude mcp add \
-e GOOGLE_APPLICATION_CREDENTIALS=/p
Tools (2)
run_queryExecutes a SQL query against the local Search Console databaselist_tablesLists available tables in the databaseEnvironment Variables
GOOGLE_APPLICATION_CREDENTIALSrequiredPath to the Google Cloud service account JSON key fileConfiguration
{"mcpServers": {"better-search-console": {"command": "npx", "args": ["-y", "@houtini/better-search-console"], "env": {"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your-service-account.json"}}}}