Skip to main content
Glama
strait-link

Strait MCP server

Official
by strait-link

Compare two periods

compare_analytics
Read-onlyIdempotent

Compare two analytics periods to spot changes in taps, app opens, installs, conversions, and revenue, including row-by-row group results for diagnosing drops.

Instructions

Read-only. Compares two periods: taps, app opens, installs, conversions and revenue now against before, with the change and the percent change (null when before was 0). By default "before" is the period of the same length just before. With group (channel, platform or link) it compares each row too, biggest first. Use it for "how did this week do against last week" or "why did installs drop". Days are UTC; each period at most 92 days.

Input Schema

NameRequiredDescriptionDefault
toNoExclusive end, same formats; default now
fromNoInclusive start: 2026-10-01, an ISO date-time or epoch ms
linkNoOnly this link (slug)
groupNoAlso compare row by row
limitNoRows to compare with group, default 10
compareToNoEnd of the period to compare against; default: from
compareFromNoStart of the period to compare against; default: just before from

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description adds real behavioral detail beyond them: percent change is null when 'before' was 0, the default before-period is same-length just prior, grouped rows are ordered biggest first, days are UTC, and each period is capped at 92 days. No mention of auth or rate limits, which keeps it from a 5.

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?

Front-loads 'Read-only.' then defaults, then grouping, then use cases, then the UTC/92-day constraint. Dense single paragraph with no redundant restatement of the schema.

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?

There is no output schema, and the description compensates by describing the return shape: current vs before values plus change and percent change, with null semantics and ordering for grouped rows. An agent has everything needed to call and interpret it.

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 coverage is 100%, so the baseline is 3, and the description adds meaning: it explains that 'before' defaults to the equal-length preceding period, that group compares each row and sorts biggest first, and that periods cap at 92 days. It doesn't touch limit or link beyond what the schema says, but the defaulting logic for compareFrom/compareTo is genuinely additive.

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?

States a specific verb (compares) and resource (two periods) and enumerates the metrics compared: taps, app opens, installs, conversions, revenue, with change and percent change. The comparison framing clearly distinguishes it from the plain get_analytics sibling.

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?

Gives concrete usage contexts ('how did this week do against last week', 'why did installs drop'), which is strong when-to-use guidance. It never explicitly names get_analytics as the alternative for single-period reads, so the routing is implied rather than stated.

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