pipx install search-console-mcp fails. There is no
package by that name on PyPI — the JSON API and the simple index
both return 404, checked twice on two different days.
The repository is real. It is MIT licensed, eleven stars, last pushed
2026-05-28, and its own pyproject.toml declares
name = "search-console-mcp", version 0.1.0.
So it was built to be published and never was. The README repeats the
same pipx install search-console-mcp line, which means the
broken instruction is not a typo in somebody's walkthrough. It is wrong
at the source.
There are two packages with near-miss names on PyPI —
searchconsole-mcp and mcp-search-console
— and neither is this tool. Installing one of those expecting the
other is the kind of afternoon nobody enjoys.
The route that works is from source. Clone the repo, then
pipx install ./search-console-mcp (or
pip install -e .). It produces the same console script the
config block expects, and nothing else in the setup changes.
The other half checks out completely
The analytics server is fine: analytics-mcp, version
0.7.0, published 2026-07-29, Apache-2.0, and it is Google's own
repository rather than a third-party wrapper. That one installs exactly
as written.
Why you need both, which is the part worth knowing
GA4 does not show you organic search keywords. It stores them as (not provided). The actual queries live in Search Console, a separate product with a separate API. Without a Search Console connection your assistant cannot see keywords at all — not because it is bad at looking, because the data is not there.
That single fact is load-bearing for the whole setup, and it is the reason two servers exist instead of one.
The setting that quietly zeroes your numbers
Most GA4 properties have no conversion events configured. Every page, every source and every campaign then reports a conversion rate of zero — technically accurate and completely useless. Mark form submissions, primary CTA clicks, thank-you pageviews and checkout clicks as key events before you run a single analytics prompt, or you are asking careful questions of a column of zeroes.
This costs ten minutes in the GA4 interface and needs no tooling whatsoever.
Empty is the correct reading at this stage. The pipeline is real; the traffic isn't, yet.
What we did not check
Two things, stated plainly because we have not earned an opinion on either.
We did not inspect the /seo-snapshot skill bundled in
that repository. And we have not seen this return real data yet
— Search Console hides queries under roughly ten monthly
impressions, and our own site is not launched. Expect empty charts for
weeks. Empty is not the same as broken, and confusing the two is
how people rip out a working install.
One caution we did apply. The walkthrough uses application default
credentials with an analytics.edit scope. That writes a
credential authenticating as you, indefinitely, into a well-known
file, and edit access can create and modify properties and events. We
run read-only on analytics by default. If a key event genuinely needs
creating, that is one deliberate action, not a standing grant.
What to do
Check PyPI before you paste any install line — it takes fifteen seconds and it would have saved this one. Install the analytics server from PyPI, the Search Console one from source, and set your conversion events before you read another report, whether or not you ever connect either.