Skip to main content
Glama
abdulhadi-98

Social MCP

by abdulhadi-98

ga4_run_report

Read-only

Run Google Analytics 4 reports with chosen metrics, dimensions, date ranges, filters, and metric sorting to retrieve property performance data for analysis.

Instructions

Run a GA4 report.

metrics e.g. ["sessions", "totalUsers", "conversions", "purchaseRevenue"]; dimensions e.g. ["date", "sessionSourceMedium", "sessionCampaignName", "landingPage"]. Dates: YYYY-MM-DD, "today", "yesterday" or "NdaysAgo". dimension_filters: [{"field": "sessionSourceMedium", "value": "google / cpc", "match": "EXACT|CONTAINS|BEGINS_WITH"}] (ANDed). order_by_metric: sort descending by this metric.

Input Schema

NameRequiredDescriptionDefault
limitNo
metricsYes
end_dateNotoday
dimensionsNo
start_dateNo28daysAgo
property_idYes
order_by_metricNo
dimension_filtersNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. Beyond that the description adds nothing behavioral: no mention of GA4 Data API quota/rate limits, sampling, row-limit semantics, or the fact that property_id must be a valid GA4 property. For an open-world external API call, that is a meaningful gap.

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

Conciseness4/5

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

Front-loaded one-line purpose followed by dense, example-driven bullets with zero filler. The only weak spot is the bare opening sentence, which is near-tautological and could have carried the sibling differentiation instead.

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

Completeness3/5

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

An output schema exists, so return values needn't be described, and the query-shaping parameters are well covered. However, for an 8-parameter external-API tool with no schema descriptions, the missing property_id sourcing, limit behavior, and absence of any routing guidance leave it only adequate.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the full burden and mostly does: it gives date literal formats (YYYY-MM-DD, today, yesterday, NdaysAgo), the filter object shape with match operators, AND semantics for multiple filters, and sort direction for order_by_metric. property_id and limit remain unexplained, which keeps it from a 5.

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?

States a specific verb and resource ("Run a GA4 report") and immediately grounds it with example metrics and dimensions, so an agent knows this is the general analytics query tool. It does not explicitly distinguish itself from siblings like ga4_realtime_report, but the standard-report framing is clear enough to infer the split.

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 shows how to shape arguments but never says when to use this versus ga4_realtime_report, ga4_get_metadata, or google_ads_query. There are no prerequisites, no exclusions, and no note about property_id being required (e.g., obtained from ga4_list_properties).

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