The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Google E Commerce (GA4, Search Console, Merchant Center) listing page.
One read-only MCP server for the Google services an online shop lives on: GA4, Search Console, Merchant Center, Tag Manager, Indexing API and PageSpeed.
Ask your AI assistant "how much organic traffic did we get this month?", "which products are disapproved in Merchant Center?" or "is GA4 loaded twice on my site?" and it answers from your own Google accounts.
Built by MoonEyes, a small French shop selling 3D-printed tabletop terrain, because no existing MCP server covered GA4, Search Console and Merchant Center together.

| Page | What is in it |
|---|---|
| Architecture | Components, a tool call step by step, design choices, sequence diagrams |
| Tool reference | Every tool: parameters, output, example questions |
| Google Cloud setup | OAuth client, APIs to enable, where to find each id |
| Security model | Scopes, token storage, threats, how to revoke |
| Troubleshooting | Every error we have met and its fix |
| Example prompts | Questions that work well, by use case |
| Client configs | Claude Desktop (one or two shops), Claude Code |
| Tool | Service | What it answers |
|---|---|---|
server_status | All | Which services are configured, does the token work |
ga4_report | GA4 | Any report: channels, landing pages, purchases, revenue, by period |
ga4_realtime | GA4 | Last 30 minutes, e.g. to check a page view is counted once |
ga4_properties | GA4 | Every GA4 account and property you can read, to find a property id |
gsc_performance | Search Console | Clicks, impressions, CTR, position by query, page, country, device, date |
gsc_inspect_url | Search Console | Is this URL indexed, which canonical did Google pick, last crawl |
gsc_sitemaps | Search Console | Declared sitemaps, last download, errors |
merchant_data_sources | Merchant Center | Feeds, labels, countries, fetch URLs |
merchant_product_issues | Merchant Center | Products with disapprovals or warnings, all pages |
merchant_report_query | Merchant Center | Any Merchant Query Language report |
gtm_inventory | Tag Manager | Tags, triggers, variables, live version |
indexing_status | Indexing API | What Google knows about a submitted URL |
pagespeed | PageSpeed Insights | Lighthouse performance and SEO scores, Core Web Vitals |
Create your Google OAuth client first (step 1 below), then run the installer. It installs uv if needed, asks your ids, opens the Google consent screen and adds the server to Claude Desktop (your previous config is backed up). It installs the exact package version it was released with (google-ecommerce-mcp==0.3.1).
Recommended: download, read, run. The URLs name an exact commit, not a branch, so the script cannot change under you.
Windows (PowerShell):
macOS / Linux:
SHA-256 of the pinned scripts:
install.ps1: eb1adb179991fa9574d91948ffd639a4253094f1601a7ced2ea3ffd1225c4110install.sh: e69dfb3e9e86aea30848c7012259325e811da159fa00b4cdea291730b9cb6c57One line, if you accept to run it without reading (same pinned commit, so the SHA-256 above still applies):
Then quit Claude Desktop completely and reopen it. To pass options, save the script first, for example .\install.ps1 --ga4 123456789 --gsc sc-domain:example.com --client-secret client_secret.json. Run google-ecommerce-mcp install --help for every option. Maintainers: each release bumps the version in both scripts, then refreshes the commit in these URLs and the checksums (tests/test_installer_scripts.py fails until they match).
If you used the quick install, you only need step 1. The steps below are the manual path.
Full walkthrough with every click explained: docs/SETUP-GOOGLE-CLOUD.md. Short version:
Latest development version: uvx --from git+https://github.com/MoonEyes/google-ecommerce-mcp google-ecommerce-mcp.
Your browser opens the Google consent screen. The token is then stored in your OS keyring. Check everything with google-ecommerce-mcp check.
Claude Desktop (claude_desktop_config.json):
Claude Code:
Every variable is optional: a tool for a service you did not configure simply answers not_configured.
| Variable | Example | Used by |
|---|---|---|
GA4_PROPERTY_ID | 123456789 (numeric property id) | GA4 tools |
GSC_SITE_URL | sc-domain:example.com or https://www.example.com/ | Search Console tools |
MERCHANT_ACCOUNT_ID | 1234567890 | Merchant tools |
GTM_CONTAINER_ID | GTM-XXXXXXX | gtm_inventory |
PAGESPEED_API_KEY | API key | pagespeed |
GOOGLE_TOKEN_FILE | ~/.config/google-ecommerce-mcp/token.json | store the token in a file instead of the keyring |

Details: docs/SECURITY.md.
readOnlyHint is only a hint.setup requests read-only scopes only. Google has no read-only scope for Merchant Center (content) or the Indexing API (indexing); they are requested only with --with-merchant / --with-indexing, and server_status flags them when present.fetched_at and freshness; report tools return the date_range queried, resolved in the data's timezone, with data_complete.property_id. Run several instances for several shops.ga4_report.See CONTRIBUTING.md. Security reports: SECURITY.md.
Tests run offline with a fake HTTP session; no Google account needed.
MIT, see LICENSE.