Mcp Google Analytics — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Google Analytics (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.stucchi/google-analytics -->
MCP server for Google Analytics 4 — create properties, configure data streams, manage conversions, and run reports via the Admin & Data APIs.
GA_CREDENTIALS env var in your MCP config~/.google-analytics-4-mcp/credentials.jsonDone. No browser flow, no consent screen, no tokens to refresh.
claude mcp add google-analytics -e GA_CREDENTIALS='{"type":"service_account",...}' -- uvx google-analytics-4-mcpAdd to claude_desktop_config.json:
{
"mcpServers": {
"google-analytics": {
"command": "uvx",
"args": ["google-analytics-4-mcp"],
"env": {
"GA_CREDENTIALS": "{\"type\":\"service_account\",\"project_id\":\"...\", ...}"
}
}
}
}git clone https://github.com/stucchi/mcp-google-analytics.git
cd mcp-google-analytics
uv run google-analytics-4-mcpcheck_auth_status to verify the service account is configuredlist_accounts to see your GA4 accountscreate_property → create_web_data_stream → get_tracking_snippetrun_report with dimensions and metrics| Tool | Description |
|---|---|
check_auth_status | Verify service account is configured and valid |
| 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 |
| 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 |
| 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.
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)MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.