Google Analytics 4
MCP server for Google Analytics Data API and Measurement Protocol to read reports and send events.
Ask AI about Google Analytics 4
Powered by Claude Β· Grounded in docs
I know everything about Google Analytics 4. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Google Analytics 4 MCP Server
MCP server for Google Analytics 4 β create properties, configure data streams, manage conversions, and run reports via the Admin & Data APIs.
Setup (one-time, ~3 minutes)
-
Google Cloud Console β IAM & Admin β Service Accounts
- Create a service account (any name)
- Click it β Keys β Add Key β JSON β Download
-
Enable APIs in your GCP project:
-
GA4 Admin β Property Access Management β Add the service account email (from the JSON) as Editor
-
Configure credentials (pick one):
- Option A (recommended): Copy the JSON content into the
GA_CREDENTIALSenv var in your MCP config - Option B: Save the file to
~/.google-analytics-4-mcp/credentials.json
- Option A (recommended): Copy the JSON content into the
Done. No browser flow, no consent screen, no tokens to refresh.
Installation
Claude Code
claude mcp add google-analytics -e GA_CREDENTIALS='{"type":"service_account",...}' -- uvx google-analytics-4-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"google-analytics": {
"command": "uvx",
"args": ["google-analytics-4-mcp"],
"env": {
"GA_CREDENTIALS": "{\"type\":\"service_account\",\"project_id\":\"...\", ...}"
}
}
}
}
From source
git clone https://github.com/stucchi/mcp-google-analytics.git
cd mcp-google-analytics
uv run google-analytics-4-mcp
Getting Started
- Check auth: Call
check_auth_statusto verify the service account is configured - List accounts: Call
list_accountsto see your GA4 accounts - Setup a property: Use
create_propertyβcreate_web_data_streamβget_tracking_snippet - Query data: Use
run_reportwith dimensions and metrics
Tools (23)
Auth
| Tool | Description |
|---|---|
check_auth_status | Verify service account is configured and valid |
Admin API
| Tool | Description |
|---|---|
list_accounts | List accessible GA4 accounts |
list_properties | List properties for an account |
create_property | Create a GA4 property |
get_property | Get property details |
delete_property | Soft-delete a property |
list_data_streams | List data streams |
create_web_data_stream | Create web stream β get Measurement ID |
delete_data_stream | Delete a data stream |
get_tracking_snippet | Generate gtag.js HTML snippet |
list_key_events | List conversion events |
create_key_event | Mark event as conversion |
delete_key_event | Remove conversion |
list_custom_dimensions | List custom dimensions |
create_custom_dimension | Create custom dimension |
list_custom_metrics | List custom metrics |
create_custom_metric | Create custom metric |
list_google_ads_links | List Google Ads links |
create_google_ads_link | Link Google Ads account |
get_measurement_protocol_secret | Get/create Measurement Protocol secret |
Data API
| Tool | Description |
|---|---|
run_report | Run report with dimensions, metrics, dates, filters |
run_realtime_report | Real-time active users and events |
get_metadata | List available dimensions and metrics |
Environment Variables
| Variable | Default | Description |
|---|---|---|
GA_CREDENTIALS | β | Service Account JSON key content (copy-paste the entire JSON) |
GA_CREDENTIALS_PATH | ~/.google-analytics-4-mcp/credentials.json | Alternative: path to the JSON key file |
GA_CREDENTIALS takes priority over GA_CREDENTIALS_PATH.
Example Usage
You: "Set up Google Analytics for my website https://mcpadvisor.stucchi.consulting"
Assistant calls: list_accounts β create_property β create_web_data_stream β get_tracking_snippet
Result: Property created with Measurement ID G-XXXXXXXXXX and ready-to-paste HTML snippet.
You: "Show me the top 10 countries by sessions in the last 7 days"
Assistant calls: run_report(property_id="...", dimensions=["country"], metrics=["sessions"], start_date="7daysAgo", limit=10)
License
MIT
