Google Analytics MCP server

You can’t add Google’s open-source Google Analytics MCP server to ChatGPT directly. It runs on your computer, and ChatGPT connects to servers on the internet. To ask ChatGPT, or Claude on the web, about GA4, you need a hosted server you add by its URL. Stape’s hosted server reads GA4 only. Ours reads GA4 next to your Facebook Ads, Google Ads and Shopify data. That matters because when traffic moves, your next question is which campaign or ad spend caused it, and the answer is in your ad accounts and your store.

Check your ChatGPT plan before you start. OpenAI lists custom MCP servers for ChatGPT Business and Enterprise/Edu on the web, where an admin adds them, and Pro users get read and fetch only. Plus and Free aren’t on that list. If you’re on ChatGPT Plus, use Claude: it takes custom connectors on every plan, and the Free plan allows one.

Why ChatGPT can’t load Google’s open-source server directly

Google publishes its server on GitHub as Google Analytics MCP Server (Experimental), and the README calls it “a local MCP server”: a program that runs on your own computer. It’s free, and Google’s developer page says it “can’t edit your Google Analytics configuration or settings.” It’s also a developer tool: you need a Google Cloud project and credentials before you ask your first question.

ChatGPT can’t start a program on your computer. OpenAI’s help page asks “Can I connect to a local MCP server?” and answers “Not directly. ChatGPT connects to remote MCP servers.” Claude on the web has the same limit. It connects from Anthropic’s cloud, so the server has to be reachable on the public internet. Claude Desktop can run local servers from its config file, but Google’s README only has steps for Claude Code.

Three ways to ask an AI about GA4

Compared onSyncWithGoogle’s open-source serverStape
Where it runsHosted by SyncWithOn your own computerHosted by Stape
What you set upAdd the URL, sign in with Google, connect Google Analytics in SyncWithPython 3.10 or newer with pipx, a Google Cloud project with the Analytics Admin API and Data API turned on, Application Default Credentials with the analytics.readonly scopeNode.js v18 or newer (per Stape), add the URL as a custom connector, sign in with Google
Setup documented forClaude, ChatGPTGemini CLI, Claude CodeClaude Desktop
Data sourcesGA4 and 18 more, including Facebook Ads, Google Ads and ShopifyGA4GA4
Can it change GA4?No, it only readsNo, read-onlyNot stated
CostNo separate charge today. Each live query uses one refresh from your plan (free Hobby plan: 35 a month)FreeFree

SyncWith is a standard remote MCP server, so Gemini CLI, Cursor, VS Code with GitHub Copilot and Windsurf can connect to it too.

Facebook Ads and GA4 are the two sources people connect to SyncWith most. In Q3 2026, across our Google Sheets add-on and Looker Studio connectors, Facebook Ads made up 51.0% of attributed new connections, and Google Analytics (GA4) came second with 3,479 (15.0%).

GA4 traps that make chat answers wrong

These come from GA4 itself, so every MCP server runs into them.

  • Recent data still moves. Google says “Data processing can take 24-48 hours. During that time, data in your reports may change.” Ask about yesterday at 9 am and the answer can shift by tomorrow. Credit for key events can keep changing for up to 12 days.
  • Thresholding hides rows. GA4 can withhold data from an API call that includes demographics, and you can’t adjust the thresholds. A wider date range can help.
  • The quota is shared. Each property has daily and hourly Data API limits, and every tool that reads the property draws on them. A long chat session and your dashboards use the same pool.
  • You can’t see the query. The assistant turns your question into a report request with its own date range, dimensions and filters, then sums up the rows. A commenter in r/GoogleAnalytics called MCPs “black boxes” for exactly this reason.

Ask the assistant to state the date range, dimensions and filters before it gives you a number, and check one figure against your GA4 report the first time. For numbers you send a client, keep a scheduled GA4 report in Google Sheets. With SyncWith, the assistant can read that report back, so the chat works from the same rows your client sees.

Questions to ask about GA4, and what drove it

Name SyncWith in your prompt, so the assistant doesn’t answer from another connected app. Start by asking which GA4 fields it can read. Listing fields doesn’t use a refresh.

GA4 on its own

GA4 next to your ads and your store

More Facebook Ads questions are on our Facebook Ads MCP page.

Frequently asked questions

Is the Google Analytics MCP free?
Google’s open-source server is free, and so is Stape’s hosted one. We don’t charge for our MCP server today: each live query uses one refresh from your SyncWith plan, and the free Hobby plan includes 35 a month. Reading your saved reports doesn’t use any.
Can an MCP server change my GA4 settings?
Google’s can’t, and neither can ours. Some can: Zapier’s GA4 MCP includes actions such as Create Conversion Event and Send Measurement Events. Stape’s pages don’t say either way.
Does it work with Universal Analytics?
No. Google stopped processing standard Universal Analytics properties on July 1, 2023, and the data and API went away from July 1, 2024. The servers on this page read GA4 properties.

Add SyncWith to Claude or ChatGPT

Copy the SyncWith MCP server URL:

https://mcp.syncwith.com/mcp

In Claude on Pro or Max, open Customize, then Connectors, choose “+ Add”, then “Add custom connector”, and paste the URL. On Team and Enterprise, an Owner adds it for the organization first. In ChatGPT, your admin pastes it under Plugins with “Add custom MCP server”. Sign in with Google when asked, which creates a free SyncWith account if you don’t have one. Then ask the assistant to connect Google Analytics and finish on the link it sends you.

Full steps are on our Claude and ChatGPT pages, and setup for every other assistant is in the SyncWith MCP docs.