MCP server

Google Search Console MCP

A hosted MCP server that gives your agent the index status of every URL on your site, and the dated record of how it got that way. There is no Google Cloud project to create and no service account key to download. You connect Search Console once with Google sign-in.

It reads index state rather than search performance. If you are here for queries, clicks and impressions, this is the wrong server and the panel below says which ones do that.

Connect it

claude mcp add --transport http seomely https://seomely.com/api/mcp \
  --header "Authorization: Bearer sk_live_..."

Or the same thing as config, for Cursor and anything else that takes a file:

{
  "mcpServers": {
    "seomely": {
      "type": "http",
      "url": "https://seomely.com/api/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}
Get a key
Why a hosted one

The setup is the whole problem.

Every self-hosted Search Console MCP server asks you to do the same four things before it will start.

What the open-source ones need

  • A Google Cloud project
  • The Search Console API enabled on it
  • A service account created
  • Its JSON key downloaded, stored somewhere your agent can read, and kept out of version control
  • That service account added as a user on every property you want to read

It works. It is also the reason most people who try one stop before the end, and the reason a key ends up in a repository somewhere.

What this needs

Sign in with Google, pick the property, copy an API key. The Google credential stays here and is read-only: one scope, and it cannot change anything in your Search Console account.

The key you paste into your agent config is ours, not Google's. If it leaks, revoke it in the dashboard and nothing about your Google account is affected. That is not true of a service account JSON.

The difference that matters

Search Console can only tell your agent about today.

A server that queries the Search Console API live returns the current answer, because that is the only answer the API has. Nothing there remembers last week.

What that costs you

Ask a live server "when did this page fall out of the index" and it cannot answer. Ask "what changed after the deploy on Tuesday" and it cannot answer that either. It can only tell you the state now, which is the one thing you can already see by opening Search Console yourself.

History is the part that cannot be added later. You cannot go back and observe last month.

What this returns instead

We inspect every URL on the property every morning and keep the result. So get_index_history returns the states a page has moved through with the date each one was observed, and get_regressions returns pages that were indexed and are not any more.

Which means an agent can answer a question about the past without you having been watching at the time.

Tools

Thirteen, and each one does what it says.

ToolWhat it returns
check_index_statusWhether Google has this URL indexed right now, and what it says about it.
get_index_historyEvery state this URL has been in, with the date each change was observed.
get_regressionsPages that were indexed and are not any more.
get_unindexed_urlsEverything on the property Google has not indexed, ranked by whether it is worth your attention.
diagnose_urlWhy one page is not indexed: noindex, robots.txt, canonical, redirect or status.
investigate_indexingThe regressions, the factor they share, and what to do first. Start here.
get_project_statsCoverage across a property: how many indexed, how many not, how that moved.
list_projectsThe properties this key can see.
sync_sitemapRe-read the sitemap and pick up new URLs.
submit_urlsSend URLs to IndexNow, which reaches Bing, Yandex, Seznam, Naver and Yep.
setup_indexnowGenerate and verify the IndexNow key file.
get_indexnow_statusWhat has been submitted and what came back.
set_autopilotLet the daily run submit newly discovered URLs on its own.
Before you connect it

Two things it does not do.

No search performance data

No queries, no clicks, no impressions, no average position. Most of the Search Console MCP servers you will find wrap the Search Analytics API and give you exactly that. If that is what you want, use one of those. They are good at it.

This one reads URL Inspection and answers a different question: is the page in the index, and if not, why not.

Bearer tokens, not OAuth, for now

The endpoint authenticates with an API key in the Authorization header. Claude Code and Cursor handle that, which is what the snippets above are.

Clients that will only attach a server through an OAuth flow, which currently includes custom connectors in the Claude web and desktop apps, cannot connect to it yet. We would rather say so here than have you find out after signing up.