Skills
A skill is a short playbook that ships inside the package. The agent calls search_skills with a keyword, gets one back as markdown, and follows it. Nothing is fetched over the network, so it works with no API access and no credentials.
The point is to replace improvisation. Ask a general model why traffic dropped and it will invent a method. Ask it to run traffic-diagnosis and it runs the same six checks every time, in the same order, because the method is data instead of a guess.
How the agent uses them
search_skills("drop")search_skills("traffic-diagnosis")An empty query returns the index. The full text of a skill arrives as markdown, and the agent uses the dimensions and metrics named inside it rather than choosing its own.
When to load one
Before any question that involves interpretation, not just retrieval. "How many sessions yesterday" needs no skill. "Why did sessions drop", "which channel is worth more", "is this bot traffic" all do.
Set it up
| GCP Service Account Setup for GA4 MCP | Step-by-step playbook to configure GA4 MCP using a Google Cloud Service Account (offline, CI/CD, enterprise) instead of 1-Click browser OAuth. |
Diagnose a change
| Traffic Change Diagnosis | Systematically diagnose why traffic changed — spike, drop, or shift in mix. Follow these steps in order. Each step narrows the hypothesis. |
| Content Performance Analysis | Identify top-performing pages, find underperforming content, and understand engagement patterns across your site. |
| Bot Traffic Detection | Identify and exclude bot, scraper, and spam sessions from GA4 data. |
| Geo and Device Segmentation | Break down user behaviour by country, city, device category, and OS to understand regional patterns and optimise for your key markets. |
| Channel Acquisition Analysis | Break down sessions and users by traffic source, medium, and channel group to understand where your audience comes from and which channels perform best. |
Measure a channel
| Ecommerce Analysis | Revenue, conversion rate, AOV, and funnel drop-off using GA4 ecommerce events. |
| Attribution Scope | GA4 has three distinct attribution scopes. Using the wrong scope gives misleading results. Choose based on the question you are answering. |
| AI Referral Analysis | Measure traffic arriving from AI tools — ChatGPT, Claude, Perplexity, Gemini, Copilot, and others — and understand how it behaves compared to other channels. |
| Custom Dimensions and Event Parameters | How to find and query property-specific custom dimensions in GA4. |
Get the query right
| Common Metric & Dimension Names | The correct GA4 Data API names for fields models most often get wrong. Use these before calling `get_ga4_data` — wrong names return a hard error. |
| Filter Structures | The correct shape for `dimension_filter` in `get_ga4_data`. Wrong structure returns an \"Invalid dimension_filter\" error. Use these templates. |
| Compatible Dimension and Metric Combinations | GA4 enforces strict rules about which dimensions and metrics can appear in the same request. Incompatible combinations return a 400 error: \"The request's dimensions & metrics are incompatible.\ |
| Date Ranges | How to specify date ranges in `get_ga4_data` and how to structure period-over-period comparisons. |
| GA4 API Limitations | What this MCP **cannot** do via the GA4 Data API, and where to go instead. Attempting these will either fail or produce meaningless aggregate data. |
| UA to GA4 Field Name Mapping | Universal Analytics (UA) and GA4 use different names for equivalent concepts. UA was sunset on 2023-07-01; models trained before or around then guess UA field names that no longer exist in the GA4 Data API. On 2024-05-06 GA4 also renamed \"conversions\" to \"key events\" (see the conversions rows below). If a name feels obviously right but returns \"Invalid metric/dimension\", assume your training predates the change and verify with `search_schema`. This skill gives the correct GA4 Data API name for every common UA metric and dimension. |
Next
Query shapes covers the filter syntax these skills assume. If a skill names a metric your property does not have, search_schema will tell you what that property calls it.