Skip to main content
Glama

GA4 report

ga_run_report
Read-onlyIdempotent

Run customizable GA4 Data API reports to query sessions, users, pageviews, and events using dimensions, metrics, filters, and date comparisons, with data-quality warnings.

Instructions

GA4 Data API report. Common dimensions: date, pagePath, landingPage, sessionDefaultChannelGroup, sessionSource, country, deviceCategory, eventName. Common metrics: sessions, activeUsers, newUsers, screenPageViews, engagementRate, bounceRate, keyEvents, eventCount (more via ga_get_metadata). Optional comparison range, or up to 4 explicit dateRanges. Returns dataQuality when rows were thresholded, sampled or rolled into '(other)'.

Input Schema

NameRequiredDescriptionDefault
limitNo
offsetNo
endDateNoyesterday
metricsNo
orderByNoSort order. Defaults to first metric descending.
startDateNoYYYY-MM-DD, today, yesterday or NdaysAgo.28daysAgo
dateRangesNoUp to 4 date ranges; overrides startDate/endDate/compare*.
dimensionsNo
propertyIdYesGA4 property ID, e.g. '123456789' (see ga_list_properties).
filterLogicNoHow to join several dimensionFilters.and
currencyCodeNoISO 4217 code for revenue metrics, e.g. 'EUR'. Defaults to the property's currency.
metricFilterNoRaw FilterExpression; overrides metricFilters.
keepEmptyRowsNo
metricFiltersNoAND-ed metric filters (post-aggregation).
compareEndDateNo
dimensionFilterNoRaw FilterExpression; overrides dimensionFilters.
compareStartDateNoSecond range start; adds a dateRange dimension.
dimensionFiltersNoDimension filters, AND-ed unless filterLogic says otherwise.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.12.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely useful behavioral detail: optional comparison range vs up to 4 explicit dateRanges, and the caveat that dataQuality is returned when rows were thresholded, sampled, or rolled into '(other)'. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense, purposeful sentences. Common dimensions and metrics are front-loaded, and every sentence adds value: range options, metadata pointer, and dataQuality warning. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter read-only tool with no output schema, the description covers the essential invocation surface: valid dimensions/metrics, date-range behavior, and sampling/thresholding warnings. It does not fully document filters, ordering, or return shape, but the schema covers structural details and the core usage is clear enough for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 61%, the description helps by enumerating valid dimension and metric names and explaining the date-range modes. It does not, however, clarify filter semantics, orderBy behavior, or how comparison parameters map to output, so it only partially compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies this as a GA4 Data API reporting tool and lists the common dimensions and metrics an agent would need to invoke it. However, it does not explicitly distinguish itself from sibling GA tools like ga_run_pivot_report, ga_run_realtime_report, or ga_compare_periods beyond the generic 'Data API report' framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies core GA4 reporting usage and correctly points to ga_get_metadata for discovering more metrics, which is useful routing guidance. But it never explicitly states when to choose this over the pivot, realtime, funnel, or comparison-period siblings, leaving selection largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.