Provides AI agents with comprehensive access to Google Analytics 4 data
Google Analytics MCP Server
A FastMCP server that provides AI agents with comprehensive access to Google Analytics 4 data via the Model Context Protocol (MCP).
Features
- 18 MCP tools covering all aspects of Google Analytics 4
- HTTP streaming transport for scalable deployments
- Service account authentication for automated server-to-server access
- Dynamic property discovery across all accessible GA4 accounts
- Historical reports with flexible dimensions, metrics, and date ranges
- Realtime data for current user activity
- Custom dimensions/metrics support
Installation
# Clone the repository
git clone <repo-url>
cd google-analytics-mcp
# Install dependencies with uv
uv sync
Configuration
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
GOOGLE_APPLICATION_CREDENTIALS |
Yes* | - | Path to service account JSON file |
MCP_HOST |
No | 0.0.0.0 |
Host to bind the server |
MCP_PORT |
No | 8000 |
Port for the server |
*Can also use Application Default Credentials (ADC) via gcloud auth application-default login
Google Cloud Setup
Step 1: Create a Google Cloud Project (if you don't have one)
- Go to the Google Cloud Console
- Click the project dropdown at the top of the page
- Click New Project
- Enter a project name (e.g., "GA MCP Server")
- Click Create
- Wait for the project to be created, then select it from the project dropdown
Step 2: Enable Required APIs
In the Google Cloud Console, go to APIs & Services > Library
Search for and enable these APIs:
- Google Analytics Data API - for running reports
- Google Analytics Admin API - for listing properties
For each API:
- Click on the API name
- Click Enable
Step 3: Create a Service Account
- In the Google Cloud Console, go to IAM & Admin > Service Accounts
- Click + Create Service Account at the top
- Fill in the details:
- Service account name:
ga-mcp-server - Service account ID: (auto-filled based on name)
- Description: "Service account for Google Analytics MCP Server"
- Service account name:
- Click Create and Continue
- Skip the optional "Grant this service account access" step (click Continue)
- Skip the optional "Grant users access" step (click Done)
Step 4: Create and Download the Credentials JSON Key
- In the Service Accounts list, find your newly created service account
- Click on the service account email to open its details
- Go to the Keys tab
- Click Add Key > Create new key
- Select JSON as the key type
- Click Create
- The JSON key file will automatically download to your computer
- Important: Move this file to a secure location and note the path
# Example: move to your project directory mv ~/Downloads/your-project-xxxxx.json ./credentials.json
Security Warning: This JSON file contains sensitive credentials. Never commit it to version control or share it publicly.
Step 5: Grant the Service Account Access to Google Analytics
The service account needs explicit access to your GA4 properties. Without this step, list_properties will return an empty list.
Find your service account email:
- Go to Google Cloud Console > IAM & Admin > Service Accounts
- Find your service account and copy the email address
- It looks like:
ga-mcp-server@your-project.iam.gserviceaccount.com
- It looks like:
Grant access in Google Analytics:
Go to Google Analytics
Click the Admin gear icon (bottom left corner)
Choose where to grant access:
Option A: Account Level (recommended) - Grants access to ALL properties under the account:
- In the Account column, click Account Access Management
Option B: Property Level - Grants access to a specific property only:
- First select the property from the Property dropdown
- In the Property column, click Property Access Management
Click the + button in the top right
Select Add users
In the "Email addresses" field, paste your service account email
Under "Direct roles and data restrictions":
- Select Viewer (sufficient for reading all analytics data)
- Leave data restrictions unchecked for full access
Click Add
Verify access was granted:
- The service account email should now appear in the users list
- You can test by calling
list_properties- it should return your properties
Note: It may take a few minutes for permissions to propagate. If
list_propertiesstill returns empty, wait 2-3 minutes and try again.
Step 6: Set the Environment Variable
# Option 1: Set for current terminal session
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
# Option
Tools (3)
list_propertiesLists all Google Analytics 4 properties accessible to the service account.run_reportRuns a historical report for a specific GA4 property with custom dimensions, metrics, and date ranges.get_realtime_dataRetrieves real-time user activity data for a specific GA4 property.Environment Variables
GOOGLE_APPLICATION_CREDENTIALSrequiredPath to service account JSON fileMCP_HOSTHost to bind the serverMCP_PORTPort for the serverConfiguration
{"mcpServers": {"google-analytics": {"command": "uv", "args": ["run", "google-analytics-mcp"], "env": {"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json"}}}}