ai-google-analytics-mcp
ai-google-analytics-mcp
MCP server to provision Google Analytics 4 for local AI/web projects: create properties and web data streams, capture measurement IDs, inject gtag into HTML, and write .ga4.config.json in project roots.
For reporting and monitoring, use Google's official read-only analytics-mcp alongside this server (see CONTEXT.md).
Tools
Tool | Purpose |
| gcloud ADC + API enablement steps |
| Discover accounts/properties (readonly Admin API) |
| Create GA4 property under an account |
| Create web stream → |
| HTML snippet for a measurement ID |
| Patch a local HTML/layout file |
| Next.js |
| Write component, wire |
| Write |
| Property + stream + optional config/inject (+ optional |
| Filesystem inventory of |
| Registry projects missing GA4 config/metadata |
| Recommend html vs nextjs wiring for a repo |
| Pair with official read-only |
| Whether launcher/keymaster hooks are configured |
| Registry projects + |
| Slug and/or path → website_url, web roots, agent hints |
| Write |
Optional: launcher registry & keymaster
Public-repo safe: no hardcoded paths, no imports from sibling repos. Set env on your MCP host only if you use these services:
GA4_LAUNCHER_REGISTRY_JSON— read launcherregistry.json(same format as launcher-project-registry)GA4_LAUNCHER_REGISTRY_WRITABLE=true— allowsync_ga4_to_launcher_registry/registry_slugon provisionGA4_KEYMASTER_DATABASEorGA4_KEYMASTER_HINTS=true— status hints only; secrets stay in keymaster MCP (keymaster_register_keyfor GA service accounts). Measurement IDs remain in.ga4.config.json.
See docs/adr/0003-optional-registry-keymaster-hooks.md.
Quick start
cd /path/to/ai-google-analytics-mcp
uv sync
uv run pytest -q
uv run ga4-provision-mcpAuthentication
Full walkthrough: Google Analytics GA4 Service Account Setup Guide — GCP project, enable Admin (and optional Data) API, create a service account, grant GA account access, and point GOOGLE_APPLICATION_CREDENTIALS at the JSON key.
If gcloud auth application-default login shows "This app is blocked", use a service account (recommended): see also research/notes/gcloud-this-app-is-blocked.md.
# After SA JSON is on disk and SA email has Editor on your GA account:
export GOOGLE_APPLICATION_CREDENTIALS=~/.config/ga4/ga4-provisioner-sa.jsonCopy .env.example → .env and set GOOGLE_APPLICATION_CREDENTIALS + optional GA4_DEFAULT_ACCOUNT_ID.
Hermes / MCP config (stdio)
# ~/.hermes/config.yaml (example)
mcp_servers:
ga4_provision:
command: uv
args:
- run
- --directory
- /path/to/ai-google-analytics-mcp
- ga4-provision-mcpCompanion (read-only reports):
google_analytics:
command: pipx
args: ["run", "analytics-mcp"]
env:
CLOUDSDK_CORE_PROJECT: your-gcp-project-idAgent workflow example
"Provision GA4 for this repo: production URL https://my-app.example, inject into
public/index.html, save config in project root."
The agent calls provision_project_ga4_setup with project_dir and inject_html_path.
Docs
SECURITY.md — transport (stdio), trust model, credentials, safe deployment
google-analytics-ga4-service-account-setup-guide.md — step-by-step Google Cloud + GA4 + service account setup
CONTEXT.md— rules and architectureHERMES.md— agent smoke + guardrailsdocs/adr/— durable decisionsresearch/— external references (official analytics-mcp, etc.)BRIEF.md— original Gemini conversation blueprint
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HappyMonkeyAI/ai-google-analytics-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server