ga4_create_ audienceCreate an audience.
Pull sessions, revenue and channel reports over any date range, see who is on the site right now, and audit audiences, key events and custom dimensions without opening the GA4 UI.
PopMCPGoogle Analytics 4
Every reporting and admin call available on a connected property, plus the traffic, revenue and engagement alerts PopMCP can watch.
ga4_create_ audienceCreate an audience.
ga4_create_ custom_ dimensionCreate a custom dimension.
ga4_create_ key_ eventMark an event name as a key event (conversion).
ga4_get_ data_ retention_ settingsRetrieve the property's event data retention settings.
ga4_get_ data_ streamRetrieve a single data stream.
ga4_get_ propertyRetrieve the connected GA4 property (displayName, timeZone, currencyCode, …).
ga4_list_ account_ summariesShow the connected property's account summary (owning account + the connected property).
ga4_list_ audiencesList audiences configured on the property.
ga4_list_ custom_ dimensionsList custom dimensions defined on the property.
ga4_list_ custom_ metricsList custom metrics defined on the property.
ga4_list_ data_ streamsList the property's data streams (web/app).
ga4_list_ google_ ads_ linksList Google Ads links for the property.
ga4_list_ key_ eventsList key events (conversions) for the property.
ga4_update_ propertyUpdate GA4 property fields.
ga4_batch_ run_ pivot_ reportsRun multiple GA4 pivot reports in one batch.
ga4_batch_ run_ reportsRun up to 5 GA4 reports in a single batch.
ga4_check_ compatibilityCheck which dimensions/metrics are compatible with a report request.
ga4_get_ metadataList all dimensions and metrics available for the property (including custom).
ga4_run_ pivot_ reportRun a GA4 pivot report.
ga4_run_ realtime_ reportRun a GA4 realtime report (last 30 minutes of activity).
ga4_run_ reportRun a GA4 report: dimensions × metrics over date ranges with optional filters and ordering.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Google Analytics 4 side.
Enable the Analytics Admin API and Analytics Data API in Google Cloud, add your OAuth Client ID and OAuth Client Secret, then authorize with the Google account that has property access. Pick the properties to connect.
1234567890-abc.apps.googleusercontent.com••••••••••••3f7aRead-only keeps it to reporting and admin lookups. Full access adds the four writes, so leave approval on if you do not want property fields, key events, custom dimensions or audiences changed unreviewed.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Google Analytics 4 credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show sessions and revenue by channel for last month against the month before
ga4_get_propertyok
Then just ask for the work
“Show sessions and revenue by channel for last month against the month before”
“Mark purchase, begin_checkout and signup as key events if they aren't already”
“Create a custom dimension for plan_tier and check it shows up in metadata”
“Which data streams and Google Ads links feed this property, and what did each send last week?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Google Analytics 4 behind an AI client.
Yes. You connect with your own Google OAuth client, so the connect form asks for an OAuth Client ID and an OAuth Client Secret from that project. Enable both the Google Analytics Admin API and the Analytics Data API under APIs & Services -> Library first, then authorize; those two APIs are what the reporting and admin calls run against. You never paste an API key: the last step is a normal Google consent screen.
You authorize with the Google account that already has access to your GA4 properties, and after the consent screen you choose which of those properties to connect and which workspace each one belongs in. The agent works against the properties you picked, not everything the Google account can see. Reporting and admin calls run inside that scope.
Both, and you decide which. Most of the catalog is read-only reporting and admin lookups, and the writes are narrow: creating an audience, creating a custom dimension, marking an event name as a key event, and updating property fields such as display name, time zone or currency. Set the connection to read-only if you only want analysis, or keep full access with approval required so those four kinds of change wait for a human.
ga4_run_realtime_report covers the last 30 minutes of activity, which is what you want when someone asks whether the site is up or a campaign has landed. For historical work, ga4_batch_run_reports sends up to 5 reports in a single batch, and there is a pivot equivalent for breakdowns that need two dimensions crossed. Batching matters when an agent would otherwise fire one call per date range.
The GA4 Data API rejects dimension and metric combinations that cannot be queried together, and this is the usual reason a first attempt fails. ga4_check_compatibility tests a request before it runs, and ga4_get_metadata lists every dimension and metric available on the property, including the custom ones you have defined. Pointing the agent at those two first turns a guessing loop into one clean query.
The triggers are threshold-based and tuned to the questions analytics owners get paged about: sessions dropping below the same period last week, traffic spiking above its normal range, conversions or key events falling under their recent average, purchase revenue missing target, one channel such as organic or paid search dropping sharply, engagement rate falling, and live visitors crossing a level you set. Each fires against the property you connected, so your AI client can investigate with a report before you have even opened GA4.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 21 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 21-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 21 here. A trigger is something PopMCP watches for you: 7 Google Analytics 4 events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Google Analytics 4.
Launch a hosted MCP endpoint for Google Analytics 4, keep tool access under control, and start testing real workflow prompts right away.