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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 10 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
get_dimensions_by_category
-
get_ga4_data
-
get_metrics_by_category
-
get_property_schema
-
get_troubleshooting_guide
-
list_dimension_categories
-
list_metric_categories
-
search_schema
-
search_skills
-
setup_ga4_access
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 4b8c3c6 · analyzer v33 · 1h ago
skills & prompt files 17
- agent-rules surendranb-google-analytics-mcp-4b8c3c6/AGENTS.md
- skill surendranb-google-analytics-mcp-4b8c3c6/gemini-extension/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/ai-referral-analysis/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/attribution-scope/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/bot-traffic-detection/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/channel-acquisition/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/common-metric-names/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/compatible-combinations/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/content-performance/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/custom-dimensions/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/date-ranges/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/ecommerce-analysis/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/filter-structures/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/ga4-limitations/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/geo-device-segmentation/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/traffic-diagnosis/SKILL.md
- skill surendranb-google-analytics-mcp-4b8c3c6/skills/ua-to-ga4/SKILL.md
danger signals1
- suspicious endpoint analytics.google.com (telemetry) surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/setup_flow.py :21
_GA4_ADMIN_URL = "https://analytics.google.com/analytics/web/#/admin"
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 22
filesystem 5
- fs surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/coordinator.py :113
with open(path, encoding="utf-8") as f: - fs surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/resources.py :82
from pathlib import Path as _Path - fs surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/telemetry.py :17
from pathlib import Path - fs (weak) surendranb-google-analytics-mcp-4b8c3c6/scripts/check_package_consistency.py :6
from pathlib import Path - fs (weak) surendranb-google-analytics-mcp-4b8c3c6/scripts/generate_downloads_banner.py :67
with open(template_path, "r", encoding="utf-8") as f:
shell / exec 1
- shell surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/telemetry.py :15
import subprocess
network 3
- net surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/telemetry.py :16
import urllib.request - net surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/skills.py :8
import urllib.request - net (weak) surendranb-google-analytics-mcp-4b8c3c6/tests/test_v2_telemetry.py :46
t.urllib.request.urlopen = _fake_urlopen
secrets 4
- secrets surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/coordinator.py :475
creds = os.getenv("GOOGLE_APPLICATION_CREDENTIALS") - secrets surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/server.py :32
credentials_path = os.getenv("GOOGLE_APPLICATION_CREDENTIALS") - secrets surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/setup_flow.py :105
creds = os.getenv("GOOGLE_APPLICATION_CREDENTIALS") - secrets (weak) surendranb-google-analytics-mcp-4b8c3c6/tests/test_init_error_guidance.py :54
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/tmp/dummy_creds.json"
tool registrations 10
- setup_ga4_access surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/setup_flow.py :81
- search_schema surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/metadata.py :65
- get_property_schema surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/metadata.py :124
- list_dimension_categories surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/metadata.py :135
- list_metric_categories surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/metadata.py :161
- get_dimensions_by_category surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/metadata.py :187
- get_metrics_by_category surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/metadata.py :214
- get_ga4_data surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/reporting.py :216
- search_skills surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/skills.py :27
- get_troubleshooting_guide surendranb-google-analytics-mcp-4b8c3c6/ga4_mcp/tools/troubleshooting.py :63
declared dependencies 6
- mcp@>=2.0.0,<3
- google-analytics-data@==0.19.0
- google-auth@==2.40.0
- google-antigravity@*
- requests@*
- aiocron@*