Skip to main content
Glama
erayendes

Heimdall App Store Connect MCP

storekit__get_subscription_statuses

Read-only

Get the status of every subscription a customer holds, including expiry date, auto-renew state, billing retry and grace period.

Instructions

Get the status of every subscription a customer holds, including expiry date, auto-renew state, billing retry and grace period. Apple returns those fields inside SIGNED payloads (JWS strings) on each item, so verify and decode them before reading. Use this for entitlement checks. [App Store Server API]

Input Schema

NameRequiredDescriptionDefault
appNoWhich app: its name, bundle ID or Apple ID. Optional when the account has one app or ASC_BUNDLE_ID is set.
statusNoFilter by status: 1=Active, 2=Expired, 3=BillingRetry, 4=GracePeriod, 5=Revoked.
environmentNoWhich App Store environment to query. Defaults to the server-configured environment (ASC_ENVIRONMENT). A transaction ID belongs to one environment only.
transaction_idYesAny transaction ID belonging to the customer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.6.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare readOnlyHint, so the description carries most of the burden. It adds genuinely useful behavior: Apple returns the fields inside SIGNED JWS payloads that must be verified and decoded before reading. It does not mention rate limits or environment-side effects, but the payload caveat is a real value-add.

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 the core purpose, then the critical JWS caveat, then the use case. Every sentence earns its place with no filler.

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?

No output schema exists, and the description compensates by naming the returned fields and the JWS decoding requirement. An agent has enough to call it correctly, though it doesn't clarify how results relate to check_entitlement.

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 description coverage is 100%, so the schema already documents app, status codes, environment, and transaction_id. The description adds no parameter-level syntax or format detail, making the baseline 3 the correct ceiling.

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 (get status of every subscription a customer holds) and enumerates the returned fields, which is more than a name restatement. It does not cleanly separate itself from the sibling storekit__check_entitlement, which targets the same entitlement scenario.

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?

'Use this for entitlement checks' gives some context, but there is no when-not guidance or explicit routing to alternatives. It arguably overlaps with the sibling storekit__check_entitlement, and the description does not resolve that ambiguity.

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

Deploy Server

Other Tools