Connect GSC via MCP

How can I connect Google Search Console data via an MCP?

Point any MCP-capable assistant at https://mcp.gscwizard.com/mcp, authenticate with a sign-in or an API key, and it reads your real Search Console data. Analyses run server-side, so the assistant gets finished answers instead of raw rows.

Works with ChatGPT, Claude, Grok, Gemini CLI, Cursor, VS Code, Windsurf and any other MCP client.

The short answer

Three things get you connected, whatever the client:

  1. Connect Search Console once inside GSC Wizard. Authorisation lives there, not in the assistant.
  2. Add the endpoint https://mcp.gscwizard.com/mcp to your client.
  3. Authenticate: sign in with OAuth 2.1 where the client supports it, or send Authorization: Bearer gscw_live_...

The server speaks streamable HTTP, so most clients need no local install, no Node process and no stdio bridge.

Streamable HTTP endpoint

https://mcp.gscwizard.com/mcp

OAuth 2.1 sign-in

For ChatGPT, the Claude Connectors UI, Grok connectors and Gemini CLI. The client registers itself and walks you through a Google sign-in. Nothing to copy or store.

API key header

For config-file clients such as Claude Code, Cursor, VS Code and Windsurf: send Authorization: Bearer gscw_live_...

Video

Watch the setup end to end

Setup and a first question, end to end: the connector added, the sign-in done, and a finished analysis coming back instead of raw rows.

Setup

Three steps to connect

The same three steps apply to every client. Only the config syntax changes.

  1. 1

    Connect your properties

    Sign in at tool.gscwizard.com with Google and pick the Search Console properties you want available. This is the only place authorisation is granted.

  2. 2

    Create an API key, or plan to sign in

    Create a key under Account → API keys for config-file clients. Clients that support remote OAuth (ChatGPT, the Claude Connectors UI, Grok connectors, Gemini CLI) need only the URL.

  3. 3

    Add the server to your client

    Point the client at https://mcp.gscwizard.com/mcp. Key names differ between clients, but the URL and the bearer header never change.

Copy and paste

Configuration for every client

Replace gscw_live_... with the key you created under Account → API keys.

Claude Code

One command, API key header.

claude mcp add --transport http gsc-wizard \
  https://mcp.gscwizard.com/mcp \
  --header "Authorization: Bearer gscw_live_..."

Claude web and desktop

Settings → Connectors → Add custom connector. Paste the URL and leave the OAuth client ID and secret blank: Claude registers itself and signs you in.

https://mcp.gscwizard.com/mcp

ChatGPT

Settings → Apps, developer mode, add an app with Authentication set to OAuth. Needs a paid plan. There is no API-key field: ChatGPT cannot send static bearer tokens.

https://mcp.gscwizard.com/mcp

Grok

Go to grok.com/connectors, click New Connector and pick Custom. Paste the URL and complete the sign-in: Grok registers itself over OAuth 2.1, so there is no client ID or secret to fill in. Grok then discovers the tools and offers them in your conversations. Full walkthrough: connect GSC to Grok.

https://mcp.gscwizard.com/mcp

Gemini CLI

Add to ~/.gemini/settings.json. Gemini CLI uses httpUrl for streamable HTTP.

