Skip to main content
Glama

Get sales report

get_sales_report
Read-only

Download App Store sales and trends reports as tab-separated text, including units, proceeds, and subscriptions, to analyze app performance by date and frequency.

Instructions

Downloads a Sales and Trends report (units, proceeds, subscriptions) as tab-separated text. Daily reports are usually available the following day. Needs an API key with the Finance or Sales role.

Input Schema

NameRequiredDescriptionDefault
maxRowsNoMaximum report rows to return.
versionNoReport format version, e.g. 1_0 or 1_3. Some report types require a specific version.
frequencyNoDAILY
reportDateNoReport date: YYYY-MM-DD for DAILY and WEEKLY (week ending Sunday), YYYY-MM for MONTHLY, YYYY for YEARLY. Defaults to the latest available.
reportTypeNoSALES
vendorNumberNoVendor number, shown in App Store Connect under Payments and Financial Reports (top left). Omit it to use the one configured in APP_STORE_CONNECT_VENDOR_NUMBER.
reportSubTypeNoSUMMARY

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.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=true and openWorldHint=true, so the safety profile is covered; the description adds genuinely new behavior: the TSV output format, the one-day data latency, and the required auth role. It omits rate limits and what happens when maxRows truncates the result, 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?

Three short sentences, front-loaded with what the tool produces and followed by the two operational facts (freshness, auth). Nothing is wasted and nothing is buried.

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 seven-parameter, no-output-schema read tool, the description covers output format, latency, and authorization, which is the bulk of what an agent needs. The remaining hole is sibling disambiguation against get_finance_report and truncation behavior via maxRows.

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 coverage is 57% and the seven parameters are largely self-documenting through enums and per-field descriptions. The description does not add meaning beyond the schema — it never mentions vendorNumber's env-var fallback, version selection, or how reportType/reportSubType interact — so it sits at the baseline.

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 ('Downloads') and resource ('Sales and Trends report'), and even names the contents (units, proceeds, subscriptions) and the serialization format (tab-separated text). The only gap is that it never distinguishes itself from the sibling get_finance_report, which an agent could easily confuse with this tool.

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?

It gives operational context an agent needs before calling — daily reports land the following day, and an API key with Finance or Sales role is required — but there is no statement of when to pick this over get_finance_report, nor any exclusions or preconditions about report type/version combinations.

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