testflight-mcp
Server Quality Checklist
Latest release: v0.3.1
- Disambiguation4/5
Tool names clearly identify their target resources and actions, so most tools can be selected without ambiguity. The only real overlap is between list_beta_testers and list_group_testers, which seem to serve nearly the same purpose when listing testers for a group.
Naming Consistency5/5All tools use lowercase snake_case with a consistent verb_prefix pattern such as list_, get_, create_, and download_. Even long compound resource names follow a uniform, predictable structure.
Tool Count2/541 tools is well over the comfortable range and makes the server feel bloated. While the domain is broad, the count pushes the set from navigable into likely-overwhelming territory for an agent.
Completeness3/5Read-only coverage is extensive, but the server provides almost no write operations beyond creating an analytics report request. It lacks lifecycle operations for beta groups, testers, app store versions, and other resources, leaving obvious management gaps for a TestFlight-focused server.
Average 3.9/5 across 41 of 41 tools scored. Lowest: 2.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 11 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only discloses the output format (CSV, decompressed from gzip). It does not mention side effects, authorization needs, rate limits, or error behavior. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with one sentence, but it contains an inaccuracy. While short, the misinformation detracts from its value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the output format (CSV, decompressed from gzip) but does not detail the CSV structure or fields. Given no output schema, more context on the return value would be helpful. The required parameter inaccuracy also reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds a misleading statement about required parameters (vendor_number is not required) and does not add any new meaning beyond the schema for the other parameters. It actually degrades understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states it downloads a financial report as CSV text, which is clear. However, it incorrectly states that a vendor number is required, which contradicts the schema where only report_date and region_code are required. This misstatement reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like download_sales_report. The description does not provide any context for choosing this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the output format and decompression but does not mention side effects (likely read-only), authorization requirements, rate limits, or error conditions. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action and output. Every sentence adds necessary information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema, the description covers the output format and a key prerequisite. However, it omits default parameter values, error handling, and does not fully describe the return type (e.g., size or pagination). Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for all 6 parameters. The description adds value by explaining the vendor_number parameter's behavior (overrides environment variable) and the output format. However, it does not clarify default values or other parameter meanings beyond the schema. Meets baseline with minor addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Download', the resource 'Sales and Trends report', and the output format 'CSV text (decompressed from gzip)'. It distinguishes from generic download tools but could be more precise about the report scope versus sibling tools like download_finance_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite (vendor number) but lacks guidance on when to use this tool versus alternatives such as create_analytics_report_request or download_finance_report. No explicit when-not or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like error handling or pagination, but it only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no extraneous words, appropriate for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal; it covers the basic purpose but lacks details on return format, pagination beyond the limit parameter, or error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema provides for group_id and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists beta testers for a specific beta group using a specific verb and resource, distinguishing it from similar tools like list_beta_testers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_beta_testers), nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the tool lists versions and supports filters, but does not disclose pagination behavior (though the limit parameter is in the schema), read-only nature, or potential limitations (e.g., data freshness, ordering). The description is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and then lists filters. It is concise, with no superfluous words, and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (5 parameters, no output schema), the description covers the core functionality and filters. It names the key fields returned, but an explicit listing of return fields or guidance on the 'release type' field would improve completeness. Overall, it is mostly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions already define each parameter. The tool description merely restates the filtering capability without adding semantic nuances (e.g., format for version string, case sensitivity for state). No additional value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists App Store versions for an app and enumerates the fields returned (version string, platform, App Store state, release type). It mentions filtering capabilities but does not explicitly differentiate from sibling list tools, though the context of app-specific versions is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates filtering by platform, version string, or App Store state, but provides no guidance on when to use this tool versus other list tools (e.g., list_apps, list_builds). There is no mention of prerequisites, context, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only describes what the tool lists without disclosing behavioral traits such as authentication requirements, rate limits, or side effects. As a read-only listing operation, the lack of explicit safety cues is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and resource and includes specific examples of the data returned. Every word is informative, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description provides a useful list of fields but does not clarify the response format (e.g., an array of objects) or pagination behavior. It adequately covers the core functionality but lacks full completeness for an agent needing to parse results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds context by listing the fields included in the localizations, but it does not elaborate on parameter meaning beyond what the schema provides. The 'limit' and 'version_id' parameters are adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists per-locale localizations for an App Store version, specifying the verb 'list' and the resource 'app store version localizations'. It also enumerates the included fields (description, keywords, what's new, etc.), making the purpose distinct from sibling tools like 'get_app_store_version_localization'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys usage context by requiring a 'version_id' from 'list_app_store_versions' (as noted in the schema), but it does not explicitly state when to use this tool versus alternatives like 'get_app_store_version_localization' for a single localization. No exclusion criteria or examples are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions returned fields. It does not disclose that the tool is read-only, any pagination behavior (despite the limit parameter), or potential side effects or prerequisites. For a tool with no annotations, the description carries the full burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and resource, followed by parenthetical details. Every word is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description provides minimal context. It explains the output fields but does not mention pagination, the default limit of 100, or authentication requirements. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description adds no additional meaning or context for the parameters beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (TestFlight beta groups for an app), and specifies the returned fields (name, internal/external, public link, feedback enabled). This effectively distinguishes it from sibling tools like list_builds or list_apps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing beta groups for an app but does not explicitly state when to use this tool vs alternatives like list_beta_testers or list_group_testers. No when-not-to-use conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Describes read-only listing but lacks details on pagination, sorting, behavior with no filters, or potential side effects. Limit parameter hints at pagination but not explicitly mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with key information front-loaded. Parenthetical list of fields keeps it compact. No superfluous words, but could be slightly more structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and straightforward listing task, description adequately covers what is returned and how to filter. Lacks details on pagination or sorting, but acceptable for a simple list tool with high schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for all 4 parameters, so baseline is 3. Description adds marginal value by clarifying that filters can be combined ('Filter by app, beta group and/or email'), but does not provide additional syntax or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List', resource 'TestFlight beta testers', and specifies returned fields (name, email, invite type, state). Mentions filtering by app, beta group, and/or email, distinguishing it from sibling tools like list_beta_groups or list_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing testers with optional filters, but no explicit when-to-use or when-not-to-use guidance. No reference to alternatives like list_group_testers, which could be more specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds minimal behavioral context beyond the read operation. It does not disclose error handling (e.g., if app not found) or other behavioral traits, but for a simple get-by-ID, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information. It is concise and front-loaded, though it could be slightly more structured by separating the identifiers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter and no output schema, the description provides enough context. However, it omits mention of return values, error cases, or any special behavior, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes app_id as 'App Store Connect app ID', but the tool description adds that the ID can also be name, bundleId, sku, or primaryLocale. This adds significant meaning beyond the schema, improving parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and resource 'app', and specifies the identifiers (name, bundleId, sku, primaryLocale) used to look up the app. This clearly distinguishes it from siblings like list_apps or get_build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool vs alternatives, nor does it mention exclusions or alternative tools. The user is left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return fields and the purpose of the id, but does not mention pagination, ordering, or behavior with no parameters (e.g., returns all apps? limit defaults to 100?). Some behavioral context is added beyond the schema but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous words. The first sentence front-loads the action ('List') and resource ('apps'), and the second sentence provides key guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description helpfully lists the returned fields. The parameters are fully described in the schema. It is missing information about error handling, authentication, and whether the list is ordered, but for a list tool with optional parameters, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add new information about the parameters (limit and bundle_id) beyond what the schema already provides, but it does add context about the return value (id usage). Therefore, parameter semantics are adequately supported by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists apps and specifies the returned fields (id, name, bundleId, sku, primaryLocale). It implies its role as a data source for other tools by mentioning using the returned id as app_id, but does not explicitly differentiate from sibling tools like get_app (which retrieves a single app) or list_builds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the returned id for other tools, implying when to use it (to get app IDs). However, it does not specify when not to use it or mention alternatives (e.g., use get_app for detailed info on a specific app). Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states that the tool lists devices with specific fields. It does not disclose idempotency, auth requirements, rate limits, pagination, or default ordering. For a simple list tool, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that starts with the core action ('List registered devices'), then enumerates fields and filter options. Every part adds value; no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the return fields and filter parameters adequately. It does not mention ordering, default limit, or error conditions, but for a simple list tool with clear schema, this is mostly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds that platform and status are filters, which is already implied by their enum values. It does not provide additional semantics beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists registered devices and enumerates the fields returned (name, platform, UDID, class, model, status). This distinguishes it from sibling list_* tools, which list other resources. However, it does not explicitly contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions filtering by platform or status, providing direct guidance on parameter usage. It does not specify when not to use the tool, but among sibling tools, no direct alternative for device listing exists, so explicit exclusions are less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits beyond the obvious fetch operation. No mention of authentication, rate limits, or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key action and resource, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-ID retrieval tool with no output schema, but lacks details on response format or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description adds value by listing the fields returned, providing context beyond the parameter name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', resource 'App Store version localization', and enumerates specific fields (description, keywords, what's new, promotional text, URLs). Differentiates from sibling list 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives given, though purpose is specific enough that usage context is implicit via sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the URL resolution step, which adds helpful context. However, it does not disclose potential limits like URL expiration, required authentication, or error handling (e.g., what happens if the submission doesn't exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the action. Every word adds value; no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic workflow but omits details about the output format, size limits, error cases, or potential delays. Given no output schema and no annotations, more completeness is expected for a tool that performs a fetch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single parameter (feedback_id) with a basic description. The tool description adds important context by explaining that the tool resolves a temporary URL and fetches the log content, clarifying the parameter's role beyond just 'Crash feedback submission ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'download', the resource 'crash log text', and specifies the context 'for a crash feedback submission'. It also mentions the internal step of resolving a temporary URL, making the tool's purpose unambiguous and distinct from siblings like get_crash_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as get_crash_feedback or list_crash_feedback. It only implies usage when a crash feedback submission ID is available, but does not provide exclusions or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the transparency burden. It discloses what the response will meaningfully include and implies a read-only operation through 'Get'. However, it does not cover error behavior, permissions, or whether the returned fields are always present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that says exactly what the tool does and what it returns. There is no redundant wording or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
At a single-parameter retrieval tool, the description tells the agent the key purpose and highlight output fields, with enough specificity to support calling it. The lack of an output schema and annotations weakens full completeness, but the core usage is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents build_id as the required ID. The description adds no further meaning to the single parameter, which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a specific resource ('a single TestFlight build by ID'), and two distinct data aspects it returns (pre-release version and distribution state). This cleanly differentiates it from sibling list tools like list_builds and get_build_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving one specific build when its ID is known, but it does not explicitly state when to prefer it over alternatives or when not to use it. The context is clear enough for basic dispatch, but no exclusion or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It correctly suggests a read operation ('List') but does not disclose pagination, rate limits, or other important behaviors. The description is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words or repetition. It front-loads the core purpose and fits within a single line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description partially fills the gap by naming expected response fields (name, category, instances). However, it does not clarify pagination behavior despite the 'limit' parameter. For a list tool, this is fairly complete but could be more explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds little beyond the schema: it rephrases the 'category' filter and mentions output fields (name, category, instances) which are not parameters. No additional semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'analytics reports available for a report request', and mentions optional filtering. It distinguishes the tool from sibling list tools (e.g., list_analytics_report_segments) by specifying the context of a report request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions an optional filter by category but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does disclose 'Newest first' ordering and the expected return fields, but it does not explicitly state whether this is a read-only operation, mention side effects, or describe pagination behavior beyond the parameter-level default limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that leads with the action and resource, then packs the return contents and ordering into a parenthetical list. There is no redundant or speculative prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description usefully enumerates the expected fields and the sort order, which covers the main return context. It lacks an explanation of pagination or the default result count, but the limit parameter description already communicates the default, so the residual gap is small for a straightforward list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description including limits, defaults, and the product_id vs workflow_id relationship. The tool description adds only a high-level 'product or workflow' framing, so the schema does most of the semantic work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('List Xcode Cloud build runs') and scopes it to a product or workflow. The detailed field list and 'Newest first' ordering make it clearly distinct from sibling tools like list_ci_build_actions, list_ci_issues, and list_ci_artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a product or a workflow' provides implied context for when to use the tool and how filtering should work. However, it does not explicitly explain when to prefer this tool over siblings such as list_ci_build_actions or list_ci_artifacts, so usage guidance is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source for behavioral disclosure. It states the tool lists provisioning profiles with specific attributes and supports filtering. As a read-only listing operation, there is no contradiction or missing critical behavior, but it does not mention potential side effects, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that packs all essential information: the action (list), the resource (provisioning profiles), the returned data, and the filter option. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, good schema coverage, and no output schema, the description adequately covers basic usage. It lists returned attributes and the filter. Potential gaps include pagination behavior beyond the limit parameter or how results are ordered, but these are minor. A score of 4 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters thoroughly. The description merely echoes the filter capability without adding new meaning or usage nuances. Baseline 3 applies as the description adds no extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists provisioning profiles and enumerates the attributes returned (name, platform, type, state, UUID, expiry), with bundle ID. It also specifies filtering by profile state. This distinguishes it from sibling tools like list_apps or list_builds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes filtering by profile state, providing some usage context. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., when to use list_profiles vs list_certificates or list_devices). The context from sibling tools helps but is not explicit in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the shape of the return data in depth, including the exact betaReviewState enum values and the fact that 'What to Test' notes come per locale. It stops short of acknowledging edge cases, such as builds that have no review submission yet or the meaning of a null internal/external state, 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The main action is front-loaded in the first sentence, and the use case is compactly delivered in the second sentence. The colon-delimited enumeration is dense but earns its place because there is no output schema to otherwise convey the response anatomy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter GET with no output schema and no annotations, the description is largely self-sufficient: it names the backing domain resources (buildBetaDetail, beta app review submission), lists the statuses a user would encounter, and explains why this data matters. It could round out with notes on absence semantics (e.g., what happens when no submission/review exists), which is the main gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single parameter build_id is already described as 'Build ID (from list_builds)'. The tool description contributes nothing further about the format, source, of the parameter's semantics, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb + resource, 'Get the TestFlight distribution status of a build', and enumerates exactly what data is returned: buildBetaDetail, betaReviewState enum values, submitted date, and per-locale 'What to Test' notes. However, it does not explicitly differentiate itself from overlapping siblings such as get_build or get_beta_app_review_detail, so it stops one notch short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence provides a clear use case — 'Use this to find out why a build is not yet available to external testers' — which gives an agent a solid contextual trigger. It does not name alternatives or state when NOT to use this tool over get_build or get_beta_app_review_detail, so it is not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description covers return content adequately but does not disclose behavioral traits such as read-only nature, authentication requirements, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core purpose, no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists all key returned fields (comment, device metadata, tester, build info, screenshot URLs) and the optional inline image, providing a complete picture of what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions already cover the two parameters fully (100% coverage); the tool description adds no additional semantic value beyond restating the download_screenshot option.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get a single screenshot feedback submission by ID', specifying the resource and action. Distinguishes itself from sibling list_screenshot_feedback which returns multiple submissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when you have a feedback ID and need detailed information, but provides no explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It signals a read-only 'List' operation and enumerates the returned fields and statuses, which is useful. However, it does not explicitly state side-effect characteristics (pagination, sorting, or whether COMPLETE submissions are also included) beyond the schema, leaving some behavioral assumptions implied rather than confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry substantial specific information with a clear frontload of the core purpose. The status enum list is a bit long, but it serves the agent by clarifying output content; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with 4 params and no output schema, the description covers the required output semantics and the practical use case. It doesn't mention pagination or explicitly exclude alternative tools for version-specific status checks, but an agent has enough to call this correctly with app_id from the required schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3 even without extra parameter commentary. The description mentions status values and item types, which slightly enriches the `state` and `platform` semantics, but it does not add meaning beyond what the schema already describes with field-level comments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pairing: 'List App Store review submissions for an app.' It then clarifies exactly what the list contains: submission state, submission date, App Store version, and contained items (version, in-app purchases, product pages, experiments). This clearly distinguishes it from sibling tools such as list_app_store_versions and list_customer_reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'Use this to see what is currently in App Review and what is blocking it.' It doesn't formally enumerate when-not-to-use and alternatives to other sibling tools, but the context is clear enough for an agent to choose this when it needs App Review submission state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses that the tool returns engagement data and explains grouping, but it does not mention pagination, limit default, handling of missing IDs, or any side-effect/no-side-effect guarantee. The 'get' prefix makes a read operation likely, but full behavioral disclosure is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence establishes the metrics and grouping; the second specifies the required input choice and optional filters. Everything present earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key inputs, grouping, and metric content, and without an output schema it still gives a usable mental model of the result (per-tester events counts). It does, however, leave the exact shape of the returns and any validation behavior ambiguous, so there is slight room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds only the relationship between app_id and group_id plus the optional tester/period pattern, which is useful but not a major addition beyond the well-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Get TestFlight tester engagement metrics' and names the actual fields (session count, crash count, feedback count). It also states the grouping ('grouped by beta tester') and scope (app or beta group), which differentiates it from generic metric tools like get_build_usage_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: this is the tool for tester engagement metrics, with explicit instructions to pass either app_id or group_id and optionally restrict by tester and period. It stops short of naming alternatives or exclusion conditions, but the applicable usage is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does explain that this returns aggregate counts over a reported date range and positions it as aggregate rather than raw event data. But it leaves ambiguity around what 'reported date range' means and does not describe pagination, output shape, or whether the tool requires specific analytics permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the core purpose and metric list front-loaded, followed immediately by a practical use case. Every sentence earns its place and there is no redundant repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no nested output, the description names the metric fields and the context in which they should be consumed. The main remaining gap is the vague 'reported date range' and the absence of any mention of how 'limit' affects the returned series, but the description is still sufficient for most selection purposes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds no new meaning about the 'limit' parameter or its relationship to the returned data points, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), the resource (TestFlight usage metrics for a build), and enumerates the exact metrics returned: install, session, crash, invite, and feedback counts. This makes the tool easy to distinguish from sibling tools focused on raw feedback, diagnostics, or tester-level metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives a concrete use case: 'Use it to turn raw feedback and crash counts into rates.' This provides clear context for when the tool is useful. However, it does not explicitly name sibling alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It describes the return content but doesn't explicitly state it's a read-only operation or mention any side effects, rate limits, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first one is front-loaded with purpose and response details, second one provides a direct action alternative. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description outlines return fields adequately. Mentions crash log reference linking to sibling tool. Missing error handling or edge cases, but sufficient for a single-fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description in schema ('Crash feedback submission ID') is clear. The tool description adds context about what the ID retrieves, but does not add new constraints or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get' and the resource 'a single crash feedback submission by ID', listing the components of the response. It distinguishes itself from sibling tools like 'list_crash_feedback' and 'get_crash_log'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance to use 'get_crash_log' for downloading the crash log text, but does not elaborate on when not to use this tool or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It does disclose a key behavioral trait: call stack trees are stripped by default for size, and toggling include_call_stacks to true returns symbolicated stacks with blame frames. However, it does not mention error behavior, authorization needs, or what happens when an invalid signature_id is given, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff: the first states the core purpose and the output fields, the second explains the default behavior and the opt-in flag. It is front-loaded and every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does a solid job describing what the return contains (metadata fields, Apple insights with documentation links) and the call stack behavior. The few missing pieces, such as error handling or pagination notes, are minor for a straightforward fetch tool whose parameters are otherwise fully described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful value for include_call_stacks by explaining why it is stripped by default and that setting it to true returns 'symbolicated call stacks with the blame frames', which exceeds the schema's brief description. It does not add much for limit or signature_id, but those are already well-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb–resource pair ('Get… diagnostic logs for a diagnostic signature') and details the returned content (per-log metadata, Apple's insights, documentation links). It distinguishes the tool from siblings like list_diagnostic_signatures (which lists signatures) and get_crash_log (which is crash-specific), without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context—call it after you have a diagnostic signature—but does not explicitly state when to choose this tool over alternatives, such as get_crash_log or get_screenshot_feedback. The context is clear but lacks explicit exclusions or differentiations, so it is adequate but not strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that segments have presigned URLs, size, and checksum, and that one can pass a URL to download. However, it does not mention pagination behavior (limit parameter suggests optional limit), default order, or error conditions. It adds value beyond being just 'list segments' but lacks some behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence states the action and output attributes, second sentence gives a clear usage hint for the next step. Perfectly concise for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the main output attributes (presigned URL, size, checksum). It also references the sibling download tool. It could be more complete by mentioning pagination outcome (e.g., returns a list that may be truncated due to limit) or error scenarios, but for a list tool of low complexity, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—both parameters have descriptions that explain their meaning (report_id comes from list_analytics_reports, limit has default and max). The tool description does not add additional parameter-level context, so it meets the baseline for high coverage. No extra value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'list' and clearly states the resource 'downloadable segments of an analytics report'. It distinguishes from sibling tools like list_analytics_reports (which lists reports) and download_analytics_report_segment (which downloads a segment) by mentioning presigned URLs and the next step to download.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells when to use: to see segments of a report, then pass a segment URL to the download tool. It does not explicitly state when not to use alternatives, but the purpose is clear given sibling names. It provides a direct pointer to the related tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must suffice. It correctly implies a read-only list operation, but does not mention pagination, rate limits, or default behavior for the limit parameter. The limit schema hints at pagination but is not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the purpose, return fields, and filtering options without unnecessary words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with optional filters, the description is largely complete. It mentions the return fields. The only missing aspects are default ordering and explicit pagination handling, but the limit parameter covers this implicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the parameters. The description adds the list of return fields (identifier, name, platform, seed ID) which is not in the schema, providing some extra context, but it repeats the filtering capability already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List registered bundle IDs' with specific fields (identifier, name, platform, seed ID) and mentions filtering by identifier or platform, making it distinct from sibling tools that deal with other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (when listing bundle IDs) and mentions filtering options, but does not explicitly exclude cases or compare to alternatives. However, the sibling tools are for different resources, so confusion is unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of indicating behavior. 'List' signals a read-only operation, and naming the returned metadata fields clarifies that the tool returns artifact metadata rather than the artifact content itself. It does not discuss authorization or pagination, but these are less critical for a simple listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the action and resource, then gives useful examples and return fields. Every phrase contributes meaning with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no output schema, the description appropriately documents the main return fields and artifact types. It slightly under-explains the overall CI workflow, but the schema and sibling tool names provide enough surrounding context for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both build_action_id and limit are already well documented in the schema. The description does not add extra parameter-level meaning but also does not need to, given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List the artifacts a build action produced', and adds concrete return fields (file name, type, size, download URL). This clearly separates it from sibling CI tools like list_ci_build_actions, list_ci_issues, and list_ci_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after a build action has been identified, and the schema reinforces that build_action_id comes from list_ci_build_actions. However, the prose does not explicitly state when to use this tool versus alternatives, nor does it describe what to do if no artifacts exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining expected behavior. It does disclose read-style behavior ('List') and describes the kind of data returned, which is useful. However, it does not mention important behavioral details such as default pagination, ordering, or what happens when a build has zero actions, leaving some room for inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two crisp sentences with no filler. The first sentence states the resource and output contents; the second sentence provides the crucial integration guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with a fully documented schema, the description is nearly complete. It explains what the tool returns and explicitly names the downstream tools for the returned action id. It does not elaborate on return shape or result paging, but these are minor given the simple list operation and the schema's limit parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the heavy lifting is already done by the schema. The description adds a small semantic link by mentioning the returned action id chains into sibling tools, but it does not add new meaning to either 'build_run_id' or 'limit' beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the actions of an Xcode Cloud build run and enumerates the action types (build, test, analyze, archive). It also specifies the kind of information returned (execution progress, completion status, issue counts), distinguishing it from sibling tools that list issues, artifacts, or build runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it works from a build_run_id (sourced from list_ci_build_runs) and it feeds the returned action id into list_ci_issues and list_ci_artifacts. It does not explicitly state when not to use this tool or contrast it with alternatives, but the downstream dependency is clearly articulated, giving an agent enough guidance for correct sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining behavior. It clearly states that it returns issues with messages and source locations, which is a useful behavioral disclosure. However, it doesn't mention pagination behavior, possible absence of results, or any additional response traits beyond the list contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core behavior is front-loaded, and the practical when-to-use signal is a terse second sentence. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description effectively conveys what the tool returns and when to use it. Since there is no output schema, the note about including message and source file location helps compensate. It doesn't mention the limit parameter or sorting, but the schema covers the parameter, and those details are minor for a list-issues tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents build_action_id and limit with descriptions. The tool description adds no new parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a specific resource (Xcode Cloud issues for a build action), and specifies scope (errors, warnings, analyzer/test failures) and output content (message and source file location). This clearly differentiates it from sibling tools like list_ci_build_actions or list_ci_artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the trigger condition: 'This is what to read when a build run failed.' This gives clear when-to-use guidance. It doesn't explicitly name alternatives or when-not-to-use cases, but the build_action_id schema reference to list_ci_build_actions reinforces the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It makes the read-only nature clear via 'List' and discloses the exact output fields, including the nested buildBetaDetail distribution state. It omits ordering and paging behavior, but those are minor for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: the first states the action and output, the second states filtering. It is slightly field-heavy and repeats 'processing state', but each clause contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema parameter coverage, one required param, and no output schema, the description adequately covers input and return shape by enumerating returned fields. Minor missing details like default ordering are still acceptable for a list utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description only echoes the filtering params (version, processing_state) without adding examples, format details, or edge-case meaning, which lands right at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Uses a concrete verb ('List') and resource ('TestFlight builds for an app'), enumerates the returned fields, and names the two filtering dimensions. This clearly distinguishes it from siblings like get_build or get_build_status, which target a single build or status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context of when to use the tool: listing TestFlight builds for an app, optionally filtered by version or processing state. It does not explicitly exclude alternatives like get_build for single-build lookups, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral disclosure burden. It explicitly warns that sub-resources that do not exist yet come back as null, preventing the agent from assuming every field is populated. It also clarifies that this is an aggregated read without claiming any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single, information-dense sentence that front-loads the purpose, lists concrete delivered fields, and closes with the important null behavior. Every clause contributes value and there is no repetition or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates well by naming the returned version state, build, submission, phased release, and review details. The null-behavior note further boundaries could be argued for a formal response shape, but for a one-parameter getter this is very close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, version_id, is fully documented in the input schema, including where to obtain it, so the schema already gives the agent everything needed. The description adds no additional parameter-level detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Get the full release status of an App Store version'. It then names the exact sub-resources included, which makes the tool's scope unmistakable and distinguishes it from the many list/get siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' and the enumerated return fields make it clear this is the right tool when an agent needs the aggregate release status of a single App Store version. It does not explicitly name an alternative or give a when-not-to-use condition, so it just misses the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral responsibility. It makes the read-only nature clear by using 'List' and describes the content being returned, which is helpful. However, it does not mention pagination behavior, output structure, or any other nuances that would prepare the agent for the tool's runtime behavior, though for a simple list tool this information is largely inferable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, with the key scope and differentiating clause front-loaded in the first sentence and the important 'not the App Store listing' clarification in the second. There is no filler or tautology; every phrase adds meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a modest parameter set (3) and no output schema, yet the description covers the main intent, the content returned, and the distinguishing context. It does not describe return shape or pagination, but for a simple list tool this is a minor gap. The absence of an output schema suggests the description should be slightly more explicit, but it is still sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all three parameters (app_id, limit, locale) with clear descriptions, so the baseline is 3. The description adds extra context about the kind of data being filtered (per-locale beta metadata), which reinforces why the locale parameter exists and what the results represent. This modest extra value above the schema earns a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (List) and names the exact resource (TestFlight app localizations for an app). It further clarifies the domain by listing the content fields (beta description, feedback email, marketing and privacy policy URLs), and explicitly distinguishes this from the App Store listing, which prevents confusion with the sibling list_app_store_version_localizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool's scope (tester-facing TestFlight metadata) and explicitly excludes the App Store listing. While it does not name the sibling tool directly, the contrast with 'not the App Store listing' tells an agent to use this only for TestFlight metadata and look elsewhere for App Store data. This is strong, though not as explicit as naming the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It correctly indicates a read operation (listing) and filtering, but omits details on pagination, rate limits, auth requirements, or any side effects. Limited but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is succinct, informative, and front-loads the key action and returned data. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the main output fields and filtering capability. However, it lacks details on pagination (despite the limit parameter) and response format structure, which would be helpful for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents both parameters. The description adds value by listing the output fields (type, name, platform, serial number, expiry) and providing example values for certificate_type, which enriches understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List signing certificates' and enumerates the fields returned (type, name, platform, serial number, expiry). Filtering by certificate type is mentioned, which distinguishes it from sibling list tools that handle other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys usage: use to list certificates and optionally filter by type. It does not explicitly state when to avoid this tool or mention alternatives, but the context of siblings makes the purpose clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries more responsibility: it states the account scope, what fields will be returned, and the relationship between the product id and the CI build-runs tool. It does not discuss pagination or ordering, but the basic behavior of a read-only list is adequately disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. It front-loads the action and resource, then adds the most useful workflow hint about using the returned id for a related list. Every clause serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple list operation, no output schema, and high schema coverage, the description covers the key essentials: what this returns and how it connects to the next CI step. It could mention default pagination behavior, but that is reasonably supplied by the limit parameter's own documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters themselves are well documented. The tool description gives no additional parameter-specific guidance beyond the schema's own descriptions. Hitting the baseline of 3 is appropriate because the schema already handles the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'List the Xcode Cloud products', with the exact resource and real returned fields. It also explicitly links the returned id to list_ci_build_runs, which distinguishes it from that sibling and clarifies its role in the CI workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by explaining how the returned id feeds into list_ci_build_runs. It does not mention when not to use the tool or compare it to alternatives, but the primary workflow is explicit enough to guide correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since there are no annotations, the description carries the full burden of behavioral disclosure. It conveys that reviews are public, limited to released apps, and include the developer's published response 'if any', showing that the response is optional. It could be more explicit about pagination or default ordering, but the essential behavioral traits are not hidden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very compact: two sentences deliver the purpose, return fields, exclusions, and filter capabilities with no filler. Information is front-loaded, with the primary action and target resource in the first sentence and the important distinction in the second. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% parameter coverage and the absence of an output schema, the description usefully lists the expected output fields and clarifies the difference from beta feedback. Missing details like default ordering and pagination are not critical, because the schema documents the limit parameter and its default. Overall, enough information is present for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of the parameters with descriptions, so the baseline is 3. The description restates the rating, territory, and has-response filters in natural language but adds no new semantics beyond what the schema provides. It is helpful for quick comprehension but does not elevate the score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List public App Store customer reviews for a released app', and enumerates the returned fields including rating, title, body, reviewer, and territory. It explicitly distinguishes itself from TestFlight beta feedback, which is the closest sibling category and prevents confusion with the feedback-related tools. This goes beyond a vague listing and makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it is for App Store customer reviews of a released app, not for TestFlight beta feedback. It also mentions filtering by rating, territory, and response presence, which outlines the main ways the tool can be used. However, it does not name specific alternative tools or explicitly say 'use this when...', so it barely misses the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses the aggregation basis (groups collected from real devices), the three diagnostic categories, and the meaning of the weight field. This goes beyond the name and schema, although it does not disclose rate limits, sort order, or partial-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words: the first defines what the tool lists and what each object contains, and the second points to the correct follow-up tool. It is front-loaded with the core purpose and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description usefully names the return elements: symbolicated signature, weight, and Apple's insight. It also explains that the data comes from real devices and how to drill into detailed logs. Minor gaps such as pagination, sort order, and a complete return-field list keep it from a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions already cover 100% of the parameters, including the source of build_id, default and range of limit, and explicit enum values for diagnostic_type. The description adds domain context about the returned data but does not add parameter-level semantics beyond what the schema already documents, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource—'List the diagnostic signatures for a build'—and defines what the resource is: groups of similar disk-write, hang, or launch problems with a symbolicated signature, weight, and Apple insight. This clearly differentiates it from related list/get sibling tools like get_diagnostic_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides actionable context by directing the agent to use get_diagnostic_logs when detailed logs are needed, effectively distinguishing summary listing from detailed data. It does not spell out explicit when-not-to-use conditions against the many sibling tools, but the boundary is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses default filtering, that app_version is ignored when build_id is set, and what fields are returned. However, it does not mention read-only nature, pagination behavior, or rate limits, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 5 sentences, front-loading the purpose. Each sentence adds essential information without redundancy, achieving high efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description covers defaults, filtering, and output content well. It could mention pagination (limit) and sorting more explicitly, but overall it is sufficiently complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value by explaining the default behavior of app_version and its interaction with build_id. It also summarizes output fields beyond the schema, enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists TestFlight screenshot feedback submissions, specifying the included fields (comment, screenshot URLs, device/OS, tester, build). It uses a specific verb 'list' and resource 'screenshot feedback', effectively distinguishing it from siblings like 'get_screenshot_feedback'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains default behavior (only latest pre-release version returned) and filtering options (app_version, build_id, etc.). It provides clear context on when to use parameters, but does not explicitly state when to avoid the tool or compare with alternatives like get_screenshot_feedback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. The sentence 'The demo account password is deliberately not requested' is a strong, non-obvious behavioral disclosure that prevents an agent from expecting a password field that will never appear. The read-only nature is inferable from the 'get' verb but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences total: the first is a compact list of content fields and scoping context; the second is a one-line, high-value behavioral note. No filler or restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no nested objects, the description lists exactly what the agent will receive, names the design decision around the password, and clarifies scoping. Nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the sole parameter app_id is already documented as the App Store Connect app ID. The description does not add anything beyond that, which matches the baseline of 3 for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a distinct resource ('beta app review details'), and enumerates the exact content returned: review contact, demo account requirement, demo account name, and review notes. The phrase 'submitted with builds for external TestFlight review' clearly scopes the resource and differentiates it from the beta localizations/groups/testers siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context analogous to when this tool applies: when you need the external TestFlight review submission details for an app. However, it does not explicitly name alternative tools or state when NOT to use this one, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden, and it does so well: it discloses that the metrics come from real-device MetricKit data, are aggregated, include regression insights, and can be narrowed to a single build. It doesn't discuss error cases or limits, but as a read-style 'get' tool there is no hidden destructive behavior to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description packs a large amount of information into a single focused sentence and front-loads the core purpose. It is slightly dense because of the long metric list, but every clause contributes to describing what the tool returns or how to invoke it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a moderate number of optional parameters, a fully covered schema, and no output schema, the description provides enough context to understand the scope, invocation pattern, and returned data categories. The only minor gaps are lack of explicit edge-case behavior when both app_id and build_id are passed and no mention of date or pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all five parameters well, but the description adds meaning beyond it by clarifying the app_id/build_id relationship as an either/or and mapping metric categories to concrete real-world quantities like launch time, hang rate, memory, disk writes, and battery. That is useful semantic context the schema alone does not fully express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get aggregated power and performance metrics') and adds the concrete data source (MetricKit data from real devices). It also names the exact metrics returned and the Apple regression insights, which makes it easy to distinguish from sibling reporting tools like get_build_usage_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: for an app's recent versions or for a single build, and states the key dispatch rule 'Pass either app_id or build_id'. It does not explicitly name alternatives or exclusions, but the intended usage is clear enough without leaving the agent guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: default sorting (newest first), default limit (50, max 200), effect of app_version parameter (default 'latest', ignored when build_id set), and return fields (tester comment, device/OS, etc.). Missing details like pagination or rate limits, but overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the main purpose and then progressively adding detail about default behavior and filtering options. Every sentence contributes meaning without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, 100% schema coverage, and no output schema, the description explains what the output contains and references get_crash_log for crash log download. It does not explicitly mention pagination or list structure, but the information is otherwise complete for an API tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all properties. The description adds value by explaining defaults (app_version default 'latest', sort default '-createdDate'), relationships (app_version ignored when build_id set), and output semantics (build.version and build.preReleaseVersion.version).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists TestFlight crash feedback submissions for an app, including specific details like tester comments, device/OS, resolved tester and build, and a reference to the crash log. It distinguishes itself from sibling tools like get_crash_feedback and get_screenshot_feedback by implying a list vs. single retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains default behavior (latest pre-release version only) and how to override (set app_version or 'all'), and lists available filters (build, platform, device, OS, tester). It does not explicitly state when not to use the tool or mention alternatives, but the guidance is sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the burden. It discloses that the tool creates a request resource without modifying the app and explains the behavior of the two access types. It does not detail authorization requirements or rate limits, but the scope is clear for a non-destructive creation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loading the purpose and return value, then efficiently explaining the access types and noting the non-modifying behavior. Every sentence contributes essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters (1 required) and no output schema, the description is complete: it covers the required parameter app_id, the optional access_type with its two options, the return value (reportRequestId) and a hint to pass it to list_analytics_reports. Nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, so baseline is 3. The description adds value by explaining the enum values (ONE_TIME_SNAPSHOT vs. ONGOING) beyond the schema's listing, and clarifies that app_id is the required identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an analytics report request for an app, specifies it is the required first step to read App Store analytics, and returns a reportRequestId. It distinguishes the tool from siblings like list_analytics_reports by positioning it as the creation step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the purpose of the tool as the first step to read analytics and differentiates between ONE_TIME_SNAPSHOT and ONGOING types. However, it does not explicitly state when not to use this tool (e.g., if a valid request already exists) or provide direct comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the action involves decompression, returns CSV/TSV text, and that the URL must originate from list_analytics_report_segments. It does not mention authentication or error behavior, but the key behavior is transparent enough for a read-only download action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences cover purpose, output format, and usage prerequisite with no wasted words. The most important constraint is front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool, the description provides everything an agent needs: operation, decompression, return type, and exact source of valid input. The prerequisite dependency on list_analytics_report_segments makes the tool self-contained in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since segment_url is documented as 'The url field of an analytics report segment.' The description adds extra meaning by calling it a presigned URL and by restricting valid URLs to those returned by list_analytics_report_segments, which helps the agent understand what value to pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Download and decompress an analytics report segment from its presigned URL.' It also clearly states the return format (CSV/TSV text), which distinguishes this download action from the sibling list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent to call list_analytics_report_segments first and that only URLs returned by that tool can be downloaded. This is a clear prerequisite and exclusion, making the usage condition unambiguous even without naming alternative download tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/OrellBuehler/testflight-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server