谷歌分析
STDIOGoogle Analytics 4数据查询MCP服务器
Google Analytics 4数据查询MCP服务器
mcp-name: io.github.surendranb/google-analytics-mcp
Connect Google Analytics 4 data to Claude, Cursor and other MCP clients. Query your website traffic, user behavior, and analytics data in natural language with access to 200+ GA4 dimensions and metrics.
Compatible with: Claude, Cursor and other MCP clients.
I also built a Google Search Console MCP that enables you to mix & match the data from both the sources
---Check your Python setup:
# Check Python version (need 3.10+) python --version python3 --version # Check pip pip --version pip3 --version
Required:
client_email field[email protected])123456789)
Verify your credentials:
pip install google-analytics-data
Create a test script (test_ga4.py):
import os from google.analytics.data_v1beta import BetaAnalyticsDataClient # Set credentials path os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path/to/your/service-account-key.json" # Test connection client = BetaAnalyticsDataClient() print("✅ GA4 credentials working!")
Run the test:
python test_ga4.py
If you see "✅ GA4 credentials working!" you're ready to proceed.
Choose one method:
pip install google-analytics-mcp
MCP Configuration:
First, check your Python command:
python3 --version python --version
Then use the appropriate configuration:
If python3 --version worked:
{ "mcpServers": { "ga4-analytics": { "command": "python3", "args": ["-m", "ga4_mcp_server"], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json", "GA4_PROPERTY_ID": "123456789" } } } }
If python --version worked:
{ "mcpServers": { "ga4-analytics": { "command": "python", "args": ["-m", "ga4_mcp_server"], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json", "GA4_PROPERTY_ID": "123456789" } } } }
git clone https://github.com/surendranb/google-analytics-mcp.git cd google-analytics-mcp python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
MCP Configuration:
{ "mcpServers": { "ga4-analytics": { "command": "/full/path/to/ga4-mcp-server/venv/bin/python", "args": ["/full/path/to/ga4-mcp-server/ga4_mcp_server.py"], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json", "GA4_PROPERTY_ID": "123456789" } } } }
Replace these placeholders in your MCP configuration:
/path/to/your/service-account-key.json with your JSON file path123456789 with your GA4 Property ID/full/path/to/ga4-mcp-server/ with your download path (Method B only)Once configured, ask your MCP client questions like:
Try these example queries to see the MCP's analytical capabilities:
Show me a map of visitors by city for the last 30 days, with a breakdown of new vs returning users
This demonstrates:
Compare average session duration and pages per session by device category and browser over the last 90 days
This demonstrates:
Show me conversion rates and revenue by traffic source and campaign, comparing last 30 days vs previous 30 days
This demonstrates:
What are my top 10 pages by engagement rate, and how has their performance changed over the last 3 months?
This demonstrates:
This MCP server includes built-in optimizations to prevent context window crashes and ensure smooth operation:
limit - Set maximum number of rows to returnproceed_with_large_dataset=True - Override warnings for large datasetsenable_aggregation=False - Disable automatic aggregationestimate_only=True - Get row count estimates without fetching data# This query would normally return 2,605 rows and crash context window get_ga4_data( dimensions=["date", "pagePath", "country"], date_range_start="90daysAgo" ) # Returns: {"warning": True, "estimated_rows": 2605, "suggestions": [...]} # Use monthly aggregation instead get_ga4_data( dimensions=["month", "pagePath", "country"], date_range_start="90daysAgo" ) # Returns: Clean monthly data with manageable row count
The server provides a suite of tools for data reporting and schema discovery.
search_schema - Searches for a keyword across all available dimensions and metrics. This is the most efficient way to discover fields for a query.get_ga4_data - Retrieve GA4 data with built-in intelligence for better and safer results (includes data volume protection, smart aggregation, and intelligent sorting).list_dimension_categories - Lists all available dimension categories.list_metric_categories - Lists all available metric categories.get_dimensions_by_category - Gets all dimensions for a specific category.get_metrics_by_category - Gets all metrics for a specific category.get_property_schema - Returns the complete schema for the property (Warning: this can be a very large object).Access to 200+ GA4 dimensions and metrics organized by category:
If you get "No module named ga4_mcp_server" (Method A):
pip3 install --user google-analytics-mcp
If you get "executable file not found":
python vs python3)pip3 instead of pip if neededPermission errors:
# Try user install instead of system-wide pip install --user google-analytics-mcp
Credentials not working:
123456789) ✅G-XXXXXXXXXX) ❌API quota/rate limit errors:
google-analytics-mcp/
├── ga4_mcp/ # Main package directory
│ ├── server.py # Core server logic
│ ├── coordinator.py # MCP instance
│ └── tools/ # Tool definitions (reporting, metadata)
├── pyproject.toml # Package configuration for PyPI
├── requirements.txt # Dependencies for local dev
├── README.md # This file
└── ...
MIT License