MCP server: One MCP server.

Google Analytics 4

@stucchiMCP server · External

Manage GA4 properties, data streams, conversions, and run reports via Admin & Data APIs.

Web analyticsv0.1.1Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIgoogle-analytics-4-mcpv0.1.1

Run

uvx google-analytics-4-mcp

MCP client config

{
  "mcpServers": {
    "google-analytics-4": {
      "command": "uvx",
      "args": [
        "google-analytics-4-mcp"
      ]
    }
  }
}
README3 min read

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)

  1. Google Cloud Console → IAM & Admin → Service Accounts

    • Create a service account (any name)
    • Click it → Keys → Add Key → JSON → Download
  2. Enable APIs in your GCP project:

  3. GA4 Admin → Property Access Management → Add the service account email (from the JSON) as Editor

  4. Configure credentials (pick one):

    • Option A (recommended): Copy the JSON content into the GA_CREDENTIALS env var in your MCP config
    • Option B: Save the file to ~/.google-analytics-4-mcp/credentials.json

Done. No browser flow, no consent screen, no tokens to refresh.

Installation

Claude Code

bash
claude mcp add google-analytics -e GA_CREDENTIALS='{"type":"service_account",...}' -- uvx google-analytics-4-mcp

Claude Desktop

Add to claude_desktop_config.json:

json
{
  "mcpServers": {
    "google-analytics": {
      "command": "uvx",
      "args": ["google-analytics-4-mcp"],
      "env": {
        "GA_CREDENTIALS": "{\"type\":\"service_account\",\"project_id\":\"...\", ...}"
      }
    }
  }
}

From source

bash
git clone https://github.com/stucchi/mcp-google-analytics.git
cd mcp-google-analytics
uv run google-analytics-4-mcp

Getting Started

  1. Check auth: Call check_auth_status to verify the service account is configured
  2. List accounts: Call list_accounts to see your GA4 accounts
  3. Setup a property: Use create_property → create_web_data_stream → get_tracking_snippet
  4. Query data: Use run_report with dimensions and metrics

Tools (23)

Auth

ToolDescription
check_auth_statusVerify service account is configured and valid

Admin API

ToolDescription
list_accountsList accessible GA4 accounts
list_propertiesList properties for an account
create_propertyCreate a GA4 property
get_propertyGet property details
delete_propertySoft-delete a property
list_data_streamsList data streams
create_web_data_streamCreate web stream → get Measurement ID
delete_data_streamDelete a data stream
get_tracking_snippetGenerate gtag.js HTML snippet
list_key_eventsList conversion events
create_key_eventMark event as conversion
delete_key_eventRemove conversion
list_custom_dimensionsList custom dimensions
create_custom_dimensionCreate custom dimension
list_custom_metricsList custom metrics
create_custom_metricCreate custom metric
list_google_ads_linksList Google Ads links
create_google_ads_linkLink Google Ads account
get_measurement_protocol_secretGet/create Measurement Protocol secret

Data API

ToolDescription
run_reportRun report with dimensions, metrics, dates, filters
run_realtime_reportReal-time active users and events
get_metadataList available dimensions and metrics

Environment Variables

VariableDefaultDescription
GA_CREDENTIALS—Service Account JSON key content (copy-paste the entire JSON)
GA_CREDENTIALS_PATH~/.google-analytics-4-mcp/credentials.jsonAlternative: 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

Similar modules

Browse Web analytics