# Google Analytics MCP connector

The Google Analytics connector brings your accounts, properties, custom dimensions, user access and change history into Claude, ChatGPT, Cursor and any MCP client, so your team can review and tidy Google Analytics setup by asking in plain language.

Source: https://elaichi.ai/connectors/googleanalytics/

## Facts

| | |
| --- | --- |
| Application | Google Analytics |
| Category | Analytics |
| AI tools | 66 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 66 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Google Analytics is connected

- Summarize last week's traffic across our GA4 properties.
- Which accounts have new access bindings this month?
- List change history for the marketing property.

## Connect Google Analytics in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Google Analytics.
2. Optionally set Share with, then press Connect.
3. Approve it in Google Analytics. Google Analytics's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Google Analytics tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Google Analytics to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Google Analytics to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Google Analytics to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Google Analytics to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Google Analytics tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Google Analytics through Elaichi

### Set up a property for a new site

Marketing. When a campaign site or new brand goes live, create the Google Analytics property, add the custom dimensions the team needs to track, and confirm it landed in the right account, all from one conversation.

### Keep custom dimensions clean

Analytics. Ask for every custom dimension across a property, spot the ones nobody uses or that duplicate each other, then rename what should stay and archive what should not.

### See who has access to each account

IT. List the people bound to a Google Analytics account, pull an access report for a property, and find the ex-contractor or old agency login that should have been removed months ago.

### Find out who changed a setting

Compliance. When a property suddenly looks different, search the change history to see who edited what and when, and get a plain summary rather than reading through the admin screens.

### Take stock of every client account

Agency. Pull account summaries across all the Google Analytics accounts you manage, list the properties under each, and update names or settings that have drifted out of your naming standard.

### Review data sharing before launch

Web. Before a new property goes live, check its account's data sharing settings and confirm they match what legal signed off, then fix anything that does not.

## Frequently asked questions

### How do I connect Google Analytics to Claude?

Connect Google Analytics in Elaichi first: you sign in with your Google account and approve access, the same way you would sign in to Google Analytics itself. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi, and Google Analytics is ready to use.

### Does Google Analytics work with ChatGPT and Cursor as well as Claude?

Yes. Once Google Analytics is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Google Analytics once and every client you use picks it up.

### What can an AI agent actually do with my Google Analytics data?

With Google Analytics connected, an agent can list your accounts and properties, create or rename a property, add, update or archive custom dimensions, show who has access to an account, review data sharing settings, and search the change history to explain who changed what. Because Google Analytics has a large set of actions, short concrete asks like "archive the unused dimensions on the store property" work better than long paragraphs.

### Does connecting Google Analytics give the AI access to every account and property?

No. The agent sees exactly the Google Analytics accounts and properties the signed-in person can already see, with the same viewer, editor or administrator level Google has given them. Elaichi can narrow that further, for example to read-only or to a single team's properties, but it can never widen it beyond what the person holds in Google Analytics.

### Can my team share one Google Analytics connection?

Yes. One administrator connects Google Analytics in Elaichi and shares the connection with a team, and nobody else ever handles a Google login or token. Each teammate still signs in to Elaichi as themselves, so the audit log shows which person asked to change a property or archive a dimension, not just a shared account.

### Can I stop an agent from deleting or changing things in Google Analytics?

Yes. Restrictions in Elaichi apply per action, so you can allow listing accounts and properties while blocking property deletion, dimension archiving or any update. A blocked action is never shown to Claude, ChatGPT or any other client at all, so no prompt, however worded, can reach it in Google Analytics.

### What happens to a Google Analytics connection when someone leaves?

When you offboard a person in Elaichi their access to Google Analytics through Elaichi ends immediately, in every client they had set up. If the Google Analytics connection was shared with a team, it keeps working for everyone else. If you disconnect Google Analytics in Elaichi entirely, it disappears from Claude, ChatGPT, Cursor and every other client at once.

## All 66 Google Analytics tools

