io.github.surendranb/google-analytics-mcp
平台与服务by surendranb
一个面向 Google Analytics 的 MCP server,当前描述仍为占位文本,需补充其具体功能说明。
把 Google Analytics 数据接入 MCP 工作流,能直接在 AI 助手里查询分析指标,少开后台、效率更高。
什么是 io.github.surendranb/google-analytics-mcp?
一个面向 Google Analytics 的 MCP server,当前描述仍为占位文本,需补充其具体功能说明。
README
Google Analytics MCP Server
mcp-name: io.github.surendranb/google-analytics-mcp
Connect Google Analytics 4 data to AI agents, agentic workflows, and MCP clients. Give agents analysis-ready access to website traffic, user behavior, and performance data with schema discovery, server-side aggregation, and safe defaults that reduce data wrangling.
Built for: AI agents, analyst copilots, and MCP runtimes across Claude, ChatGPT, Cursor, Windsurf, and custom hosts.
I also built a Google Search Console MCP that enables you to mix & match the data from both the sources
</p> ---Why Agents Use This Server
- Analysis-ready outputs with server-side aggregation, so agents spend more time answering questions and less time wrangling rows
- Live schema discovery for each GA4 property, including category-based exploration for dimensions and metrics
- Context-safe defaults that estimate large datasets before they blow up a conversation or workflow
- Portable MCP surface that works across agent runtimes, IDE copilots, and custom automation
Prerequisites
Check your Python setup:
# Check Python version (need 3.10+)
python --version
python3 --version
# Check pip
pip --version
pip3 --version
Required:
- Python 3.10 or higher
- Google Analytics 4 property with data
- Service account with Google Analytics Data API access and GA4 property access
Step 1: Setup Google Analytics Credentials
Create Service Account in Google Cloud Console
- Go to Google Cloud Console
- Create or select a project:
- New project: Click "New Project" → Enter project name → Create
- Existing project: Select from dropdown
- Enable the Analytics APIs:
- Go to "APIs & Services" → "Library"
- Search for "Google Analytics Data API" → Click "Enable"
- Create Service Account:
- Go to "APIs & Services" → "Credentials"
- Click "Create Credentials" → "Service Account"
- Enter name (e.g., "ga4-mcp-server")
- Click "Create and Continue"
- Skip role assignment → Click "Done"
- Download JSON Key:
- Click your service account
- Go to "Keys" tab → "Add Key" → "Create New Key"
- Select "JSON" → Click "Create"
- Save the JSON file - you'll need its path
Add Service Account to GA4
- Get service account email:
- Open the JSON file
- Find the
client_emailfield - Copy the email (format:
ga4-mcp-server@your-project.iam.gserviceaccount.com)
- Add to GA4 property:
- Go to Google Analytics
- Select your GA4 property
- Click "Admin" (gear icon at bottom left)
- Under "Property" → Click "Property access management"
- Click "+" → "Add users"
- Paste the service account email
- Select "Viewer" role
- Uncheck "Notify new users by email"
- Click "Add"
Find Your GA4 Property ID
- In Google Analytics, select your property
- Click "Admin" (gear icon)
- Under "Property" → Click "Property details"
- Copy the Property ID (numeric, e.g.,
123456789)- Note: This is different from the "Measurement ID" (starts with G-)
Test Your Setup (Optional)
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.
Step 2: Install the MCP Server
There are two supported ways to launch the server:
ga4-mcp-serverwhen the installed console script is available on yourPATHpython -m ga4_mcpwhen you want to use a specific interpreter or virtual environment
Method A: Install from PyPI (Recommended)
python3 -m pip install google-analytics-mcp
If your machine uses python instead of python3, run:
python -m pip install google-analytics-mcp
Option 1: Use the console script
Use this when ga4-mcp-server is available on your PATH:
{
"mcpServers": {
"ga4-analytics": {
"command": "ga4-mcp-server",
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json",
"GA4_PROPERTY_ID": "123456789"
}
}
}
}
Option 2: Use an explicit Python interpreter
Use this when you want to pin the exact Python runtime or when the console script is not on your PATH.
If python3 --version worked:
{
"mcpServers": {
"ga4-analytics": {
"command": "python3",
"args": ["-m", "ga4_mcp"],
"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"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json",
"GA4_PROPERTY_ID": "123456789"
}
}
}
}
Method B: Install from a local clone
git clone https://github.com/surendranb/google-analytics-mcp.git
cd google-analytics-mcp
python3 -m venv .venv
source .venv/bin/activate
python -m pip install .
If you plan to modify the package locally, use python -m pip install -e . instead.
MCP Configuration:
{
"mcpServers": {
"ga4-analytics": {
"command": "/full/path/to/google-analytics-mcp/.venv/bin/python",
"args": ["-m", "ga4_mcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json",
"GA4_PROPERTY_ID": "123456789"
}
}
}
}
Step 3: Update Configuration
Replace these placeholders in your MCP configuration:
/path/to/your/service-account-key.jsonwith the absolute path to your JSON key123456789with your numeric GA4 Property ID/full/path/to/google-analytics-mcp/.venv/bin/pythonwith your virtual environment's Python path (Method B only)
Usage
Once configured, ask your MCP client questions like:
Discovery & Exploration
- What GA4 dimension categories are available?
- Show me all ecommerce metrics
- What dimensions can I use for geographic analysis?
Traffic Analysis
- What's my website traffic for the past week?
- Show me user metrics by city for last month
- Compare bounce rates between different date ranges
Multi-Dimensional Analysis
- Show me revenue by country and device category for last 30 days
- Analyze sessions and conversions by campaign and source/medium
- Compare user engagement across different page paths and traffic sources
E-commerce Analysis
- What are my top-performing products by revenue?
- Show me conversion rates by traffic source and device type
- Analyze purchase behavior by user demographics
Quick Start Examples
Try these example queries to see the MCP's analytical capabilities:
1. Geographic Distribution
Show me a map of visitors by city for the last 30 days, with a breakdown of new vs returning users
This demonstrates:
- Geographic analysis
- User segmentation
- Time-based filtering
- Data visualization
2. User Behavior Analysis
Compare average session duration and pages per session by device category and browser over the last 90 days
This demonstrates:
- Multi-dimensional analysis
- Time series comparison
- User engagement metrics
- Technology segmentation
3. Traffic Source Performance
Show me conversion rates and revenue by traffic source and campaign, comparing last 30 days vs previous 30 days
This demonstrates:
- Marketing performance analysis
- Period-over-period comparison
- Conversion tracking
- Revenue attribution
4. Content Performance
What are my top 10 pages by engagement rate, and how has their performance changed over the last 3 months?
This demonstrates:
- Content analysis
- Trend analysis
- Engagement metrics
- Ranking and sorting
🚀 Performance Optimizations
This MCP server includes built-in optimizations to prevent context window crashes and ensure smooth operation:
Smart Data Volume Management
- Automatic row estimation - Checks data volume before fetching
- Interactive warnings - Alerts when queries would return >2,500 rows
- Optimization suggestions - Provides specific recommendations to reduce data volume
Server-Side Processing
- Intelligent aggregation - Automatically aggregates data when beneficial (e.g., totals across time periods)
- Smart sorting - Returns most relevant data first (recent dates, highest values)
- Efficient filtering - Leverages GA4's server-side filtering capabilities
User Control Parameters
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
Example: Handling Large Datasets
# 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
Available Tools
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).
Dimensions & Metrics
Access to 200+ GA4 dimensions and metrics organized by category:
Dimension Categories
- Time: date, hour, month, year, etc.
- Geography: country, city, region
- Technology: browser, device, operating system
- Traffic Source: campaign, source, medium, channel groups
- Content: page paths, titles, content groups
- E-commerce: item details, transaction info
- User Demographics: age, gender, language
- Google Ads: campaign, ad group, keyword data
- And 10+ more categories
Metric Categories
- User Metrics: totalUsers, newUsers, activeUsers
- Session Metrics: sessions, bounceRate, engagementRate
- E-commerce: totalRevenue, transactions, conversions
- Events: eventCount, conversions, event values
- Advertising: adRevenue, returnOnAdSpend
- And more specialized metrics
Troubleshooting
If ga4-mcp-server is not found:
- Use the explicit interpreter launch style instead:
python -m ga4_mcp - Reinstall with the same Python interpreter your MCP client will use
If you get No module named ga4_mcp:
/full/path/to/python -m pip install google-analytics-mcp
Install the package with the exact interpreter you reference in your MCP configuration.
Permission errors:
# Try user install instead of system-wide
python -m pip install --user google-analytics-mcp
If the server says the credentials file is missing:
- Verify the JSON file path is absolute, correct, and accessible
- Check service account permissions:
- Go to Google Cloud Console → IAM & Admin → IAM
- Find your service account → Check permissions
- Verify GA4 access:
- GA4 → Admin → Property access management
- Check for your service account email
If the server says GA4_PROPERTY_ID is invalid or queries return no data:
- Use the numeric Property ID (for example
123456789) - Do not use the Measurement ID (for example
G-XXXXXXXXXX) - Confirm the service account has at least Viewer access on that property
API quota/rate limit errors:
- GA4 has daily quotas and rate limits
- Try reducing the date range in your queries
- Wait a few minutes between large requests
Project Structure
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
└── ...
License
Apache License 2.0
常见问题
io.github.surendranb/google-analytics-mcp 是什么?
一个面向 Google Analytics 的 MCP server,当前描述仍为占位文本,需补充其具体功能说明。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP服务构建器
by alirezarezvani
从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。
✎ 帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。