Quick answer: A GA4 MCP server gives Claude direct, permissioned access to your Google Analytics 4 data, so you can ask questions in plain English instead of navigating GA4's interface. With MCP Express, setup takes about 5 minutes and covers the reporting actions agencies actually use daily — traffic sources, top pages, conversions, and period comparisons — without exposing your full GA4 account or requiring a self-hosted server.
End of the month. Five client reports due by Friday. Each one means opening GA4, navigating to Acquisition, setting the date range, switching to Traffic Sources, screenshotting it. New tab, Conversions, same date range again. Export Top Pages. Open a Google Doc, paste everything in, write the narrative. Repeat, five times.
That's 45 minutes per client. Across five clients, that's most of a day, every month, on work your clients never see itemized and your team never bills for. And every time a client asks an ad hoc question between reports, someone stops what they're doing and runs through the same loop again.
There's a better way to handle this.
What Is a GA4 MCP Server?
A GA4 MCP server connects Google Analytics 4 to an AI model like Claude through the Model Context Protocol, translating a plain-English question — "how did organic traffic do this month?" — into the right GA4 API calls, and returning a structured answer instead of a dashboard export.
There are two broad flavors of this. Google publishes an official open-source GA4 MCP server you self-host (Python, a local install, your own Cloud Console setup, full API access).
Hosted options like MCP Express skip the self-hosting: you connect a service account once, choose which reporting actions to expose, and your whole team can query the same properties without anyone running a local server.
What You're Actually Building
By the end of this, Claude has direct, controlled access to your GA4 properties through an MCP server configured in MCP Express. Anyone on your team asks questions in plain English; Claude pulls the data and returns a structured answer — no navigating, no exporting, no GA4 access required on their end.
Examples of what becomes possible:
- "Summarize this month's traffic for [property] and compare it to last month. Where are the biggest changes?"
- "Which pages had the highest bounce rates this week, and what's the likely cause based on the session data?"
- "Break down conversions by channel for the last 30 days — which sources are actually driving results?"
The monthly reporting loop gets cut to a prompt. So does the "let me check and get back to you" reply.
Prerequisites
Before you begin, ensure you have:
Estimated time: 5 minutes from signup to first query.
Step 1: Add the Google Analytics Integration
If you're going through onboarding, you'll be prompted to add your first tool — select Google Analytics. Already onboarded? Find it in your dashboard's tools list and click it.
This integration authenticates entirely through the service account JSON — no separate OAuth login for GA4 itself. You'll be asked for two things:

- Service Account JSON — the full contents of the key file from your Google Cloud Console.
- GA4 Property ID — found in GA4 under Admin → Property Settings.
After entering both, click Next.
Credentials are stored using AWS KMS encryption — the same standard used in banking infrastructure. You rotate credentials without redeploying anything, which matters when you're managing multiple client properties over time.
This is the step a self-hosted MCP server usually skips — by default, it exposes every available action. Here, you choose exactly which GA4 actions Claude can call. This keeps the context window lean and ensures Claude only surfaces what's relevant to your reporting workflow.

For a typical agency reporting workflow, a sensible starting set:
get_active_users — sessions, new users, and active user counts grouped by dateget_traffic_sources — break down where traffic is coming from by channel, source, and mediumget_top_pages — most-viewed pages with session duration and bounce rateget_conversions — conversion counts and rates by event name for any date rangecompare_date_ranges — period-over-period comparisons, the core of most monthly reports
Leave get_realtime_users, get_user_demographics, get_landing_pages, and get_top_events disabled unless your workflow explicitly needs them.
Give your tool a name and description so Claude knows when to call it. Since you'll likely set this up per client, be specific:
"Google Analytics for [Client Name]. Use when asked about traffic, conversions, top pages, or monthly performance summaries."

Step 3: Connect Claude to Your MCP Server
You have two options, depending on how your team uses Claude:
The easy way — OAuth (recommended)
In Claude, go to Customize → Connectors and click Add new Connector. Give it a name and set the URL to:
https://api.mcp-express.com/gateway/mcp
Claude will redirect you to MCP Express to complete the OAuth flow. Log in, grant access, and select the MCP server you just configured. No config files, no CLI, no Node.js required — anyone on your team can connect in the same way.
The manual way — MCP Express CLI
If you prefer the manual config route, we've covered it step by step in our connection guide. It takes under 5 minutes.
Step 4: Start Querying
Open Claude and ask in plain English. Claude uses your configured Google Analytics tools to pull data and return a structured answer.

Start with the report you'd normally build manually: "Give me a traffic summary for [property] this month — top sources, top pages, and how conversions compare to last month."
If the connection is working, Claude will call the relevant GA4 actions and return a coherent summary, not a raw data dump. From there, your team can ask follow-up questions in the same conversation without leaving Claude.
What Changes When GA4 Talks to Claude
The monthly report: Five clients, five properties, reports due Friday — normally 45 minutes each, close to four hours total. Ask Claude for a monthly summary instead, and it runs get_traffic_sources, get_top_pages, get_conversions, and compare_date_ranges together. You review, adjust tone, send. Four hours becomes under thirty minutes across all five.
The "why did traffic drop?" message: Old workflow — GA4, Acquisition Overview, date range, Traffic Sources, screenshot, reply: ten minutes minimum, mid-task. New workflow — ask Claude to compare this week to last and break it down by channel. One response: sessions down 18%, organic flat, paid down 40% (campaign likely paused). You reply in two minutes with an actual diagnosis.
Pre-call prep: Fifteen minutes before a check-in, nobody's prepped. Ask Claude for a summary — top pages, traffic sources, conversions, month-over-month. Your account manager walks in knowing the story.
On-the-spot campaign questions: A client asks how their email campaign is doing mid-conversation. Instead of "I'll get back to you," ask Claude directly — get_traffic_sources returns the channel breakdown before the call ends.
Who Gets the Most Out of This Setup
- Small digital agencies — standardise how your team pulls GA4 data across all client properties, without everyone needing direct GA4 access
- SEO and performance teams — pull traffic, landing page, and conversion data across multiple properties in a single workflow
- Account managers — answer client questions on the spot without waiting for someone to run a report
- Freelancers managing multiple clients — same workflow, same benefit, without the overhead of coordinating a team
Frequently Asked Questions
- Is this the same as Google's official GA4 MCP server?
No. Google's is open-source and self-hosted — you run it yourself and get full API access. MCP Express is a hosted alternative with a curated set of reporting actions, built so your whole team can connect without anyone running a server.
- Is my GA4 data shared with anyone else?
No — access is scoped to your service account and the specific property you connect, with credentials stored via AWS KMS encryption.
- Can I connect multiple client properties?
Yes — configure a separate MCP server per property, each with its own service account and tool description.
Your Google Analytics Is Now Connected
You've connected Claude to GA4 in under 5 minutes. Every client analytics question your team would normally spend 30–45 minutes navigating to answer can now be handled in a single prompt.
Scale this across your client roster: Set up a separate MCP server per client property, or add more tools — project management, CRM, databases — to the same server. Each one takes under 5 minutes to configure. Create Your Next MCP Server →
Further Resources:
- Documentation — Every supported integration, configuration option, and setup detail in one place.
- Contact Us — Got a question before signing up, or want to talk through your setup? Drop us an email.
- Open a Support Ticket — Already inside the app and something's not working? Open a ticket directly from your dashboard.