Better Google Search Console MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_APPLICATION_CREDENTIALS}" better-google-search-console -- npx -y @houtini/better-search-console
Required:GOOGLE_APPLICATION_CREDENTIALS
README.md

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

Better Search Console

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
  1. Go to the Google Cloud Console
  2. Create a new project (or select an existing one)
  3. Go to APIs and Services > Library
  4. Search for Google Search Console API and click Enable
Create a service account
  1. Go to APIs and Services > Credentials
  2. Click Create Credentials > Service account
  3. Give it a name (e.g. search-console-mcp) and click Create and Continue
  4. Skip the optional role and user access steps, click Done
  5. Click on the service account you just created
  6. Go to the Keys tab
  7. Click Add Key > Create new key > JSON
  8. 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
  1. Open the JSON key file and copy the client_email value (it looks like name@project.iam.gserviceaccount.com)
  2. Go to Google Search Console
  3. Select a property
  4. Go to Settings > Users and permissions > Add user
  5. Paste the service account email and set permission to Full
  6. 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 database
list_tablesLists available tables in the database

Environment Variables

GOOGLE_APPLICATION_CREDENTIALSrequiredPath to the Google Cloud service account JSON key file

Configuration

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"}}}}

Try it

Analyze the top 50 declining pages from my search console data.
Find queries ranking between 5 and 20 that have high impressions.
Show me a device breakdown for my site's URL patterns.
Run a custom SQL query to identify pages with low click-through rates.

Frequently Asked Questions

What are the key features of Better Google Search Console?

Downloads full Search Console dataset into a local SQLite database. Provides pre-built SQL query library for standard SEO analysis. Supports custom SQL queries for advanced data exploration. Automatic data retention to prune low-value rows. Full pagination support with no row limits.

What can I use Better Google Search Console for?

Identifying high-impression keywords that are underperforming in clicks. Tracking long-term traffic trends for specific URL patterns. Performing deep-dive SEO audits without hitting API row limits. Comparing device-specific performance metrics across the entire site.

How do I install Better Google Search Console?

Install Better Google Search Console by running: npx -y @houtini/better-search-console

What MCP clients work with Better Google Search Console?

Better Google Search Console works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Better Google Search Console docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare