Skip to main content
Glama

analytics run report

analytics_run_report
Read-onlyIdempotent

Runs a GA4 Data API report to retrieve metrics and dimensions for a property over specified date ranges, with paging for up to 1,000 rows per call.

Instructions

Run a GA4 Data API report.

property_id: numeric ID or 'properties/'. metrics: e.g. ["activeUsers", "sessions"] (max 10). dimensions: e.g. ["date", "country"] (max 9). date_ranges: [{"start_date": "28daysAgo", "end_date": "today"}] (max 4). Returns headers and rows (at most 1000 per call; page with offset).

Input Schema

NameRequiredDescriptionDefault
limitNo
offsetNo
metricsYes
descendingNo
dimensionsNo
date_rangesYes
property_idYes
order_by_metricNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds useful runtime context beyond annotations: it states the return shape ('headers and rows'), a maximum row count of 1000 per call, and that callers should page with offset. It does not cover authentication needs or rate limits, but the added pagination and result-size behavior is meaningful.

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 front-loaded with the core action and then gives compact, scannable parameter guidance. It contains no filler and every sentence contributes useful information.

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 eight-parameter GA4 reporting tool with an output schema and rich annotations, the description covers the required parameters, examples, limits, and pagination behavior. It is almost complete for invocation, though it leaves the optional sorting and pagination parameters to the schema.

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 0% schema description coverage across eight parameters, the description supplies important semantics for property_id format, metrics examples and max count, dimensions examples and max count, and date_ranges format and max count. However, it does not explain limit, offset, descending, or order_by_metric, so it only partially compensates for the missing schema descriptions.

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 states a specific verb and resource: 'Run a GA4 Data API report.' This clearly identifies the operation and platform, though it does not explicitly differentiate itself from nearby analytics tools such as analytics_list_properties.

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

Usage Guidelines2/5

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

The description implies that the tool is for running GA4 reports, but it does not state when to use this tool versus alternatives like analytics_list_properties or youtube_analytics_query_report. There are no exclusions, prerequisites, or routing guidance.

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