ai-google-analytics-mcp
Provisions Google Analytics 4 for local AI/web projects by creating properties and web data streams, injecting gtag snippets, and saving configuration.
README
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 |
|---|---|
get_ga4_auth_setup_instructions |
gcloud ADC + API enablement steps |
list_ga_account_summaries |
Discover accounts/properties (readonly Admin API) |
provision_ga4_property |
Create GA4 property under an account |
create_web_data_stream |
Create web stream → G-XXXXXXXX |
render_ga4_gtag_snippet |
HTML snippet for a measurement ID |
inject_ga4_gtag_into_file |
Patch a local HTML/layout file |
render_ga4_nextjs_component |
Next.js GoogleAnalytics.tsx source (env or inline id) |
scaffold_ga4_nextjs_tracking |
Write component, wire layout.tsx, set .env.local |
save_project_ga4_config |
Write .ga4.config.json in a project dir |
provision_project_ga4_setup |
Property + stream + optional config/inject (+ optional registry_slug, tracking_mode) |
scan_local_ga4_configs |
Filesystem inventory of .ga4.config.json under scan roots |
list_projects_needing_ga4 |
Registry projects missing GA4 config/metadata |
detect_project_tracking_stack |
Recommend html vs nextjs wiring for a repo |
get_analytics_monitoring_companion_guide |
Pair with official read-only analytics-mcp |
get_ga4_integration_status |
Whether launcher/keymaster hooks are configured |
list_registry_projects_for_ga4 |
Registry projects + .ga4.config.json / .keymaster hints |
resolve_project_for_ga4 |
Slug and/or path → website_url, web roots, agent hints |
sync_ga4_to_launcher_registry |
Write analytics.ga4 on registry row (opt-in 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-mcp
Authentication
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.json
Copy .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-mcp
Companion (read-only reports):
google_analytics:
command: pipx
args: ["run", "analytics-mcp"]
env:
CLOUDSDK_CORE_PROJECT: your-gcp-project-id
Agent 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.