Title97/100
Query timeseries metric
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Query a metric over a time range (start/end) for a license as a TIME SERIES — always renders a chart. Use this for trends and license-wide analytics over a period (e.g. 'last week', 'last 30 days', 'yesterday'). Bucket size is chosen automatically from start/end; there is no interval field to set. For a single aggregated number (one total/average over the whole period, NO chart), use the separate `queryTotal` tool instead. Queries resolve against API metric keywords, which can differ from a metric's common name — 'plays', for example, is 'impression_id'. The 'searchMetrics' tool resolves a keyword cheaply; 'getAvailableMetrics' returns the full catalog. Every query needs a licenseKey; `peekAllLicenses` lists the ones available. AD ANALYTICS: ad metrics use 'ad_'-prefixed keywords and are queried against a separate ads dataset. The ad completion funnel is: 'ad_quartile_1' (first quartile / 25%) -> 'ad_midpoint' (50%) -> 'ad_quartile_3' (third quartile / 75%) -> 'ad_completions'. Other ad metrics: 'ad_impressions', 'ad_starts', 'ad_clicks', 'ad_skips', 'ad_startup_time', 'ad_error_percentage', 'ad_error_sessions', 'ad_time_played', 'ad_play_percentage', 'ad_unique_users'. Ad data is present on some licenses and not others; `peekAllLicenses` output shows which. A query covers a single license, so an ad question resolves against one license at a time. With an ad metric, filters and groupBy take the AD-specific attributes from 'searchFilters' / 'getAvailableFilters' (e.g. 'AD_SYSTEM', 'AD_POSITION', 'ADVERTISER_NAME'); playback attributes and ad attributes are not interchangeable. OPTIONAL 3) Use the 'searchFilters' tool to find filter attributes/operators (or 'getAvailableFilters' for the full list).
The description explains the capability, when to use it, and what to expect.
Inputs67/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
licenseKey
license key (uuid) to query
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
metric
the metric to query. before setting a value, resolve the keyword with the `searchMetrics` tool
Explain the meaning of this value, not just its name.
start
start date/time in ISO 8601 format (e.g., '2025-10-01T00:00:00')
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end
end date/time in ISO 8601 format (e.g., '2025-10-02T00:00:00')
Clear enough to supply this argument.
aggregation
aggregation method: 'average', 'median', or 'percentile'. If not specified, uses the metric's default aggregation method
Resolve the mismatch between this description and its schema constraints.
percentile
percentile value (0-100) - required when aggregation is 'percentile'
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › items › name
category name to filter on
Explain the meaning of this value, not just its name.
filters › items › operator
the filter operator
Clear enough to supply this argument.
filters › items › value
the value to filter by. For 'in' operator, provide an array of values
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared