Google Search Console MCP server for Claude Code, Codex and Cursor

For developers who want their coding agent to read real clicks, impressions, positions and indexing status, then fix the right file. Read-only, one command, no Google Cloud setup.

9 min read · Updated · By the Serpkin team

Search Console MCP + Serpkin
Setup example. Follow the full configuration and checks below.

In short

  • Run npx serpkin, connect Search Console in the browser, and Claude Code, Codex or Cursor can read your clicks, impressions, positions and index status.
  • Serpkin uses only the webmasters.readonly scope, so it can never change your Search Console property.
  • Agents get 28- and 90-day performance, period comparisons, top queries and pages, and mission markers; reading it costs no credits.
  • Google's limits still apply: about 2 to 3 days of lag, anonymized queries left out, and row caps on large sites.
  • A DIY open-source server gives raw API access but needs your own Google Cloud OAuth client and credentials.

A Google Search Console MCP server lets a coding agent like Claude Code, Codex or Cursor read your real clicks, impressions, average positions and indexing status, then act on them in your code. With Serpkin you connect Search Console once in the browser (read-only), run npx serpkin in your repository, and your agent gets tools such as serpkin_get_performance and serpkin_compare_performance. Reading that data costs no credits, and there is no Google Cloud project or OAuth client to set up yourself.

What a Search Console MCP server gives your agent

Search Console is the only source of what Google actually showed for your site: which queries, which pages, how often, and at what position. An MCP server exposes that to the agent as tools it can call in the middle of a task. The useful part is the combination: the agent can read that /pricing lost clicks, open the file that renders it, and propose a change in the same session.

Through Serpkin, an agent can read:

  • Performance over time. Daily clicks, impressions, CTR and position for the last 28 or 90 days, totals against the previous period, the top 25 queries and the top 25 landing pages with their change in clicks.
  • Period comparisons. Site totals for the last 28 days against the 28 before, side by side, with caveats when the periods aren't comparable.
  • Mission markers. The dates a fix shipped and was verified, drawn on the same series, so the agent can see what happened after a change. That is correlation, not proof.
  • Indexing status. Serpkin runs Google's URL Inspection on your pages. A page Google hasn't indexed becomes a scan finding and a mission, and site watch reports wins like "page indexed" or "first impressions".
  • What to work on next. Missions and the research plan use the same data: queries ranking around positions 8 to 15, queries with demand but no page that ranks, pages with high impressions and few clicks.

What to ask, and which tool answers

You don't have to name tools. Ask in plain words and the agent picks one. This table shows what each request maps to, so you know what data is behind the answer:

Example prompts for a Search Console MCP server through Serpkin (all free to run)
Ask your agentTool it callsWhat comes back
How did search do this month compared with last month?serpkin_compare_performanceClicks, impressions and average position for two 28-day windows, plus caveats
Which pages lost the most clicks in the last 28 days? Open the files that render them.serpkin_get_performanceTop 25 landing pages with clicks_delta; the agent then reads the files locally
Show the last 90 days of clicks and mark when we shipped SEO fixes.serpkin_get_performance (days: 90)Daily series with shipped and verified markers per mission
Which queries get impressions but almost no clicks?serpkin_get_performanceTop 25 queries with page, position, impressions, clicks, CTR and a sparkline
Did the canonical fix we shipped last month help?serpkin_get_resultsBaseline, then 14- and 28-day clicks, impressions, CTR, position or index checks
Is my site OK? Did any page drop out of the index?serpkin_site_watchOpen alerts with a fix line each, plus recent wins such as page indexed
What should we research next, and why?serpkin_research_planTopic map, competitors seen in your results and up to 5 ranked moves with their credit cost
Summarize my SEO week.serpkin_weekly_summaryClicks for the latest 7 synced days vs the 7 before, ranking moves, alerts and the next mission
What's the one SEO fix to do now?serpkin_next_missionA mission built from your queries and pages, with files, steps and checks

Two habits make the answers better. Ask for the page and the file together, because the route map tells the agent which source file renders each URL. And ask the agent to say which period the numbers cover: Search Console data lags, so "this month" ends a couple of days ago.

