Skip to main content
Glama
erayendes

Heimdall App Store Connect MCP

sales_reports__list

Read-onlyIdempotent

Download sales or subscription reports as gzipped TSV files from App Store Connect. Optionally parse into structured rows for easy analysis.

Instructions

Download a sales or subscription report as gzipped TSV. Requires ASC_VENDOR_NUMBER and a Finance or Sales role on the API key. [GET /v1/salesReports] Set parse=true to receive decoded rows instead of the raw gzipped blob.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
parseNoWhen true, gunzip and decode the TSV payload into structured rows ({ headers, rows, totalRows, truncated }) instead of returning the raw base64 blob. Defaults to false — unparsed, byte-for-byte identical to the raw response.
max_rowsNoMaximum number of data rows to include when parse=true (default 200, hard cap 1000). Ignored when parse is not true. Use truncated/totalRows in the response to tell whether more rows exist.
next_urlNoAbsolute links.next URL from a previous response.
filter_versionNofilter by attribute 'version'
filter_frequencyYesfilter by attribute 'frequency'
filter_reportDateNofilter by attribute 'reportDate'
filter_reportTypeYesfilter by attribute 'reportType'
filter_vendorNumberYesfilter by attribute 'vendorNumber'
filter_reportSubTypeYesfilter by attribute 'reportSubType'
Behavior5/5

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

Beyond the readOnly/destructive annotations (which already indicate safety), the description adds valuable behavioral context: it requires specific authentication roles, returns data as gzipped TSV, and explains the parse=true option to decode the blob into rows. It also notes the raw response behavior. No contradictions with annotations.

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 concise sentences pack the essential information: purpose, output format, auth prerequisites, endpoint, and the key parse option. No filler or redundant details; every sentence earns its place.

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?

The description combined with the rich schema covers the core operational details: what the tool does, required auth, output format, and the decoding option. Pagination via next_url is documented in the schema. It doesn't cover potential edge cases like rate limits or error handling, but for a read-only report downloader, the information is sufficiently 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?

The schema already provides complete descriptions for all 9 parameters (100% coverage), so the description doesn't need to elaborate. It does reinforce the parse and max_rows semantics, but adds little beyond the schema. The baseline of 3 is appropriate given the strong schema coverage.

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?

The description begins with a specific verb 'Download' and clearly identifies the resource as 'a sales or subscription report as gzipped TSV', which is distinct enough from sibling finance report tools. The included endpoint '[GET /v1/salesReports]' further pinpoints the operation.

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?

It clearly states prerequisites (ASC_VENDOR_NUMBER and Finance/Sales role) and provides the context for when to use it (downloading sales/subscription reports). However, it does not explicitly name alternative sibling tools like finance_reports__list or state when not to use this tool, so it misses the 'alternatives' component.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/erayendes/app-store-connect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server