{
  "mcpServers": {
    "gsc-wizard": {
      "httpUrl": "https://mcp.gscwizard.com/mcp",
      "headers": { "Authorization": "Bearer gscw_live_..." }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in a project.

{
  "mcpServers": {
    "gsc-wizard": {
      "url": "https://mcp.gscwizard.com/mcp",
      "headers": { "Authorization": "Bearer gscw_live_..." }
    }
  }
}

VS Code (Copilot agent mode)

Add to .vscode/mcp.json. VS Code uses servers, not mcpServers, and can prompt for the key so it stays out of source control.

{
  "inputs": [
    { "id": "gscw-key", "type": "promptString", "description": "GSC Wizard MCP key", "password": true }
  ],
  "servers": {
    "gsc-wizard": {
      "type": "http",
      "url": "https://mcp.gscwizard.com/mcp",
      "headers": { "Authorization": "Bearer ${input:gscw-key}" }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json. Windsurf uses serverUrl for remote servers.

{
  "mcpServers": {
    "gsc-wizard": {
      "serverUrl": "https://mcp.gscwizard.com/mcp",
      "headers": { "Authorization": "Bearer gscw_live_..." }
    }
  }
}

Any other MCP client

Point it at the streamable HTTP endpoint and send your key as a bearer token. Key names vary (transport versus type, url versus serverUrl); the URL and header do not.

URL:    https://mcp.gscwizard.com/mcp
Header: Authorization: Bearer gscw_live_...

Step-by-step guides: ChatGPT, Claude, Gemini, Grok.

Authentication and scopes

Every key carries a scope chosen when you create it, so you decide how much the assistant may do.

Read only

Query data and run reports. A read key physically cannot invoke a write tool, so the connection is read-only by construction. This is the right choice for a shared agent or a client-facing deployment.

Read and write

Everything a read key can do, plus mutations: add sites, submit URLs to IndexNow, manage topic clusters, content groups and annotations. Every mutation is audit-logged against your account.

Keys are shown once at creation, are revocable at any time, and only ever reach the Search Console properties already connected to your GSC Wizard account.

Why this MCP is different

The analysis runs before the model sees it

Most SEO MCP servers hand the raw rows back to the assistant. Language models are not built for arithmetic over large tables: it is slow, it burns tokens, and the mistakes are hard to catch.

Far fewer tokens

One tool call returns a compact, finished answer instead of tens of thousands of rows the model has to read, hold in context and pay for.

Much faster

Aggregations run on the warehouse in milliseconds: a full SEO report over a 4 GB dataset in about 4.4 seconds, rather than paging the GSC API one batch at a time.

Not prone to errors

The maths is deterministic. Numbers come from real queries, so there is no risk of the model miscounting or inventing totals.

Bigger datasets in scope

Because the heavy lifting never enters the context window, the server can analyse months of data and millions of rows that would never fit in a prompt.

What the assistant can call

The full catalogue, with example arguments for every tool, lives at mcp.gscwizard.com.

Search analytics Top queries & pages Ranking changes Keyword cannibalization Content decay detection Striking distance / page poaching CTR curve analysis Opportunity scoring Bulk URL inspection Indexing tracker IndexNow submissions Content groups & topic clusters Country & device breakdowns Sitemap performance Automated SEO reports Branded vs non-branded split Position distribution Migration compare Shareable client reports Google Analytics 4 Core Web Vitals (CrUX) Forecasting & anomaly detection Bing Webmaster Tools

If it does not connect

The tools never appear

Most clients read MCP settings only at startup. Quit and reopen the app fully (not just the window) after editing a config file.

401 unauthorised

Check the header is exactly Authorization: Bearer gscw_live_..., that the key has not been revoked, and that the account still has an active subscription or trial.

Claude Desktop calls the config invalid

Its config file launches local stdio servers only, so a "type": "http" entry is rejected. Use the Connectors UI, or bridge through mcp-remote: see the Claude guide.

A write tool returns 403

The key is read-only. Create a read-and-write key if the assistant genuinely needs to mutate data, or keep the read key and make the change in the app.

A property is missing

The MCP only sees properties already connected in GSC Wizard. Add it in the app first, then ask the assistant to list sites again. Domain properties carry the sc-domain: prefix.

Same data, other assistants

Connecting a different AI tool?

One Search Console connection, every assistant. Pick your client and follow the step-by-step guide.

See also the Google Search Console MCP overview, the GA4 MCP, and the ChatGPT app.

Frequently asked questions

What is an MCP server?

An MCP (Model Context Protocol) server is a standard connector that lets an AI assistant read live data and call tools. A Google Search Console MCP exposes your Search Console properties to the assistant, so it can pull real clicks, impressions, position and CTR figures instead of inventing them.

Which clients can connect?

Any client that supports remote MCP servers: ChatGPT, Claude and Claude Code, Grok, Gemini CLI, Cursor, VS Code in Copilot agent mode, Windsurf, Gemini Enterprise, and custom agents built on the OpenAI, Anthropic or Google SDKs. The endpoint speaks streamable HTTP.

API key or OAuth: which do I need?

Config-file clients (Claude Code, Cursor, VS Code, Windsurf, Gemini CLI) send an API key as an Authorization: Bearer header. Clients with a connector UI (ChatGPT, the Claude web and desktop app, Grok) use OAuth 2.1 and dynamic client registration, so you just sign in and leave the client ID and secret blank.

Can I make the connection read-only?

Yes. Every API key carries a scope chosen at creation. A read-only key cannot invoke a write tool at all, so the connection is read-only by construction. Read-and-write keys add mutations such as adding sites, submitting IndexNow URLs and managing clusters, and every one of those is audit-logged.

How fresh is the data?

Warehouse-backed reads lag roughly two days behind Search Console itself, and every response reports the date it is settled through. Requests the warehouse cannot serve fall back to the live GSC API automatically, and each response says which source it came from.

Why not just let the model read the raw GSC API?

Most Search Console MCPs page through the GSC API one slow batch at a time and dump raw rows into the model's context, which is slow, hits sampling and row limits, and leaves room to hallucinate. GSC Wizard computes each analysis in server-side SQL and returns the finished result: a full SEO report over a 4 GB dataset in about 4.4 seconds.

A tool is not showing up in my client. What now?

Restart the client fully after editing its config, since most clients only read MCP settings at startup. Then check the key is still valid and unrevoked, that you used the /mcp path on the URL, and that the tool you want is not a write tool being blocked by a read-only key.

Is there a plain HTTP option?

Yes. The same server exposes a REST surface at https://mcp.gscwizard.com/v1 using the same keys, scopes, rate limits and audit log, with an OpenAPI 3.1 document at /v1/openapi.json generated from the same schemas the server validates against.

Connect your Search Console data to any AI client

One endpoint, two ways to authenticate, and finished answers instead of raw rows. Set it up in about two minutes.