Every tool below is callable through https://api.elaichi.ai/mcp once Google Analytics is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Google Analytics accounts** (List). List all Google Analytics accounts accessible to the authenticated user. Returns a collection of account objects including their id, name, and related metadata.
- **Get single Google Analytics account by ID** (Get). Get a single Google Analytics account by id using the Admin API v1beta. Returns: name, displayName, createTime, updateTime, regionCode, deleted, gmpOrganization. Required: id.
- **List all Google Analytics account user** (List). List entity user links (user permission assignments) for a Google Analytics account. Returns: id, kind, selfLink, entity, userRef, and permissions (local and effective). Required: account_id.
- **List all Google Analytics accounts alpha** (List). List all Google Analytics accounts accessible to the caller via the Admin API (v1alpha). Returns: name, displayName, regionCode, createTime, updateTime, and deleted status for each account. Optionally include soft-deleted accounts by setting showDeleted to true.
- **List all Google Analytics account access bindings alpha** (List). List all access bindings on a Google Analytics account. Returns each binding's name, roles, and user email address. Required: account_id.
- **List all Google Analytics account summaries** (List). Get summaries of all accounts accessible by the caller in Google Analytics. Returns account summaries including account name, account resource name, display name, and child property summaries with property resource name, display name, property type, and parent resource name.
- **List all Google Analytics accounts beta** (List). Get all accounts accessible by the caller in Google Analytics. Returns accounts excluding soft-deleted ones by default. Response includes accounts array with account details.
- **Get single Google Analytics accounts beta by ID** (Get). Get information about a specific account in Google Analytics. Requires id. Returns account details including account name and account ID.
- **Update a Google Analytics accounts beta by ID** (Update). Update fields of a specific account in Google Analytics using id and updateMask. Returns the updated account resource with its name field.
- **Delete a Google Analytics accounts beta by ID** (Delete). Delete (soft-delete) an account by id in Google Analytics. Marks the account as trashed and returns an empty response. Note: soft-deleted accounts can only be restored via the Trash Can UI and will be permanently purged after expiration.
- **Google Analytics accounts beta data sharing settings** (Action). Get data sharing settings for an account in Google Analytics. Requires id. Returns fields including sharingWithGoogleSupportEnabled, sharingWithGoogleAssignedSalesEnabled, sharingWithGoogleProductsEnabled, and sharingWithOthersEnabled indicating data sharing preferences.
- **Google Analytics accounts beta provision** (Action). Create an account ticket in Google Analytics by providing account details and redirectUri. Returns accountTicketId for Terms of Service link.
- **Google Analytics accounts beta access report** (Action). Run a data access report for a Google Analytics account or property, returning records of user reads of reporting data. Returns: dimensionHeaders, metricHeaders, rows, rowCount, quota. Required: entity_name and entity_value.
- **Google Analytics accounts beta search change history** (Search). Search change history events across a Google Analytics account and its child properties, filtered by resource type, action, actor, and time range. Returns: changeHistoryEvents including id, changeTime, actorType, userActorEmail, and changes. Required: account_id.
- **List all Google Analytics properties** (List). List child Properties filtered by filter in Google Analytics. Returns properties accessible to the caller excluding soft-deleted ones by default. Response includes properties array with property details.
- **Get single Google Analytics property by ID** (Get). Get a single Google Analytics property by id. Returns the property resource with details such as property name and settings.
- **Create a Google Analytics property** (Create). Create a Google Analytics property with specified location and attributes. Returns the created property including its resource name, display name, and industry category.
- **Update a Google Analytics property by ID** (Update). Update a property by id in Google Analytics. Requires updateMask specifying fields to update. Returns the updated property resource.
- **Delete a Google Analytics property by ID** (Delete). Delete a Property by id in Google Analytics. Marks the Property as soft-deleted (trashed) and returns it. Note: Properties cannot be restored via API and will be permanently purged if not restored before expiration.
- **List all Google Analytics custom dimensions** (List). List CustomDimensions on a property in Google Analytics. Requires property_id. Returns customDimensions array with details of each custom dimension.
- **Get single Google Analytics custom dimension by ID** (Get). Get a single CustomDimension by id and property_id in Google Analytics. Returns the CustomDimension resource with its configuration details.
- **Create a Google Analytics custom dimension** (Create). Create a CustomDimension for the property specified by property_id in Google Analytics. Returns the created CustomDimension resource.
- **Update a Google Analytics custom dimension by ID** (Update). Update a CustomDimension on a property in Google Analytics. Requires property_id and id. Returns the updated CustomDimension resource including its resource name and configuration fields.
- **Google Analytics custom dimensions archive** (Archive). Archive a CustomDimension identified by id on a property identified by property_id in Google Analytics. The response is an empty JSON object.
- **List all Google Analytics custom metrics** (List). List CustomMetrics for a property in Google Analytics. Requires property_id. Returns an array of CustomMetric objects representing the custom metrics defined for the property.
- **Get single Google Analytics custom metric by ID** (Get). Get a single CustomMetric by property_id and id in Google Analytics. Returns the CustomMetric resource with its configuration details.
- **Create a Google Analytics custom metric** (Create). Create a CustomMetric for the property specified by property_id in Google Analytics. Returns the created CustomMetric resource including name, parameterName, displayName, description, measurementUnit, scope, and restrictedMetricType fields.
- **Update a Google Analytics custom metric by ID** (Update). Update a CustomMetric on a property in Google Analytics. Requires customMetric name as properties/{property}/customMetrics/{customMetric} and updateMask specifying fields to update. Returns the updated CustomMetric resource.
- **Google Analytics custom metrics archive** (Archive). Archive a CustomMetric by property_id and id in Google Analytics. Returns an empty response body on success.
- **List all Google Analytics data streams** (List). List DataStreams for a property using parent. Returns dataStreams array with DataStream objects and nextPageToken for pagination in Google Analytics.
- **Get single Google Analytics data stream by ID** (Get). Get a single DataStream by property_id and id in Google Analytics. Returns the DataStream resource with details such as name, type, and configuration.
- **Create a Google Analytics data stream** (Create). Create a DataStream for the property specified by property_id. Returns the created DataStream resource including name, type, displayName, createTime, updateTime, and stream-specific data.
- **Update a Google Analytics data stream by ID** (Update). Update a DataStream on a property in Google Analytics. Requires property_id and id. Returns the updated DataStream resource including name, type, displayName, createTime, updateTime, and stream-specific data such as webStreamData, androidAppStreamData, or iosAppStreamData.
- **Delete a Google Analytics data stream by ID** (Delete). Delete a DataStream by property_id and id in Google Analytics. Returns an empty response body on success.
- **List all Google Analytics measurement protocol secrets** (List). List MeasurementProtocolSecrets for the parent stream specified by property_id and data_stream in Google Analytics. Returns measurementProtocolSecrets array containing secret details.
- **Get single Google Analytics measurement protocol secret by ID** (Get). Get a single MeasurementProtocolSecret by property_id, data_stream, and id in Google Analytics. Returns the MeasurementProtocolSecret resource with its details.
- **Create a Google Analytics measurement protocol secret** (Create). Create a measurement protocol secret for the specified property_id and data_stream in Google Analytics. Returns the created secret's name, displayName, and secretValue.
- **Update a Google Analytics measurement protocol secret by ID** (Update). Update a measurement protocol secret identified by id under the specified property_id and data_stream in Google Analytics. Returns the updated secret resource.
- **Delete a Google Analytics measurement protocol secret by ID** (Delete). Delete a MeasurementProtocolSecret by property_id, data_stream, and id in Google Analytics. Returns an empty response on success.
- **List all Google Analytics firebase links** (List). List FirebaseLinks for a property in Google Analytics. Requires property_id. Returns firebaseLinks array with at most one FirebaseLink object.
- **Create a Google Analytics firebase link** (Create). Create a FirebaseLink for the property specified by parent in Google Analytics. Returns the created FirebaseLink including name, project resource name, and creation time.
- **Delete a Google Analytics firebase link by ID** (Delete). Delete a FirebaseLink for a property in Google Analytics. Requires property_id and id. Returns an empty JSON object on success.
- **List all Google Analytics google ads links** (List). List GoogleAdsLinks for a property using parent. Returns googleAdsLinks array with details of each link.
- **Create a Google Analytics google ads link** (Create). Create a GoogleAdsLink for the property specified by property_id. Returns the created GoogleAdsLink resource.
- **Update a Google Analytics google ads link by ID** (Update). Update a GoogleAdsLink on a property in Google Analytics using id and property_id. Returns the updated GoogleAdsLink including fields name, customerId, canManageClients, adsPersonalizationEnabled, createTime, updateTime, and creatorEmailAddress.
- **Delete a Google Analytics google ads link by ID** (Delete). Delete a GoogleAdsLink by property_id and id in Google Analytics. Returns an empty response on success.
- **List all Google Analytics key events** (List). Get a list of Key Events for the specified property in Google Analytics. Returns keyEvents array with details of each event. Requires property_id.
- **Get single Google Analytics key event by ID** (Get). Get a single Key Event by property_id and id in Google Analytics. Returns the Key Event resource with details about the event.
- **Create a Google Analytics key event** (Create). Create a Key Event in Google Analytics property specified by property_id. Returns the created Key Event resource including name, eventName, createTime, deletable, custom, countingMethod, and defaultValue fields.
- **Update a Google Analytics key event by ID** (Update). Update a Key Event by property_id and id in Google Analytics. Requires updateMask specifying fields to update. Returns the updated Key Event including name, eventName, createTime, deletable, custom, countingMethod, and defaultValue.
- **Delete a Google Analytics key event by ID** (Delete). Delete a Key Event by property_id and id in Google Analytics. Returns an empty response on success.
- **Google Analytics pivot reports batch run** (Run). Run multiple pivot reports for the same Google Analytics property using property_id. Returns pivotReports array with each report's data including dimensions, metrics, and pivots.
- **Google Analytics pivot reports run** (Run). Run a customized pivot report for a Google Analytics property using property_id. Returns pivot report data including dimensions, metrics, and pivots as specified in the request.
- **Google Analytics reports batch run** (Run). Run multiple reports for the same Google Analytics property using batchRunReports in Google Analytics. Requires property_id. Returns reports array with each report containing requested dimensions, metrics, and date ranges.
- **Google Analytics reports run** (Run). Run a customized report of Google Analytics event data for property using specified dimensions, metrics, and dateRanges. Returns rows with dimension values and metric values.
- **Google Analytics compatibility check** (Action). Check compatibility of dimensions and metrics for a Google Analytics property using property_id. Returns dimensionCompatibilities and metricCompatibilities indicating if each dimension and metric can be added to a Core report.
- **List all Google Analytics metadata** (List). Get metadata about the dimensions and metrics available for reporting on a Google Analytics property. Returns: name (resource name), dimensions (array of available dimensions with apiName, uiName, description, type, and customDefinition), and metrics (array of available metrics with apiName, uiName, description, type, and expression). Required: id (the GA4 property ID, e.g. 1234567).
- **Google Analytics realtime report run** (Run). Run a realtime report for the Google Analytics property specified by property_id. Returns dimensionHeaders describing dimension columns, metricHeaders describing metric columns, and rows of dimension value combinations and metric values.
- **List all Google Analytics audience exports** (List). List all audience exports for a property in Google Analytics. Requires property_id. Returns audienceExports array with details of each audience export.
- **Get single Google Analytics audience export by ID** (Get). Get configuration metadata about a specific audience export in Google Analytics. Requires property_id and id. Returns fields describing the audience export configuration.
- **Create a Google Analytics audience export** (Create). Create an audience export for the property specified by parent in Google Analytics. Returns the audience export's resource name and initiates an asynchronous request to form the export.
- **Google Analytics audience exports query** (Search). Get users in an audience export for property and id in Google Analytics. Returns audienceRows with user dimension values, audienceExport configuration, and total rowCount.
- **Google Analytics user deletion request upsert** (Upsert). Insert or update a user deletion request in Google Analytics. Returns the user deletion request resource including id (type and userId), propertyId, webPropertyId, and deletionRequestTime indicating when the request was received.
- **Get single Google Analytics data retention setting by ID** (Get). Get the data retention settings for a Google Analytics property. Returns: name, eventDataRetention, userDataRetention, resetUserDataOnNewActivity. Required: id.
- **Update a Google Analytics data retention setting by ID** (Update). Update the data retention settings for a Google Analytics property using a partial PATCH. Returns: name, eventDataRetention, userDataRetention, resetUserDataOnNewActivity. Required: id. Use updateMask to restrict which fields are modified.
- **List all Google Analytics account users** (List). List Google Analytics account user links (entityUserLinks) for a specific account. Returns a list of items representing user-to-account associations. Required: account_id.
