Skip to main content
Glama

get_retention_report

Read-only

Show a retention report

Returns one entry in cohorts per first-seen day, newest first. A cohort is the players whose first activity fell on that UTC day. activity sets what makes a player active on a day: kinds lists which of matches, progression_events, and events count, and event_names limits events to those event names (empty means every event counts). Each cohort has its new players and the share of them active again exactly 1, 7, and 30 days later. A retention value is null until that day has finished. average_retention averages each day over every cohort with a finished value, weighted by cohort size. daily_active_players, weekly_active_players, monthly_active_players, and stickiness have one entry for each finished day from the first activity in the range. Weekly and monthly active players on a day are the players active in the 7 and 30 days ending that day, and stickiness is daily active players divided by monthly active players (null when there are none). averages averages each of the four over those days. Without date filters, the report covers cohorts from the last 90 days.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "get_retention_report"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe report ID.
occurred_afterNoOnly include cohorts from the last N days. Allowed values: 1, 7, 30. Takes precedence over the start of `occurred_between`.
occurred_betweenNoTwo ISO dates (from, to) that limit the cohorts and active player days to that range. Leave either blank for an open range.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so safety is covered. The description adds substantial behavioral context beyond annotations: cohort semantics, null retention until a day finishes, weighted average_retention, active-player definitions, stickiness calculation, and the default 90-day range.

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?

The description is long but front-loaded with the purpose and then organized around output semantics. Most sentences earn their place by explaining cohort, retention, and active-player behavior, though it could be tightened.

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?

With no output schema, the description carries the burden of explaining return values and does so thoroughly for a complex report. It is still missing guidance on obtaining the report id and introduces non-schema activity terms, so it is not fully complete.

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 schema already documents id, occurred_after, and occurred_between. The description adds the useful default 90-day window, but it does not clarify id or the precedence of occurred_after beyond the schema, and it references activity/kinds/event_names that are not input parameters, which may confuse an agent.

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: "Show a retention report." It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as list_retention_reports or create_report.

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?

Usage is implied by the required report id and the default 90-day behavior, but the description never says when to use this tool versus list_retention_reports or how to obtain the id. It also gives no explicit exclusions or alternatives.

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.

Resources