Skip to main content
Glama

Ga Get Realtime

ga_get_realtime
Read-onlyIdempotent

Check live user activity in a GA4 property right now. Returns current active user count and real-time engagement metrics. Specify property ID (e.g., "123456789").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows (default 100)
metricsNoRealtime metrics (e.g., ["activeUsers", "screenPageViews"]). Defaults to ["activeUsers"].
dimensionsNoRealtime dimensions (e.g., ["city", "unifiedScreenName", "platform"])
property_idYesGA4 property ID (numeric)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoAPI response kind identifier
rowsNoReal-time data rows with current engagement metrics
errorNoError code if connection not established
messageNoError message if connection not established
rowCountNoNumber of rows returned
metricHeadersNoHeaders for realtime metric columns
dimensionHeadersNoHeaders for realtime dimension columns
totalsForAllRowsNoTotal values across all rows

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed11 schema fields changed
    • changedOutput schema / properties / dimensionHeaders / description
      Previous value: -"Realtime dimension headers"New value: +"Headers for realtime dimension columns"
    • changedOutput schema / properties / error / description
      Previous value: -"Error message if connection failed"New value: +"Error code if connection not established"
    • addedOutput schema / properties / kind
      Added value: +{
      +  "description": "API response kind identifier",
      +  "type": "string"
      +}
    • changedOutput schema / properties / message / description
      Previous value: -"Error details if connection failed"New value: +"Error message if connection not established"
    • changedOutput schema / properties / metricHeaders / description
      Previous value: -"Realtime metric headers with types"New value: +"Headers for realtime metric columns"
    • changedOutput schema / properties / metricHeaders / items / properties / type / description
      Previous value: -"Metric data type"New value: +"Data type of metric"
    • changedOutput schema / properties / rows / description
      Previous value: -"Realtime data rows"New value: +"Real-time data rows with current engagement metrics"
    • removedOutput schema / properties / rows / items / properties / dimensionValues / items / properties
      Removed value: -{
      -  "value": {
      -    "description": "Dimension value",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / rows / items / properties / metricValues / items / properties
      Removed value: -{
      -  "value": {
      -    "description": "Metric value",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / totalActiveUsers
      Removed value: -{
      -  "description": "Total active users in realtime",
      -  "type": "string"
      -}
    • addedOutput schema / properties / totalsForAllRows
      Added value: +{
      +  "description": "Total values across all rows",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "dimensionHeaders": {
      +      "description": "Realtime dimension headers",
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "description": "Dimension name",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "error": {
      +      "description": "Error message if connection failed",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "Error details if connection failed",
      +      "type": "string"
      +    },
      +    "metricHeaders": {
      +      "description": "Realtime metric headers with types",
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "description": "Metric name",
      +            "type": "string"
      +          },
      +          "type": {
      +            "description": "Metric data type",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "rowCount": {
      +      "description": "Number of rows returned",
      +      "type": "number"
      +    },
      +    "rows": {
      +      "description": "Realtime data rows",
      +      "items": {
      +        "properties": {
      +          "dimensionValues": {
      +            "description": "Dimension values for this row",
      +            "items": {
      +              "properties": {
      +                "value": {
      +                  "description": "Dimension value",
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "metricValues": {
      +            "description": "Metric values for this row",
      +            "items": {
      +              "properties": {
      +                "value": {
      +                  "description": "Metric value",
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "totalActiveUsers": {
      +      "description": "Total active users in realtime",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "property_id": "123456789"
      +  },
      +  {
      +    "dimensions": [
      +      "city",
      +      "platform"
      +    ],
      +    "limit": 50,
      +    "metrics": [
      +      "activeUsers",
      +      "screenPageViews"
      +    ],
      +    "property_id": "123456789"
      +  }
      +]
  4. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds the real-time nature and return focus, but no additional caveats or behaviors beyond 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?

Two sentences, front-loaded with the core purpose, and includes a concrete example. Every word earns its place.

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

Completeness5/5

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

With complete parameter schema, explicit annotations, and an output schema present, plus a simple tool scope, the description provides sufficient context for the agent to correctly invoke the tool.

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?

Schema description coverage is 100%, so the parameter schema already documents all fields. The description adds a property ID example but no extra semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the tool checks live user activity in a GA4 property and returns active user count and real-time engagement metrics. This specific verb+resource combination distinguishes it from siblings like ga_run_report (historical) and ga_get_metadata.

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

Usage Guidelines4/5

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

The phrase 'right now' clearly signals real-time use, differentiating from historical reporting tools. However, it does not explicitly name alternatives or state when not to use, so it falls short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.5/5.0
Disambiguation2/5

Several tools overlap heavily: ask_pipeworx and ask_pipeworx_beta are explicitly identical, ask_pipeworx_grounded and deep_research both route queries to the same 5,529 tools, and ai_visibility_check vs scan_competitor_ai_presence are near-duplicates. Only the small ga_* subset is clearly distinct.

Naming Consistency2/5

Conventions are mixed: GA tools use a ga_ prefix, but the majority use arbitrary names like ask_pipeworx, deep_research, remember, scan_dependency, and polymarket_arbitrage. No consistent verb_noun pattern across the set.

Tool Count2/5

35 tools is heavy, and the vast majority (31) are unrelated Pipeworx utilities rather than Google Analytics functionality. Only 4 tools actually serve the stated GA purpose, making the count inappropriate for the server name.

Completeness2/5

For Google Analytics, the surface is minimal: list properties, metadata, realtime, and run report—no property management, user management, or data mutation. As a Pipeworx toolkit it's broad but lacks full lifecycle coverage for any single domain.