Google Analytics MCP server

You can’t add Google’s open-source Google Analytics MCP server to ChatGPT directly. It runs on your computer unless you host it yourself, 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.

What can Google’s Google Analytics MCP server do?

It reads your GA4 reports and property settings through Google’s Admin API and Data API. Google publishes it free on GitHub as the Google Analytics MCP Server, and Google’s developer page lists its read-only tools:

  • Find accounts and properties: your GA4 accounts, a property’s settings, its links to Google Ads accounts and its annotations.
  • Run reports: standard, realtime, funnel and conversions reports.
  • Check your setup: the custom dimensions and custom metrics on a property.

The developer page says it’s “available for read requests only.” The GitHub README also lists three write tools, for annotations, custom dimensions and key events, which stay off unless you start the server with --allow-write and give it the analytics.edit scope.

Can you add Google’s GA4 MCP server to ChatGPT?

Not directly. 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.

Google’s server runs on your computer by default. Its README shows how to host it yourself as a web service, for example on Google Cloud Run with your own Google OAuth client. That’s a developer project. You need a Google Cloud project and credentials before you ask your first question either way.

How do you connect Google Analytics to Claude?

There are two ways, depending on where you use Claude.

  • Claude Desktop or Claude Code, with Google’s server. Set up Python 3.10 or newer with pipx, a Google Cloud project with the Analytics Admin API and Data API turned on, and credentials with the analytics.readonly scope. Then add the server to Claude Desktop’s claude_desktop_config.json, or run Google’s claude mcp add command for Claude Code. Google’s developer page has both.
  • Claude on the web or Claude Desktop, with a hosted server. Add the server’s URL as a custom connector and sign in with Google. Stape’s server reads GA4. SyncWith’s reads GA4, Facebook Ads, Google Ads, Shopify and more, so you can ask what drove a change in traffic. Our Claude setup page has the steps.

Three ways to ask an AI about GA4

Compared onSyncWithGoogle’s open-source serverStape
Where it runsHosted by SyncWithOn your own computer, or a server you hostHosted 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, ChatGPTAntigravity, Claude Desktop, Claude Code, CursorClaude Desktop
Data sourcesGA4 and 15 more, including Facebook Ads, Google Ads and ShopifyGA4GA4
Can it change GA4?No, it only readsNot by default. Its write tools are off unless you turn them onNot 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

Does Google have an official Google Analytics MCP server?
Yes. Google publishes it as open source on GitHub (googleanalytics/google-analytics-mcp) and on PyPI as analytics-mcp. It’s free. You run it on your own computer, or host it yourself, with a Google Cloud project and your own credentials.
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?
Ours can’t. Google’s can’t unless you turn on its --allow-write flag and give it the analytics.edit scope, and then it can create annotations, custom dimensions and key events. 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.