claude (illustrative)
> Which pages lost the most clicks in the last 28 days? Open the files that render them.
$ serpkin_get_performance { days: 28 }
Period ends 2 days ago (Search Console lag). Clicks 1,284 vs 1,410 the 28 days before.
/pricing: 212 clicks (-61), position 6.8 · /docs/setup: 98 clicks (-24), position 9.1
/pricing → app/pricing/page.tsx · /docs/setup → app/docs/setup/page.mdx
The /pricing title was shortened two weeks ago. Want me to compare it with the queries it ranks for?
Illustrative Claude Code session: queries, pages and numbers are examples, not real data from your site.

Set up Search Console MCP in Claude Code, Codex or Cursor

You need Node 22 or newer and a Search Console property for your site. From your repository root:

Terminal
npx serpkin
  1. Sign in and pick your agents

    The CLI opens serpkin.com/cli with a short code. Approve it, and the key is saved to ~/.config/serpkin/credentials.json, outside the repository. The CLI detects Claude Code, Codex and Cursor, or you name them: npx serpkin --agent claude,codex,cursor.

  2. Connect Search Console

    When the CLI asks about ownership, choose Google Search Console (or pass --ownership search-console). A browser tab opens. Pick the Google account that has access to the property and approve read-only access. You can also do this later in Settings → Connections. The first sync usually finishes within a few minutes, and a connected property also verifies that the site is yours.

  3. Let the CLI write the agent config

    The MCP server is a local stdio bridge that reads the saved key and forwards each request to https://serpkin.com/api/mcp. No config file holds a key. For Claude Code the CLI installs the plugin or writes .mcp.json. For Cursor it merges .cursor/mcp.json and adds a project rule. For Codex it appends a table to ~/.codex/config.toml.

  4. Restart the agent and ask

    Start the agent again so it loads the server, check that serpkin shows as connected (/mcp in Claude Code and Codex, Customize in the Cursor sidebar), then ask "How did search do this month compared with last month?"

The config the CLI writes

Claude Code (.mcp.json) and Cursor (.cursor/mcp.json) use an entry like this (Cursor's omits type):

.mcp.json
{
  "mcpServers": {
    "serpkin": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "--registry=https://registry.npmjs.org", "serpkin@0.2.10", "mcp"]
    }
  }
}

Codex uses TOML:

~/.codex/config.toml
[mcp_servers.serpkin]
command = "npx"
args = ["-y", "--registry=https://registry.npmjs.org", "serpkin@0.2.10", "mcp"]

The details per agent, including scopes, slash commands, hooks and setup without the CLI, are on the Claude Code, Codex and Cursor pages. What happens on the Google side, connection states and how to disconnect are in Connect Google Search Console.

What data you get, and its limits

Serpkin syncs a connected property about once a day and stores a snapshot. The agent reads that snapshot, so answers are fast and every tool call sees the same numbers. Here is what the snapshot covers:

Search Console data available to your agent through Serpkin
DataWindowRead with
Query and page rows28 days ending 2 days ago, plus the 28 days before; up to 25,000 query and page rows per periodserpkin_get_performance, missions, research plan
Daily site series90 days, same end dateserpkin_get_performance (days: 28 or 90)
Daily series per query90 days for the top 50 queries by impressionsSparklines in serpkin_get_performance
Period totalsThe two synced 28-day windows, all countries and devicesserpkin_compare_performance
URL inspectionUp to 150 pages a day on Builder and 200 on ProScan findings, missions, site watch, results

The limits come from two places: how Google reports the data, and what Serpkin keeps.

  • Lag. Google says collected data should normally be available in 2 to 3 days. Serpkin ends its windows two days ago so totals are close to complete, and the newest day can still move a little.
  • Hidden queries. Google leaves some queries out to protect searchers' privacy (anonymized queries), so query rows don't add up to the site total. Grouping by both query and page can also drop some rows.
  • Row caps. The Search Console interface shows at most 1,000 rows per table. The API returns up to 25,000 rows per request and exposes at most 50,000 rows per day per search type, sorted by clicks. A large site's long tail is incomplete wherever you read it.
  • History. Google keeps 16 months of Search Console data. Serpkin keeps a rolling 90 days, because missions and results need recent windows. For year-over-year questions, open Search Console itself.
  • Fixed windows. serpkin_compare_performance maps the periods you ask for to the nearest synced 28-day window. Ask for "last March vs this March" and it will say so in its caveats instead of inventing numbers.
  • Inspection quota. Google allows 2,000 URL inspections per day and 600 per minute per property. Serpkin stays well below that with its per-plan allowance.

