2.11.3pypi · google-analytics-mcp · current release
Observed 2026-08-18T07:18:09.615Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"experimental": {},
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false,
"subscribe": false
},
"tools": {
"listChanged": false
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
get_dimensions_by_category
Return all dimensions in a specific category with their API names and descriptions.
Returns: {"dimension_api_name": "description", ...}
The category name must exactly match a value returned by list_dimension_categories.
Use search_schema instead if you already have a keyword — it is faster and more
targeted than browsing by category.
Args:
category: Exact category name from list_dimension_categories (case-insensitive).
Input schema{
"properties": {
"category": {
"title": "Category",
"type": "string"
}
},
"required": [
"category"
],
"type": "object",
"title": "get_dimensions_by_categoryArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
get_ga4_data
Retrieve GA4 data with built-in intelligence for better and safer results.
Returns on success: {"data": [...], "metadata": {...}, "_skills_tip": "..."}.
For multi-row pulls (a time series like ['date'], or any breakdown) the
result also carries "totals": {metric: value} — GA4 server-side aggregates
across all rows. Read the period figure from "totals"; do NOT sum the rows
yourself. (Additive metrics sum; rate metrics are period-computed by GA4.)
Returns on volume warning: {"warning": "...", "estimated_rows": N, "suggestions": [...]}
Returns on error: {"error": "..."}
CRITICAL WORKFLOW — follow this sequence every time:
1. DISCOVER FIELDS: NEVER guess dimension or metric names. Call `search_schema`,
`list_dimension_categories`, or `list_metric_categories` FIRST to verify exact
API names for this property. Guessing costs you a failed round-trip.
2. DISCOVER PATTERN: For any domain-specific analysis, call `search_skills('<topic>')`
BEFORE querying to get the proven methodology — correct dimensions, metrics,
filters, and how to interpret the result. One extra call prevents multiple failures.
Use for: traffic diagnosis, attribution, ecommerce, channel acquisition, content
performance, geo/device segmentation, AI referrals, bot detection.
3. RETRIEVE: Call get_ga4_data with the verified fields and the skill's pattern.
4. TROUBLESHOOT: On schema error, invalid field, or filter parse error — do NOT
retry by guessing. Your training may predate current GA4 (UA was sunset
2023-07-01). Call `search_schema('<keyword>')` to find the current name in
THIS property, or `search_skills('ua-to-ga4' | 'common-metric-names' |
'filter-structures')` for the mapping.
FIELD NAMES — GA4 API names vs common wrong guesses:
- 'screenPageViews' not 'uniquePageviews' or 'pageViews'
- 'totalUsers' not 'users'
- 'keyEvents' not 'conversions' or 'goalCompletionsAll'
- 'sessionKeyEventRate' not 'sessionConversionRate' or 'conversionRate' (GA4 renamed conversions→key events, 2024)
- 'userEngagementDuration' not 'timeOnPage' or 'avgTimeOnPage'
- 'averageSessionDuration' not 'avgSessionDuration'
- 'itemsViewed' not 'itemViews'
- 'ecommercePurchases' not 'purchases'
- 'sessionDefaultChannelGroup' not 'sessionDefaultChannelGrouping'
- 'sessionSource'/'sessionMedium' not 'source'/'medium'
- All names are camelCase — never snake_case (page_path → pagePath, event_name → eventName)
- 'bounceRate' and 'newUsers' are correct as-is
DATE RANGES:
- Format: 'YYYY-MM-DD' or relative strings: '7daysAgo', '30daysAgo', 'yesterday', 'today'
- 'NdaysAgo' counts back from today, excluding today. 'yesterday' = last complete day.
- Period comparison (YoY, WoW): run two separate queries with different date ranges,
then compare the results. The API does not support multi-period in one call.
SCOPE RULES — incompatible combinations return a 400 error:
- Session dims (sessionSource, sessionMedium, sessionCampaignName) → use with
sessions, bounceRate, sessionKeyEventRate. NOT with eventCount.
- Event dims (eventName) → use with eventCount. NOT with sessions.
- User dims (firstUserSource, firstUserMedium) → use with totalUsers, newUsers. NOT sessions.
- Safe with any metric: date, deviceCategory, country, city, pagePath, pageTitle.
FILTER STRUCTURE:
- Simple: {"filter": {"fieldName": "sessionSource", "stringFilter": {"value": "google", "matchType": "CONTAINS"}}}
- AND: {"andGroup": {"expressions": [{"filter": {...}}, {"filter": {...}}]}}
- OR: {"orGroup": {"expressions": [{"filter": {...}}, {"filter": {...}}]}}
- NOT: {"notExpression": {"filter": {...}}}
- Wrong keys that break filters: and_filter→andGroup, or_filter→orGroup,
not_filter→notExpression, filters→expressions, field→fieldName
Args:
dimensions: GA4 dimension names (verified via schema tools, e.g. ["date", "city"]).
metrics: GA4 metric names (verified via schema tools, e.g. ["totalUsers", "sessions"]).
date_range_start: Start date — 'YYYY-MM-DD' or '7daysAgo', '30daysAgo', 'yesterday'.
date_range_end: End date — 'YYYY-MM-DD' or 'yesterday', 'today'.
dimension_filter: Optional FilterExpression dict. camelCase and snake_case both accepted.
limit: Max rows to return. Defaults to 1000.
estimate_only: If True, returns only estimated row count without fetching data.
proceed_with_large_dataset: Set True to bypass the 2500-row volume warning.
enable_aggregation: If True, asks GA4 for server-side metric totals whenever a
dimension splits the data across rows (e.g. a 7-day ['date'] pull), returned
in a "totals" block so the model needn't sum rows. Default True.
intent: Short plain-English description of what the user is trying to learn.
E.g. "which channels drive most signups", "bot traffic audit for last month".
Input schema{
"properties": {
"dimensions": {
"default": [
"date"
],
"items": {
"type": "string"
},
"title": "Dimensions",
"type": "array"
},
"metrics": {
"default": [
"totalUsers",
"newUsers",
"sessions"
],
"items": {
"type": "string"
},
"title": "Metrics",
"type": "array"
},
"date_range_start": {
"default": "7daysAgo",
"title": "Date Range Start",
"type": "string"
},
"date_range_end": {
"default": "yesterday",
"title": "Date Range End",
"type": "string"
},
"dimension_filter": {
"additionalProperties": true,
"default": null,
"title": "Dimension Filter",
"type": "object"
},
"limit": {
"default": 1000,
"title": "Limit",
"type": "integer"
},
"estimate_only": {
"default": false,
"title": "Estimate Only",
"type": "boolean"
},
"proceed_with_large_dataset": {
"default": false,
"title": "Proceed With Large Dataset",
"type": "boolean"
},
"enable_aggregation": {
"default": true,
"title": "Enable Aggregation",
"type": "boolean"
},
"intent": {
"default": null,
"title": "Intent",
"type": "string"
}
},
"type": "object",
"title": "get_ga4_dataArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
} | — | Read only · — | — |
get_metrics_by_category
Return all metrics in a specific category with their API names and descriptions.
Returns: {"metric_api_name": "description", ...}
The category name must exactly match a value returned by list_metric_categories.
Use search_schema instead if you already have a keyword — it is faster and more
targeted than browsing by category.
Args:
category: Exact category name from list_metric_categories (case-insensitive).
Input schema{
"properties": {
"category": {
"title": "Category",
"type": "string"
}
},
"required": [
"category"
],
"type": "object",
"title": "get_metrics_by_categoryArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
get_property_schema
Returns the complete schema for the configured GA4 property, including all
available dimensions and metrics (standard and custom). Warning: This can be
a very large object (10k+ tokens). Use search_schema for most discovery tasks.
Input schema{
"properties": {},
"type": "object",
"title": "get_property_schemaArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
get_troubleshooting_guide
Returns the troubleshooting/setup guide for a topic, served from inside the
server (no network needed). Use whenever you hit a schema error,
dimension_filter parse error, IAM / 403 authorization error, or a
boot-time setup error.
Args:
topic: One of "setup", "iam", or "schema".
Input schema{
"properties": {
"topic": {
"title": "Topic",
"type": "string"
}
},
"required": [
"topic"
],
"type": "object",
"title": "get_troubleshooting_guideArguments"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"title": "get_troubleshooting_guideOutput"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
list_dimension_categories
List all dimension categories for this GA4 property, with a count of
dimensions in each category.
Returns: {"dimension_categories": {"Category Name": count, ...}}
Use this as the first step in dimension exploration — browse categories,
then call get_dimensions_by_category with the name that fits your analysis.
Use search_schema instead if you already have a keyword to search for.
Input schema{
"properties": {},
"type": "object",
"title": "list_dimension_categoriesArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
list_metric_categories
List all metric categories for this GA4 property, with a count of
metrics in each category.
Returns: {"metric_categories": {"Category Name": count, ...}}
Use this as the first step in metric exploration — browse categories,
then call get_metrics_by_category with the name that fits your analysis.
Use search_schema instead if you already have a keyword to search for.
Input schema{
"properties": {},
"type": "object",
"title": "list_metric_categoriesArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
search_schema
Search for a keyword across all dimensions and metrics for this property.
Returns a ranked list of up to 10 matching fields scored by relevance.
Returns: {"top_results": {"DIMENSION: api_name": score, "METRIC: api_name": score, ...}}
Use this when you have a concept ("engagement", "revenue", "channel") and need
exact API field names before calling get_ga4_data.
Use list_dimension_categories or list_metric_categories instead if you want to
browse all available fields without a specific keyword.
Args:
keyword: One or more keywords to search for (e.g., "user", "campaign revenue").
Input schema{
"properties": {
"keyword": {
"title": "Keyword",
"type": "string"
}
},
"required": [
"keyword"
],
"type": "object",
"title": "search_schemaArguments"
}Annotations{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
} | — | Read only · — | — |
search_skills
Fetch analytical recipes and how-to guides from the GA4 skills library.
Skills are domain-specific playbooks for common GA4 analysis patterns —
exact dimensions, metrics, filters, and interpretation logic for each use case.
Call this BEFORE querying get_ga4_data for any domain-specific analysis.
Available skills: traffic-diagnosis, attribution-scope, channel-acquisition,
content-performance, geo-device-segmentation, ecommerce-analysis,
ai-referral-analysis, bot-traffic-detection, common-metric-names,
filter-structures, custom-dimensions, compatible-combinations, ua-to-ga4,
date-ranges, ga4-limitations.
Usage:
- search_skills("") → returns full index of all skills
- search_skills("ecommerce") → returns the ecommerce-analysis skill
- search_skills("ua-to-ga4") → returns the UA→GA4 field name mapping
Args:
query: A skill name (exact slug) or empty string to browse the full index.
Input schema{
"properties": {
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object",
"title": "search_skillsArguments"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"title": "search_skillsOutput"
}Annotations{
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
} | — | Read only · — | — |
setup_ga4_access
Interactively fix a broken GA4 MCP setup (missing property ID, missing or
expired credentials, or missing GA4 access) by asking the user for the
needed input through the client, then re-initializing without a restart.
Call this whenever a configuration or authentication error is reported.
Input schema{
"properties": {},
"type": "object",
"title": "setup_ga4_accessArguments"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"title": "setup_ga4_accessOutput"
}Annotations{
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
} | — | Read only · — | — |
{
"resource_key": "docs://fix/iam",
"uri": "docs://fix/iam",
"name": "get_fix_iam",
"description": null,
"mime_type": "text/plain",
"annotations": null,
"metadata_hash": "d50238850c13f1e40758b66cf813483262205ccd344790da827a6da95701b4b5"
}{
"resource_key": "docs://fix/schema",
"uri": "docs://fix/schema",
"name": "get_fix_schema",
"description": null,
"mime_type": "text/plain",
"annotations": null,
"metadata_hash": "63efaf8bfea0c590435df989914af6283eab1eade6d4260f95972aa95129102f"
}{
"resource_key": "docs://fix/setup",
"uri": "docs://fix/setup",
"name": "get_fix_setup",
"description": null,
"mime_type": "text/plain",
"annotations": null,
"metadata_hash": "76fd12d8f84868decd34dc98d439b88790a1ea7ec91ea74dd5b0b13a51541454"
}Provides instructions to the agent on how to heal the human's MCP setup.
{
"resource_key": "docs://setup_guide",
"uri": "docs://setup_guide",
"name": "get_setup_guide",
"description": "Provides instructions to the agent on how to heal the human's MCP setup.",
"mime_type": "text/plain",
"annotations": null,
"metadata_hash": "c4bb69b1940057682b627da2f2d9246bdc75e34be3cbb2604049fd6997ac13bd"
}GA4 analytical skill 'ai-referral-analysis' — the same recipe served by search_skills('ai-referral-analysis'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://ai-referral-analysis",
"uri": "skill://ai-referral-analysis",
"name": "skill-ai-referral-analysis",
"description": "GA4 analytical skill 'ai-referral-analysis' — the same recipe served by search_skills('ai-referral-analysis'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "4833a06091e5971cf6f4c2933030280374a4a54b38e70300a9ce9fee42673ab2"
}GA4 analytical skill 'attribution-scope' — the same recipe served by search_skills('attribution-scope'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://attribution-scope",
"uri": "skill://attribution-scope",
"name": "skill-attribution-scope",
"description": "GA4 analytical skill 'attribution-scope' — the same recipe served by search_skills('attribution-scope'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "16c110a4b713a8a51c1b464ebd53b08ae782071a0545f62260b4db073612797d"
}GA4 analytical skill 'bot-traffic-detection' — the same recipe served by search_skills('bot-traffic-detection'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://bot-traffic-detection",
"uri": "skill://bot-traffic-detection",
"name": "skill-bot-traffic-detection",
"description": "GA4 analytical skill 'bot-traffic-detection' — the same recipe served by search_skills('bot-traffic-detection'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "b99f1b0b0920f2a368a31b3b718b230e2249cb3b64f20df259228a24c6566ed8"
}GA4 analytical skill 'channel-acquisition' — the same recipe served by search_skills('channel-acquisition'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://channel-acquisition",
"uri": "skill://channel-acquisition",
"name": "skill-channel-acquisition",
"description": "GA4 analytical skill 'channel-acquisition' — the same recipe served by search_skills('channel-acquisition'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "738e8ded5b36fdc15c4aaaf1266cb188c5b2b4ebaa45b2639b335fa3f7e52868"
}GA4 analytical skill 'common-metric-names' — the same recipe served by search_skills('common-metric-names'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://common-metric-names",
"uri": "skill://common-metric-names",
"name": "skill-common-metric-names",
"description": "GA4 analytical skill 'common-metric-names' — the same recipe served by search_skills('common-metric-names'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "2a8c92a1b186cb7494b2dc8913d3f04a8835cf62399700e557e019677e15c00d"
}GA4 analytical skill 'compatible-combinations' — the same recipe served by search_skills('compatible-combinations'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://compatible-combinations",
"uri": "skill://compatible-combinations",
"name": "skill-compatible-combinations",
"description": "GA4 analytical skill 'compatible-combinations' — the same recipe served by search_skills('compatible-combinations'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "7bd832499f2f660022e1eb411c785f8ff982438da16d1d8429712f102903b783"
}GA4 analytical skill 'content-performance' — the same recipe served by search_skills('content-performance'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://content-performance",
"uri": "skill://content-performance",
"name": "skill-content-performance",
"description": "GA4 analytical skill 'content-performance' — the same recipe served by search_skills('content-performance'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "69033e85f93511223bf70b6676803e578236bb5ec290feba10e9198379540dd5"
}GA4 analytical skill 'custom-dimensions' — the same recipe served by search_skills('custom-dimensions'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://custom-dimensions",
"uri": "skill://custom-dimensions",
"name": "skill-custom-dimensions",
"description": "GA4 analytical skill 'custom-dimensions' — the same recipe served by search_skills('custom-dimensions'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "fb657c4231c1fc85ebf45ae7c749f9a1b8007da07168843c2ea134c898ffe3c3"
}GA4 analytical skill 'date-ranges' — the same recipe served by search_skills('date-ranges'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://date-ranges",
"uri": "skill://date-ranges",
"name": "skill-date-ranges",
"description": "GA4 analytical skill 'date-ranges' — the same recipe served by search_skills('date-ranges'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "21efc544b1e30a690b251aa9135f68db3384c9152fcbd50c1effab2764fda826"
}GA4 analytical skill 'ecommerce-analysis' — the same recipe served by search_skills('ecommerce-analysis'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://ecommerce-analysis",
"uri": "skill://ecommerce-analysis",
"name": "skill-ecommerce-analysis",
"description": "GA4 analytical skill 'ecommerce-analysis' — the same recipe served by search_skills('ecommerce-analysis'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "b1fc62dc2fe885ebad15e5c9b0028052dfaa7d5470b2df6eab9d529f252ab159"
}GA4 analytical skill 'filter-structures' — the same recipe served by search_skills('filter-structures'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://filter-structures",
"uri": "skill://filter-structures",
"name": "skill-filter-structures",
"description": "GA4 analytical skill 'filter-structures' — the same recipe served by search_skills('filter-structures'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "c588b59de48c8d28f5fcfa516e8f27ab15eac1ddc7c23eda30662d3e1a5353d5"
}GA4 analytical skill 'ga4-limitations' — the same recipe served by search_skills('ga4-limitations'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://ga4-limitations",
"uri": "skill://ga4-limitations",
"name": "skill-ga4-limitations",
"description": "GA4 analytical skill 'ga4-limitations' — the same recipe served by search_skills('ga4-limitations'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "c610949b0a87f4db6211f630396df4b69e2bc093a7b871290a5a2b335099c908"
}GA4 analytical skill 'geo-device-segmentation' — the same recipe served by search_skills('geo-device-segmentation'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://geo-device-segmentation",
"uri": "skill://geo-device-segmentation",
"name": "skill-geo-device-segmentation",
"description": "GA4 analytical skill 'geo-device-segmentation' — the same recipe served by search_skills('geo-device-segmentation'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "5f695b2c1202db7a90001b97cca63d95a257dd36e412b350f0e7acd8e320917a"
}GA4 analytical skill 'index' — the same recipe served by search_skills('index'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://index",
"uri": "skill://index",
"name": "skill-index",
"description": "GA4 analytical skill 'index' — the same recipe served by search_skills('index'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "70264da011ee1a05763792b5a80e244e634120610a4929b2966d9aa185ad1db4"
}GA4 analytical skill 'traffic-diagnosis' — the same recipe served by search_skills('traffic-diagnosis'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://traffic-diagnosis",
"uri": "skill://traffic-diagnosis",
"name": "skill-traffic-diagnosis",
"description": "GA4 analytical skill 'traffic-diagnosis' — the same recipe served by search_skills('traffic-diagnosis'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "19d98d5f0126f191580469ee8d3d9ff3e9e0d377965c2ad5e491e67b77fbd4c8"
}GA4 analytical skill 'ua-to-ga4' — the same recipe served by search_skills('ua-to-ga4'): proven dimensions, metrics, filters, and how to interpret the result.
{
"resource_key": "skill://ua-to-ga4",
"uri": "skill://ua-to-ga4",
"name": "skill-ua-to-ga4",
"description": "GA4 analytical skill 'ua-to-ga4' — the same recipe served by search_skills('ua-to-ga4'): proven dimensions, metrics, filters, and how to interpret the result.",
"mime_type": "text/markdown",
"annotations": null,
"metadata_hash": "fe14606a84bc8a10e22ed8768f7b6f20f50880cd0c5cff5d1620a3d4a6f882ef"
}Diagnose why traffic fell: isolate the drop by channel, source, page, geo, and device using the traffic-diagnosis methodology.
{
"prompt_key": "explain-my-traffic-drop",
"name": "explain-my-traffic-drop",
"description": "Diagnose why traffic fell: isolate the drop by channel, source, page, geo, and device using the traffic-diagnosis methodology.",
"arguments": [],
"metadata_hash": "5fbfbe735a6e038004bf8dcdb90f518dd3ffa817b192f3c64c268114c46e2409"
}Triage a GA4 MCP setup or configuration problem: pinpoint the exact blocker (credentials, property ID, IAM, expired auth) and fix it.
{
"prompt_key": "find-whats-broken",
"name": "find-whats-broken",
"description": "Triage a GA4 MCP setup or configuration problem: pinpoint the exact blocker (credentials, property ID, IAM, expired auth) and fix it.",
"arguments": [],
"metadata_hash": "5075ff1359cf6c3ac52163ddaf126eab11e8d8372560cea259bc437c88da72f9"
}Full GA4 traffic review for a period: volume, channels, content, geo/devices — using the server's proven query patterns.
{
"prompt_key": "traffic-deep-dive",
"name": "traffic-deep-dive",
"description": "Full GA4 traffic review for a period: volume, channels, content, geo/devices — using the server's proven query patterns.",
"arguments": [
{
"name": "date_range",
"required": false
}
],
"metadata_hash": "f37ee72bb06e96d0e2928413ef305b3751649703f7b516a030e6a01d1befeefd"
}