Account, Security & Privacy
Where your data goes
- GA4 data goes from your computer straight to Google. The GA4 MCP runs on your computer and calls Google's Analytics Admin and Data APIs directly. Reports and settings never pass through Tag Pilot; they go only to the AI client you run.
- Tag Pilot only brokers the token exchange. When you sign in, Google sends the one-time authorization code to Tag Pilot's API. The API holds it for at most 10 minutes, until your copy of the GA4 MCP collects it, and then deletes it. The code can't be used without a secret (the PKCE verifier) that never leaves your computer. To finish sign-in and keep you signed in, the GA4 MCP then sends the code and, later, your refresh token to the API, which adds Tag Pilot's Google OAuth client credentials, passes the request on to Google and returns Google's response to your computer.
- Tag Pilot stores no Google tokens and no GA4 data, and doesn't log codes or tokens. It records only which connected device (or API key) made a request, and when, to show Last used on your GA4 MCP page and to apply rate limits.
- Limited Use. Tag Pilot doesn't sell or share Google user data, use it for advertising, or use it to train AI models. See the privacy policy, section 5.
What your AI client does with the answers is up to that client and its terms.
Connected devices
Approving a computer on app.tagpilot.io/connect creates a Tag Pilot key for that computer only. The key is created once Google's sign-in finishes, and delivered straight to the computer: you never see or copy it. It can only exchange Google tokens for the GA4 MCP; it can't read your other Tag Pilot data.
Each one is listed under Connected devices on the GA4 MCP page, labelled with the AI client and computer name (for example GA4 MCP ยท Claude Desktop on MacBook-Pro), with when it was created and last used. Keys you create by hand for CI appear in the same list. The list covers your Search Console MCP devices too, marked by product.
Only approve a code that you just started on your own computer: approving lets that device read your GA4 data once you sign in with Google.
What is stored where
| What | Where |
|---|---|
| This computer's Tag Pilot key and Google tokens | On your computer: ~/.config/tagpilot/ga4-mcp/device.json |
Google tokens for a TAGPILOT_API_KEY (CI setups) |
On that machine: ~/.config/tagpilot/ga4-mcp/<id>.json, one file per key |
| Device label, created and last used time | Your Tag Pilot account |
| One-time sign-in code | Tag Pilot's API, for at most 10 minutes during sign-in, then deleted |
- The credential files are readable only by you (mode 600, in a mode 700 folder on macOS and Linux).
- Change the folder with
GA4_MCP_CONFIG_DIR. npx -y @tagpilot/ga4-mcp statusshows whether the computer is connected, the file path and the Google sign-in state.- Google access tokens last about an hour and are refreshed through Tag Pilot's API automatically.
Google permission
The only permission requested is https://www.googleapis.com/auth/analytics.readonly, shown by Google as See and download your Google Analytics data. It covers listing accounts and properties, reading settings and running reports. None of the tools can create, change or delete anything in GA4.
The GA4 MCP can only see what the signed-in Google account can see: properties where it has at least the Viewer role.
Revoking access
Any of these steps works on its own; do all three to remove everything.
-
Revoke the device under Connected devices on the GA4 MCP page. Token refreshes stop, so the GA4 MCP on that computer stops working within the hour (when the current access token expires). The next question then removes its saved connection and offers to connect again.
-
Delete the local credentials:
npx -y @tagpilot/ga4-mcp logoutThis removes this computer's connection and any saved API key sign-ins. With
TAGPILOT_API_KEY=tpk_โฆin front, it removes only that key's sign-in. You can also delete the files in~/.config/tagpilot/ga4-mcp/yourself. The device stays listed in Tag Pilot until you revoke it. -
Remove the access at Google on myaccount.google.com/permissions. This invalidates the Google refresh tokens for Tag Pilot everywhere.
Removing the server from your AI client stops it from running, but leaves the credential file and the device in place.
Several Google accounts
Each connected computer signs in to one Google account. To see properties from another Google account:
- Switch accounts: run
npx -y @tagpilot/ga4-mcp logout, then ask again, approve the new code and choose the other account at Google. Revoke the old device on the GA4 MCP page if you no longer need it. - Use both at once: create a key under Create a key manually and add a second server with its own name and the key, for example
ga4-client. A key keeps its own token file, so each server stays signed in to its own Google account:
claude mcp add ga4-client --env TAGPILOT_API_KEY=tpk_your_key -- npx -y @tagpilot/ga4-mcp
Often simpler: ask the client's admin to add your own Google account as a Viewer on their GA4 property.
Several computers
Connect each computer on its own: install the server and ask a question there. Each one gets its own device entry and keeps its credentials locally, so you can revoke one without affecting the others. The Last used column shows which devices are still in use.
Don't copy credential files between computers.
API keys for CI
A key you create by hand works like a connected device but lives in the MCP's environment (TAGPILOT_API_KEY), so treat it like a password:
- Don't commit MCP config files that contain it (such as
.cursor/mcp.jsonor.vscode/mcp.json) to a shared repository; use your CI's secret storage. - Lost or leaked? Revoke it under Connected devices and create a new one.
Open source
The package is open source under Apache 2.0, so you can check exactly what it does: source on GitHub, package on npm.