Privacy: read-only by design

Google offers two scopes for the Search Console API: webmasters (read and write) and webmasters.readonly. Serpkin asks only for webmasters.readonly. It can read your properties, performance data and URL inspection results. It cannot add or remove users, submit or delete sitemaps, or change any setting on the property.

  • Tokens stay on the server. The Google token is encrypted at rest. Your agent never sees it, and no config file in your repository holds a Google or Serpkin key.
  • Agent keys can be read-only too. A key with "Review and plan" access (Settings → Agents) can read sites, missions and performance, changes nothing and spends no credits.
  • Search data is untrusted input. Query text and page URLs come from the public, so the Serpkin tools label them as data, not instructions. A query like "ignore previous instructions" stays a query.
  • Disconnecting deletes the data. It revokes the token at Google and deletes the stored tokens and synced Search Console data for that site. See Data and privacy for the rest.

Serpkin vs a DIY open-source Search Console MCP server

You can also run an open-source Search Console MCP server yourself. Most work the same way: you create a Google Cloud project, enable the Search Console API, create your own OAuth client (Google calls these a client ID and client secret) or service account credentials, then point the server at the credentials file. The server calls the API live on each request.

Two ways to give a coding agent Search Console data
DIY open-source serverSerpkin
Google setupYour own Cloud project, API enabled, OAuth client or service accountApprove read-only access in the browser
CredentialsA client secret or key file on your machine; keep it out of gitEncrypted on Serpkin's server; no key in any config
ScopeWhatever the server requests; check before you approvewebmasters.readonly only
DataLive API calls, any date range within Google's 16 monthsDaily snapshot: 28-day windows and 90 days of daily data
Raw queriesUsually any dimension, filter and date range the API supportsFixed reports shaped for agents (top queries, pages, deltas)
What the agent does with itYour prompts decideMissions with files and steps, preview checks, measured results
CostFree; you run and update it7-day free trial, then a paid plan; reading the data costs no credits

A DIY server is the better fit if you want raw API access, long date ranges or custom filters, and don't mind managing credentials. Serpkin is the better fit if you want the agent to turn Search Console rows into a specific change in a specific file, then check whether it helped. Before you approve any server, look at the scope on Google's consent screen: the read and write scope can change your property. For a broader look at SEO servers for agents, see SEO MCP servers compared.

What it costs

Every Search Console read is free: serpkin_get_performance, serpkin_compare_performance, serpkin_get_results, serpkin_site_watch, serpkin_weekly_summary and serpkin_research_plan spend no credits. Only research tools do, such as keyword research (2 credits) or a SERP check (1 credit per keyword), and the agent is told to state the cost and ask you first. Serpkin plans start with a 7-day free trial: Builder is $29 a month for 3 sites, Pro is $79 a month for 15 sites. Without a plan you get one site with a 6-page preview audit and no missions.

Not ready to connect anything? The free SEO checker checks one URL's server HTML, title, canonical, robots and structured data with no sign-up. Start the trial when you want your agent reading real Search Console data.

Questions

Is there an official Google Search Console MCP server?

Google documents the Search Console API, which MCP servers build on. To connect a coding agent you use a third-party server: an open-source one you run with your own Google Cloud credentials, or a hosted one like Serpkin that asks for read-only access in the browser.

Can a Search Console MCP server change my property?

Only if it asks for the read and write webmasters scope. Serpkin asks for webmasters.readonly only, so it can read performance and URL inspection data but cannot change users, sitemaps or settings.

Why don't the query rows add up to my total clicks?

Google leaves out anonymized queries to protect searchers' privacy, and row limits drop part of the long tail on large sites. Site totals include that traffic; query tables don't.

How fresh is the data my agent sees?

Google says Search Console data is normally available in 2 to 3 days. Serpkin syncs once a day and ends its 28-day windows two days ago, so the newest day can still change slightly.

Do I need a Google Cloud project to use Search Console with Claude Code?

Not with Serpkin: you approve read-only access in the browser and run npx serpkin. Most open-source Search Console MCP servers do need your own Google Cloud project, the API enabled and an OAuth client or service account.

Sources (6) · checked November 5, 2026

Your next customer is searching right now.

Be the page they find. Serpkin hands Claude Code, Codex or Cursor the fix worth making, checks it on your live site and shows what changed in Google.

npx serpkin