Skip to main content
Glama

List builds

list_builds
Read-only

Retrieve an app’s uploaded builds, newest first, with version, build number, processing and TestFlight review states; exclude expired builds unless requested.

Instructions

Lists uploaded builds, newest first, with build number, marketing version, processing state and TestFlight review states. Expired builds are left out unless includeExpired is true.

Input Schema

NameRequiredDescriptionDefault
appIdNoApp ID (from list_apps).
limitNoMaximum number of items to return (1-200).
cursorNoThe nextCursor value from a previous call of this tool, to fetch the next page.
platformNoPlatform: IOS, MAC_OS, TV_OS or VISION_OS.
buildNumberNoOnly builds with this build number (CFBundleVersion), e.g. 42.
includeExpiredNo
processingStateNo
marketingVersionNoOnly builds for this version number, e.g. 2.1.0.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, openWorldHint=true), and the description adds real behavior on top: results are ordered newest first and expired builds are filtered out unless includeExpired is true. That default-filter behavior is exactly the kind of detail annotations don't convey.

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?

Two sentences, both earning their place: the first covers output content and ordering, the second covers the one non-obvious filtering default. Front-loaded 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?

For an 8-parameter, no-output-schema list tool, the description tells the agent what comes back, in what order, and how expired builds behave by default. Pagination and page size are only covered by the schema, which is acceptable given cursor and limit have their own descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description compensates for the notable gap by explaining includeExpired semantics — that expired builds are excluded otherwise. It also frames the returned fields, though it adds nothing about limit, cursor, or the enum filters beyond what the schema documents.

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 ("Lists uploaded builds") plus the exact fields returned (build number, marketing version, processing state, TestFlight review state) and the sort order. It clearly distinguishes a list operation from the sibling get_build, though it never names an alternative explicitly.

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?

Usage is only implied — the appId parameter and the filters suggest when you would reach for it, and the expired-builds note hints at a default scope. There is no explicit when-to-use / when-not-to-use statement or reference to siblings such as get_build or list_app_store_versions.

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