Skip to main content
Glama
erayendes

Heimdall App Store Connect MCP

beta_testers__apps__list

Read-onlyIdempotent

Retrieve all apps associated with a specific beta tester using the tester ID. Control results with pagination limits and selected app fields.

Instructions

List the apps belonging to a beta tester. [GET /v1/betaTesters/{id}/apps]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesID from the matching list call.
limitNomaximum resources per page
next_urlNoAbsolute links.next URL from a previous response.
fields_appsNothe fields to include for returned resources of type apps Return only these attributes. A full row set can exceed 200 KB.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.4.2
    • changedInput schema / properties / fields_apps / items / enum
      Previous value: -[
      -  "accessibilityUrl",
      -  "name",
      -  "bundleId",
      -  "sku",
      -  "primaryLocale",
      -  "isOrEverWasMadeForKids",
      -  "subscriptionStatusUrl",
      -  "subscriptionStatusUrlVersion",
      -  "subscriptionStatusUrlForSandbox",
      -  "subscriptionStatusUrlVersionForSandbox",
      -  "contentRightsDeclaration",
      -  "streamlinedPurchasingEnabled",
      -  "accessibilityDeclarations",
      -  "appEncryptionDeclarations",
      -  "appStoreIcon",
      -  "ciProduct",
      -  "betaTesters",
      -  "betaGroups",
      -  "appStoreVersions",
      -  "appTags",
      -  "preReleaseVersions",
      -  "betaAppLocalizations",
      -  "builds",
      -  "betaLicenseAgreement",
      -  "betaAppReviewDetail",
      -  "appInfos",
      -  "appClips",
      -  "appPricePoints",
      -  "endUserLicenseAgreement",
      -  "appPriceSchedule",
      -  "appAvailabilityV2",
      -  "inAppPurchases",
      -  "subscriptionGroups",
      -  "gameCenterEnabledVersions",
      -  "perfPowerMetrics",
      -  "appCustomProductPages",
      -  "inAppPurchasesV2",
      -  "promotedPurchases",
      -  "appEvents",
      -  "reviewSubmissions"
      -]New value: +[
      +  "accessibilityUrl",
      +  "name",
      +  "bundleId",
      +  "sku",
      +  "primaryLocale",
      +  "isOrEverWasMadeForKids",
      +  "subscriptionStatusUrl",
      +  "subscriptionStatusUrlVersion",
      +  "subscriptionStatusUrlForSandbox",
      +  "subscriptionStatusUrlVersionForSandbox",
      +  "contentRightsDeclaration",
      +  "streamlinedPurchasingEnabled",
      +  "accessibilityDeclarations",
      +  "appEncryptionDeclarations",
      +  "appStoreIcon",
      +  "ciProduct",
      +  "betaTesters",
      +  "betaGroups",
      +  "appStoreVersions",
      +  "appTags",
      +  "preReleaseVersions",
      +  "betaAppLocalizations",
      +  "builds",
      +  "betaLicenseAgreement",
      +  "betaAppReviewDetail",
      +  "appInfos",
      +  "appClips",
      +  "appPricePoints",
      +  "endUserLicenseAgreement",
      +  "appPriceSchedule",
      +  "appAvailabilityV2",
      +  "inAppPurchases",
      +  "subscriptionGroups",
      +  "gameCenterEnabledVersions",
      +  "performanceOverviews",
      +  "perfPowerMetrics",
      +  "appCustomProductPages",
      +  "inAppPurchasesV2",
      +  "promotedPurchases",
      +  "appEvents"
      +]
  2. Changed1 schema field changedv2.0.1
    • addedInput schema / properties / id / description
      Added value: +"ID from the matching list call."
  3. Changed3 schema fields changedv2.0.0
    • addedInput schema / properties / fields_apps
      Added value: +{
      +  "description": "the fields to include for returned resources of type apps Return only these attributes. A full row set can exceed 200 KB.",
      +  "items": {
      +    "enum": [
      +      "accessibilityUrl",
      +      "name",
      +      "bundleId",
      +      "sku",
      +      "primaryLocale",
      +      "isOrEverWasMadeForKids",
      +      "subscriptionStatusUrl",
      +      "subscriptionStatusUrlVersion",
      +      "subscriptionStatusUrlForSandbox",
      +      "subscriptionStatusUrlVersionForSandbox",
      +      "contentRightsDeclaration",
      +      "streamlinedPurchasingEnabled",
      +      "accessibilityDeclarations",
      +      "appEncryptionDeclarations",
      +      "appStoreIcon",
      +      "ciProduct",
      +      "betaTesters",
      +      "betaGroups",
      +      "appStoreVersions",
      +      "appTags",
      +      "preReleaseVersions",
      +      "betaAppLocalizations",
      +      "builds",
      +      "betaLicenseAgreement",
      +      "betaAppReviewDetail",
      +      "appInfos",
      +      "appClips",
      +      "appPricePoints",
      +      "endUserLicenseAgreement",
      +      "appPriceSchedule",
      +      "appAvailabilityV2",
      +      "inAppPurchases",
      +      "subscriptionGroups",
      +      "gameCenterEnabledVersions",
      +      "perfPowerMetrics",
      +      "appCustomProductPages",
      +      "inAppPurchasesV2",
      +      "promotedPurchases",
      +      "appEvents",
      +      "reviewSubmissions"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / id / description
      Removed value: -"Resource identifier."
    • changedInput schema / properties / next_url / description
      Previous value: -"Absolute `links.next` URL from a previous response, to fetch the next page. When set, all other parameters are ignored."New value: +"Absolute links.next URL from a previous response."
  4. First observedv1.3.0

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description only adds the REST endpoint path, which modestly signals a relational read keyed on tester id but adds no paging, auth, or return-shape context.

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?

A single front-loaded sentence plus the endpoint reference. No filler, no redundancy; the scope is established immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple filtered-list tool whose annotations cover safety and whose schema covers all parameters, but it provides no output-shape or pagination context and no guidance on the tester-id relationship beyond the endpoint path.

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 id, limit, next_url, and fields_apps are already documented in the schema. The description adds nothing beyond the schema, which is the baseline-3 case.

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 (List) and resource (apps) scoped to a parent (belonging to a beta tester), which distinguishes it from the general apps__list. No explicit sibling naming, but the scoping phrase makes the relationship clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance. It doesn't mention alternatives such as apps__list (all apps) or the complementary beta_testers__apps__remove, so the agent must infer when this endpoint is the right one.

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