Skip to main content
Glama
get-mcp-ads

Adjust MCP server

adjust compare periods

adjust_compare_periods
Read-onlyIdempotent

Compare two equal-length Adjust reporting periods using identical metrics, filters, OS, and measurement settings; defaults to the preceding period and reports changes from native totals.

Instructions

Compare two equal-length periods for one allowlisted Adjust application with identical metrics, filters, OS and measurement settings. Defaults to the immediately preceding period. Changes use native totals, never sums of breakdowns. Unavailable or partial values have no calculated change; cohort maturity and reporting delays still apply.

Input Schema

NameRequiredDescriptionDefault
limitNoDisplay row limit only; truncation is explicit and native totals are preserved.
endDateYesLast date of the reporting period, in YYYY-MM-DD format, on or after startDate.
filtersNoFilters combined according to this tool's query schema. Use provider field names and the declared operators.
metricsNoNative or documented calculated metric names to request. Check compatibility with the selected dimensions.
osNamesNoOperating system filter, for example ios or android. Keep os_name in dimensions to compare platforms.
appTokenYesExact Adjust application token from ADJUST_APP_TOKENS. Applications are separate from advertising accounts.
currencyNoExplicit ISO currency for money metrics. Keep the same currency across comparisons.
startDateYesFirst date of the reporting period, in YYYY-MM-DD format.
utcOffsetNoFixed UTC offset; +00:00 by default. Split local-date comparisons if the offset changes during the period.+00:00
comparisonNoOptional equal-length comparison period; otherwise use the immediately preceding period.
dimensionsNoNative reporting dimensions. Validate compatibility with the selected metrics.
adSpendModeNoNative source of ad spend. Keep the same mode across comparisons and avoid counting overlapping spend twice.network
reattributedNoInclude all users, reattributed users only, or users without reattribution.all
cohortMaturityNoInclude current cohort values or use mature-only mode, which may zero immature cohorts.immature
iapRevenueModeNoIn-app revenue percentage. Retain the same setting across comparisons.GROSS_100
attributionTypesNoOptional engagement filter. Omit for an unfiltered report including native organic data. Empty types in output means no engagement filter.
attributionSourceNoAssign activity to the first install source or the native dynamic reattribution source.dynamic

Output Schema

NameRequiredDescriptionDefault
resultYesOriginal tool result: parsed JSON when the text is JSON, otherwise the text or multiple MCP content blocks. Provider fields depend on the selected query.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: changes derive from native totals rather than sums of breakdowns, unavailable or partial values produce no calculated change, and cohort maturity and reporting delays still apply to results.

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?

Four compact sentences, front-loaded with the core operation and scope before the caveats about native totals and partial values. No filler sentences, though the list of invariants is dense and could be skimmed past.

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 a 17-parameter read-only analytics tool with full schema coverage and an output schema, the description covers the operation, the default comparison window, and the key caveats about totals and partial data. The only meaningful omission is an explicit pointer to adjust_run_report for non-comparison reporting.

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 100%, so the baseline is 3, but the description contributes semantics the schema does not encode: periods must be equal length and both sides must share identical metrics, filters, OS and measurement settings. Those cross-parameter constraints materially help correct invocation.

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: comparing two equal-length periods for one Adjust application with identical metrics, filters, OS and measurement settings. It doesn't name adjust_run_report as the non-comparison alternative, so the boundary against the closest sibling is left implicit.

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?

The description establishes the comparison behavior (defaults to the immediately preceding period) and the requirement that both periods use identical metrics/filters/settings, which implies when this tool is appropriate. However, it never explicitly says when to use this instead of adjust_run_report, so the routing decision is inferred rather than stated.

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