Skip to main content
Glama
yunyang088

App Store Connect MCP Server

by yunyang088

App Store Connect MCP Server

A Model Context Protocol server for the App Store Connect API. It lets AI assistants manage apps, versions, localizations, screenshots, TestFlight, bundle IDs, devices, users, and analytics reports.

npm

Forked from JoshuaRileyDev/app-store-connect-mcp-server (archived).

Setup

Create an API key in App Store Connect → Users and Access → Integrations, download the .p8 file, and note the Key ID and Issuer ID.

Add the server to your MCP client config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": ["-y", "@yunyang088/app-store-connect-mcp-server"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_P8_PATH": "/path/to/AuthKey_XXXXXXXXXX.p8",
        "APP_STORE_CONNECT_VENDOR_NUMBER": "OPTIONAL"
      }
    }
  }
}

For Claude Code:

claude mcp add app-store-connect \
  -e APP_STORE_CONNECT_KEY_ID=YOUR_KEY_ID \
  -e APP_STORE_CONNECT_ISSUER_ID=YOUR_ISSUER_ID \
  -e APP_STORE_CONNECT_P8_PATH=/path/to/AuthKey_XXXXXXXXXX.p8 \
  -- npx -y @yunyang088/app-store-connect-mcp-server

APP_STORE_CONNECT_VENDOR_NUMBER is optional. When set, the sales and finance report tools are enabled.

Related MCP server: App Store Connect MCP

Tools

Area

Tools

Apps

list_apps, get_app_info

Versions

create_app_store_version, list_app_store_versions

Version localizations

list_app_store_version_localizations, get_app_store_version_localization, create_app_store_version_localization, update_app_store_version_localization

App info localizations (name / subtitle)

list_app_info_localizations, create_app_info_localization, update_app_info_localization

Screenshots

list_app_screenshot_sets, create_app_screenshot_set, list_app_screenshots, upload_app_screenshot, delete_app_screenshot

TestFlight

list_beta_groups, list_group_testers, add_tester_to_group, remove_tester_from_group, list_beta_feedback_screenshots, get_beta_feedback_screenshot

Bundle IDs

list_bundle_ids, get_bundle_id_info, create_bundle_id, enable_bundle_capability, disable_bundle_capability

Devices & users

list_devices, list_users

Analytics

create_analytics_report_request, list_analytics_report_requests, list_analytics_reports, list_analytics_report_instances, list_analytics_report_segments, download_analytics_report_segment

Sales & finance (vendor number required)

download_sales_report, download_finance_report

Xcode

list_schemes

Notes:

  • upload_app_screenshot handles the full reserve → upload → commit flow for a local PNG.

  • create_app_screenshot_set expects display types with the APP_ prefix, e.g. APP_IPHONE_67.

  • Analytics flow: request → reports → instances → segments → download. Only one ONGOING request is allowed per app.

Development

git clone https://github.com/yunyang088/app-store-connect-mcp-server.git
cd app-store-connect-mcp-server
npm install
npm run build   # compile TypeScript to dist/
npm start       # run the server on stdio

License

MIT

Available Tools

36 tools
add_tester_to_groupB

Add a new tester to a beta group

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address of the tester
groupIdYesThe ID of the beta group
lastNameYesLast name of the tester
firstNameYesFirst name of the tester

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It only says 'add a new tester' without disclosing side effects, permissions, or error conditions. Mutation tool needs more detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, clear, no wasted words. Efficient.

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

Completeness2/5

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

Tool has 4 required params, no output schema, no annotations. Description lacks success/error handling info and context on what happens after addition. Incomplete for a CRUD operation.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. The tool description adds no extra meaning beyond the schema, 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/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (add), the resource (tester), and the target (beta group). It distinguishes from sibling tools like remove_tester_from_group and list_group_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/5

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

No guidance on when to use this tool vs alternatives, prerequisites, or scenarios (e.g., group must exist, tester not already added).

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

create_analytics_report_requestC

Create a new analytics report request for an app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the app to generate analytics reports for
accessTypeNoAccess type for the analytics report (ONGOING for daily data, ONE_TIME_SNAPSHOT for historical data)ONE_TIME_SNAPSHOT

TDQS

C2.8/5.0
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 indicates a write operation ('create') but does not disclose behavioral traits such as side effects, asynchronicity, authentication requirements, rate limits, or what happens after creation (e.g., a report request ID is returned).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and front-loaded, but it omits necessary details. While concise, it does not fully earn its place as it fails to provide value beyond stating the basic action.

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

Completeness2/5

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

Given the lack of annotations, output schema, and behavioral details, the description is insufficient for a creation tool. It does not describe the response format, error cases, or what a successful creation entails, leaving important context missing.

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

Parameters3/5

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

Input schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the schema; it simply restates 'for an app,' which does not enhance understing of parameters like 'accessType' or the purpose of 'appId'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Create') and the resource ('analytics report request'), and it is distinct from sibling tools like 'list_analytics_reports' which list existing reports. However, it could be slightly more precise about what a 'report request' entails.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool instead of alternatives (e.g., 'download_analytics_report_segment' or 'list_analytics_reports'), nor are any prerequisites or context given for when this tool should be invoked.

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

create_app_info_localizationA

Create a new app info localization (localized app name/subtitle). Provide either appInfoId directly, or appId to resolve the current (non-REPLACED) app info automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLocalized app name (optional)
appIdNoThe ID of the app; the current app info is resolved automatically (optional if appInfoId is provided)
localeYesThe locale for the localization (e.g. 'zh-Hans', 'ja', 'en-US')
subtitleNoLocalized app subtitle (optional)
appInfoIdNoThe ID of the app info (optional if appId is provided)
privacyPolicyUrlNoPrivacy policy URL for this locale (optional)
privacyChoicesUrlNoPrivacy choices URL for this locale (optional)
privacyPolicyTextNoPrivacy policy text for this locale (optional)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It usefully discloses the auto-resolution behavior (appId resolves the current non-REPLACED app info), which is real behavioral context, but omits permissions required, whether duplicate locales error, and what a failed resolve does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the input-mutual-exclusivity rule is front-loaded right after the purpose. Every clause earns its place.

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

Completeness4/5

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

For an 8-parameter create tool with no annotations and no output schema, the key ambiguity (which identifier to supply) is resolved. Remaining gaps — permissions, duplicate-locale behavior, return value — are minor but real.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter already documents itself including the appInfoId/appId alternation. The description restates that alternation rather than adding syntax, constraints, or defaults beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Create a new app info localization") and clarifies the payload (localized app name/subtitle). The app-info scope implicitly separates it from sibling create_app_store_version_localization, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

The description gives a usable branching rule between appInfoId and appId, which is a form of contextual guidance. However, it never states when to choose create over update_app_info_localization, nor any prerequisites/exclusions.

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

create_app_screenshot_setA

Create a new screenshot set for an app store version localization. The screenshotDisplayType must carry the APP_ prefix, e.g. APP_IPHONE_65, APP_IPHONE_67, APP_IPAD_PRO_3GEN_129 (a bare value like IPHONE_65 is rejected with a 409 error).

ParametersJSON Schema
NameRequiredDescriptionDefault
screenshotDisplayTypeYesThe display type, must start with APP_ (e.g. 'APP_IPHONE_65', 'APP_IPHONE_67', 'APP_IPAD_PRO_3GEN_129')
appStoreVersionLocalizationIdYesThe ID of the app store version localization

TDQS

A3.7/5.0
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 behavioral burden. It usefully discloses a hard constraint and its failure mode (bare display type values are rejected with a 409 error), but says nothing about required permissions, idempotency, or what a successful call produces.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loading what is created and then the one non-obvious constraint with concrete examples and the error code. Nothing is padded and no sentence is wasted.

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

Completeness3/5

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

For a two-parameter mutation tool with no annotations and no output schema, the description covers the parameter constraint well but leaves the safety/auth profile and return behavior unaddressed. It is adequate rather than complete given the absence of structured guidance elsewhere.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters, and the description largely repeats the APP_ prefix rule and examples already in the screenshotDisplayType field. The 409 rejection detail is the one addition beyond the schema, making this a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new screenshot set') and scopes it to an app store version localization, which lets an agent separate it from siblings like list_app_screenshot_sets, upload_app_screenshot, and delete_app_screenshot without inspecting schemas.

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

Usage Guidelines3/5

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

Usage is implied by the resource name and required localization ID, but there is no explicit when-to-use guidance, no statement of prerequisites (e.g. that the localization must already exist), and no routing to alternatives such as upload_app_screenshot for populating an existing set.

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

create_app_store_versionB

Create a new app store version for an app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the app
buildIdNoID of the build to associate with this version (optional)
platformYesThe platform for this version
copyrightNoCopyright text for this version (optional)
releaseTypeNoHow the app should be released
versionStringYesVersion string in format X.Y or X.Y.Z (e.g., '1.0' or '1.0.0')
earliestReleaseDateNoEarliest release date in ISO 8601 format (required when releaseType is SCHEDULED)

TDQS

B3.2/5.0
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 only states the tool creates a version but does not disclose side effects, required permissions, or behavior when parameters are omitted (e.g., buildId).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence front-loading the purpose. No wasted words.

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

Completeness2/5

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

The tool has 7 parameters, multiple enums, and no output schema. The description provides no context about the result, constraints, or workflow integration, making it insufficient for full understanding.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain or elaborate on any parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('a new app store version for an app'). It differentiates from sibling tools like list_app_store_versions and update_app_store_version_localization by specifying creation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool or alternatives. There is no mention of prerequisites, when not to use, or how it differs from other tools like update_app_store_version_localization.

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

create_app_store_version_localizationB

Create a new localization for an app store version (e.g. to add a new language)

ParametersJSON Schema
NameRequiredDescriptionDefault
localeYesThe locale for the localization (e.g. 'zh-Hans', 'ja', 'en-US')
keywordsNoComma-separated keywords for this locale (optional)
whatsNewNoWhat's New text for this locale (optional)
supportUrlNoSupport URL for this locale (optional)
descriptionNoApp description for this locale (optional)
marketingUrlNoMarketing URL for this locale (optional)
promotionalTextNoPromotional text for this locale (optional)
appStoreVersionIdYesThe ID of the app store version

TDQS

B3.1/5.0
Behavior2/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 of behavioral disclosure. It confirms a mutation ("Create") but omits permissions, duplicate-locale handling, side effects, and what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or repetition. Every word contributes to identifying the operation and giving one concrete example.

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

Completeness3/5

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

The rich input schema covers all parameters, but with no annotations, no output schema, and no behavioral detail, the description leaves gaps around side effects and return values. It is minimally adequate for an agent to attempt the call but not complete for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight parameters, including the required appStoreVersionId and locale, are already documented in the schema. The description does not add meaning beyond what the schema provides, making the baseline score appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Create a new localization for an app store version." It is clear what the tool does, but it does not explicitly distinguish itself from the sibling update_app_store_version_localization or create_app_info_localization.

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

Usage Guidelines2/5

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

The phrase "e.g. to add a new language" hints at a use case but does not provide real when-to-use guidance, prerequisites, or comparisons to alternatives such as updating an existing localization.

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

create_bundle_idB

Register a new bundle ID for app development

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA name for the bundle ID
seedIdNoYour team's seed ID (optional)
platformYesThe platform for this bundle ID
identifierYesThe bundle ID string (e.g., 'com.example.app')

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must cover behavioral traits. It only says 'Register' (indicating creation) but does not disclose idempotency, permissions, side effects, or return behavior. Missing critical context for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence, but it is not front-loaded with the most critical information (e.g., the action and resource). It is adequate but unremarkable.

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

Completeness2/5

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

Despite 4 parameters and no output schema, the description lacks details about post-creation behavior (e.g., what is returned, if the ID is immediately usable). The tool is incompletely specified for an agent to understand the full effect.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already documents all parameters. The description adds no additional parameter-level meaning. 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/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb ('Register') and specific resource ('bundle ID') stated. Distinct from sibling tools like list_bundle_ids and get_bundle_id_info.

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

Usage Guidelines2/5

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

The description provides only a vague context ('for app development') but no explicit guidance on when to use this tool versus alternatives (e.g., when to create vs. list or get).

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

delete_app_screenshotC

Delete a screenshot from a screenshot set

ParametersJSON Schema
NameRequiredDescriptionDefault
appScreenshotIdYesThe ID of the screenshot to delete

TDQS

C2.9/5.0
Behavior2/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, and it does little beyond the verb. It never states that deletion is irreversible, whether it requires specific App Store Connect permissions, whether the containing screenshot set is affected, or what the call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, front-loaded with the verb. It is appropriately sized for a one-parameter tool, though it is too sparse to demonstrate real structural craft.

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

Completeness2/5

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

For a destructive, irreversible operation with no annotations and no output schema, the description is thin. An agent gets no warning about consequences, permission requirements, or failure modes, which is a meaningful gap for a delete tool.

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

Parameters3/5

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

Schema description coverage is 100% with a single required appScreenshotId, so the schema already fully documents the parameter. The description adds no format, sourcing, or lookup guidance beyond what the schema provides, which is the baseline 3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Delete) and resource (a screenshot) plus its container scope (from a screenshot set), so the operation is unambiguous. It does not differentiate itself from the numerous sibling screenshot tools (upload_app_screenshot, list_app_screenshots, create_app_screenshot_set), but the destructive verb alone makes its role clear.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as uploading or listing screenshots. The agent must infer that this is the terminal cleanup step of a screenshot workflow.

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

disable_bundle_capabilityB

Disable a capability for a bundle ID

ParametersJSON Schema
NameRequiredDescriptionDefault
capabilityIdYesThe ID of the capability to disable

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and description only states the action without disclosing side effects, idempotency, authorization needs, or reversibility. For a mutation tool, this is minimal 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, front-loaded with action and resource. Efficient and direct.

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

Completeness2/5

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

Lacks explanation of how capabilityId relates to bundle ID despite description mentioning bundle. Missing output schema details and context about capability scope. Incomplete for a simple toggle tool.

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

Parameters3/5

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

Schema covers 100% of parameters with clear description. The tool description adds no extra meaning beyond the schema, achieving baseline adequacy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'disable' and resource 'capability for a bundle ID', clearly identifying the action. It distinguishes from the sibling tool 'enable_bundle_capability'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites, context, or conditions. Sibling presence implies opposite but description provides no explicit usage advice.

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

download_analytics_report_segmentB

Download an analytics report segment and return it as TSV text (gzip is decompressed)

ParametersJSON Schema
NameRequiredDescriptionDefault
maxCharsNoTruncate the returned text to this many characters (default: 50000)
segmentUrlYesThe URL of the analytics report segment to download

TDQS

B3.4/5.0
Behavior3/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. It usefully reveals the return format (TSV text) and that gzip payloads are transparently decompressed, but says nothing about permissions, error behavior, or whether large segments are truncated beyond the schema's maxChars parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero filler that front-loads the action and then the output contract. Every clause earns its place.

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

Completeness4/5

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

With no output schema, the description correctly explains the return value (TSV text, gzip decompressed), which is what an agent needs. The only gaps are behavioral details like auth requirements or failure modes, minor for a read-only download.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (segmentUrl, maxChars) are already fully documented in the schema, including the 50000 default. The description adds no parameter-level meaning beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Download) and resource (analytics report segment) plus the return format (TSV text), which clearly separates it from listing siblings like list_analytics_report_segments. It never explicitly names a sibling or contrasts itself with one, so it stops 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 Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and no reference to alternatives such as list_analytics_report_segments or create_analytics_report_request. Usage is only inferable from the tool name.

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

enable_bundle_capabilityB

Enable a capability for a bundle ID

ParametersJSON Schema
NameRequiredDescriptionDefault
settingsNoOptional capability settings
bundleIdIdYesThe ID of the bundle ID
capabilityTypeYesThe type of capability to enable

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Enable', which implies mutation, but does not mention permissions, side effects, reversibility, or success/failure indicators. This is insufficient for safe agent invocations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence. Every word is necessary, and it is efficiently front-loaded without redundancy.

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

Completeness2/5

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

Despite low complexity (3 params, no output schema), the description lacks information about return values, error handling, or the relationship with sibling tools like 'disable_bundle_capability'. It is incomplete for practical use.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds no extra meaning beyond what the schema provides (e.g., for 'capabilityType' the enum values are already listed). Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's action ('Enable') and resource ('capability for a bundle ID'). It directly distinguishes from the sibling 'disable_bundle_capability'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. There is a sibling 'disable_bundle_capability', but the description does not specify prerequisites or context for enabling capabilities.

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

get_app_infoB

Get detailed information about a specific app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the app to get information for
includeNoOptional relationships to include in the response

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'Get detailed information,' which implies a read operation but does not state side effects, permissions, rate limits, or what happens if the appId is invalid. The description is too vague to ensure safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous information. It is front-loaded and efficient for the given parameter count.

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

Completeness3/5

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

The tool has no output schema, and the description does not explain the return structure, error handling, or any limitations. Given the simplicity of the operation, the description is minimally adequate but lacks details that would help an agent understand what 'detailed information' entails.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no additional meaning or constraints beyond what the schema provides, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and description clearly state the tool retrieves detailed information about a specific app. It uses a specific verb+resource combination and distinguishes from siblings like list_apps or get_bundle_id_info.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or context that would help an agent decide between this and sibling tools like list_apps.

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

get_app_store_version_localizationA

Get detailed information about a specific app store version localization

ParametersJSON Schema
NameRequiredDescriptionDefault
localizationIdYesThe ID of the app store version localization

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It describes a read operation ('get'), which implies no side effects, but does not clarify error handling, permissions, or rate limits. It adds minimal value beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 11 words, with zero redundancy. It is front-loaded with the action and resource, making it easy to parse quickly.

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

Completeness3/5

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

While the tool is simple (get by ID), the description does not specify what 'detailed information' includes, especially given no output schema. For full completeness, it could mention expected fields or link to documentation. It is adequate for a straightforward retrieval but lacks depth.

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

Parameters3/5

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

Schema coverage is 100% (the single parameter has a description). The tool description adds no extra meaning about the parameter beyond what's in the schema. Baseline is 3 as per guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('detailed information about a specific app store version localization'). It effectively distinguishes itself from sibling tools like 'list_app_store_version_localizations' (which lists many) and 'update_app_store_version_localization' (which modifies), indicating a retrieval focus.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or situations where it should be avoided. Sibling tools exist for listing and updating, but the description offers no comparative advice.

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

get_beta_feedback_screenshotA

Get detailed information about a specific beta feedback screenshot submission. By default, downloads and returns the screenshot image.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedbackIdYesThe ID of the beta feedback screenshot submission
includeBuildsNoInclude build information in response (optional)
includeTestersNoInclude tester information in response (optional)
downloadScreenshotNoDownload and return the screenshot as an image (default: true)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It states the default download behavior and the ability to disable it. However, it does not mention whether the operation is read-only, what happens to the resource, or any side effects. The description is adequate but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loading the main action and default behavior. No unnecessary words or repetition.

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

Completeness3/5

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

The description mentions 'detailed information' but does not specify what details are returned beyond the screenshot image. With no output schema, the user is left guessing about the non-image response content. Given the complexity of 4 parameters and a potential image return, more detail about the response would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes all parameters adequately. The description adds minimal extra context beyond confirming the default for downloadScreenshot. It does not significantly enhance understanding of parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('get detailed information') and resource ('a specific beta feedback screenshot submission'). It also mentions the default behavior of downloading the image, which distinguishes it from the sibling tool that lists screenshots.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool over alternatives like list_beta_feedback_screenshots. It implies usage for a specific submission but lacks guidance on context or when not to use.

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

get_bundle_id_infoB

Get detailed information about a specific bundle ID

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoSpecific fields to include in the response
includeNoOptional relationships to include in the response
bundleIdIdYesThe ID of the bundle ID to get information for

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description bears the burden. It implies a read operation ('get'), which is non-destructive, but does not explicitly state authorization requirements, rate limits, or other behavioral traits. The description is adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no wasted words. It is appropriately front-loaded and easy to parse.

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

Completeness2/5

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

The description does not explain that the tool can optionally include related resources (via the 'include' parameter) or filter specific fields (via 'fields'). Given no output schema, the agent is left without information on what 'detailed information' entails, making the description incomplete.

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

Parameters3/5

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

All three parameters are fully described in the input schema (100% coverage). The description adds no additional meaning beyond what the schema provides, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get' and the resource 'bundle ID', and implies retrieving detailed information. It distinguishes from sibling tools like list_bundle_ids (which lists all) but the term 'detailed' is somewhat vague.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., list_bundle_ids for listing, create_bundle_id for creation). The description does not mention context or exclusions.

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

list_analytics_report_instancesA

List generated instances (daily/weekly/monthly files) of an analytics report. Flow: request -> reports -> instances -> segments -> download

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of instances to return (default: 100)
reportIdYesThe ID of the analytics report (from list_analytics_reports)
granularityNoFilter by granularity
processingDateNoFilter by processing date, YYYY-MM-DD

TDQS

A4/5.0
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 behavioral burden. 'List' implies a read-only, non-destructive call and the flow conveys a pipeline dependency, but there is no mention of pagination, permissions, or result ordering beyond what the schema already shows. It adds modest context but leaves several behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core purpose front-loaded and the workflow hint appended for orientation. Every clause earns its place.

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

Completeness4/5

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

For a list tool with a fully documented schema and no output schema, the description covers purpose and workflow position adequately. It does not describe return shape or pagination behavior, but with no output schema and complete parameter docs, the remaining gap is minor.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents reportId, limit, granularity, and processingDate. The description only reinforces the granularity values via '(daily/weekly/monthly files)' and adds no syntax, format, or interaction details beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('generated instances ... of an analytics report'), and the parenthetical '(daily/weekly/monthly files)' clarifies exactly what an instance is. The flow line 'request -> reports -> instances -> segments -> download' positions it relative to siblings like list_analytics_reports and list_analytics_report_segments, so an agent can tell them apart.

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

Usage Guidelines4/5

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

The embedded flow ('request -> reports -> instances -> segments -> download') tells the agent this tool sits after listing reports and before segments/download, which is genuine when-to-use guidance. It stops short of explicit exclusions or a named alternative, so it is clear context rather than full routing instructions.

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

list_analytics_report_requestsA

List existing analytics report requests for an app (check before creating; only one ONGOING request is allowed per app)

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the app

TDQS

A3.8/5.0
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 usefully discloses the one-ONGOING-request-per-app constraint and the pre-creation check, but says nothing about read-only status, authorization, pagination, or return shape for a list 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and resource, with the routing/constraint detail in a compact parenthetical. No waste.

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

Completeness4/5

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

For a simple one-parameter list tool with no output schema, the description covers purpose, usage trigger, and the key constraint. Return content is not described, which is a minor gap given no output schema exists to cover it.

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

Parameters3/5

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

Schema coverage is 100% for the single appId parameter, so the schema already documents it fully. The description's 'for an app' adds no syntax, format, or edge-case detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List existing analytics report requests for an app'), which separates it from the report/instance/segment listers in the sibling set. The parenthetical routes it against create_analytics_report_request, but the distinction from list_analytics_reports is left implicit.

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

Usage Guidelines4/5

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

Gives a clear trigger ('check before creating') plus the governing constraint that only one ONGOING request is allowed per app. No explicit when-not conditions or named alternative tools, 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.

list_analytics_reportsC

Get available analytics reports for a specific report request

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of reports to return (default: 100)
filterNo
reportRequestIdYesThe ID of the analytics report request

TDQS

C2.4/5.0
Behavior2/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 implies a read but discloses nothing about pagination, default page size, rate limits, or required permissions; a list tool returning potentially 200 items with no pagination semantics is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler and the scope constraint front-loaded. It is efficient, though its brevity reflects under-specification rather than disciplined editing.

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

Completeness2/5

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

No output schema, no annotations, and a nested filter object with an enum that the description never mentions. For a tool with three parameters and a nested filter, the description leaves too much for the agent to infer.

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

Parameters2/5

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

Schema coverage is 67%, with the required reportRequestId and limit already documented in the schema. 'For a specific report request' merely restates the required parameter name and adds nothing about the optional filter.category enum or how limit interacts with the default of 100.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ('Get') and resource ('analytics reports') scoped to a specific report request, so the basic purpose is discernible. However, with four analytics siblings in the list (report requests, instances, segments, report requests), the description never clarifies how 'reports' differs from those, leaving real ambiguity.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and does not mention any alternative sibling such as list_analytics_report_instances or list_analytics_report_segments. Usage must be inferred entirely from the name.

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

list_analytics_report_segmentsB

Get segments of an analytics report instance (contains download URLs)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of segments to return (default: 100)
instanceIdYesThe ID of the analytics report instance (from list_analytics_report_instances)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, but it only adds the fact that results include download URLs. It says nothing about read-only nature beyond the verb choice, pagination behavior, or permission requirements for a tool with a limit-capped result set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the key clarification front-loaded in parentheses. No waste, though it is arguably too terse to carry the behavioral load required without annotations.

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

Completeness3/5

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

There is no output schema, and the description gives only a partial picture of returns ('contains download URLs') without describing segment fields, ordering, or pagination. Adequate to select the tool but thin for calling it confidently against a chain of analytics-report siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so both instanceId and limit are already documented (including default and max). The description adds no syntax, format, or meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('segments of an analytics report instance'), and the parenthetical disambiguates it from the sibling download_analytics_report_segment by clarifying this only lists segments and their URLs. It does not explicitly name the parent/child siblings, but the resource is concrete enough for an agent to select it.

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

Usage Guidelines3/5

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

The '(contains download URLs)' note implies the follow-up workflow with download_analytics_report_segment, but there is no explicit when-to-use statement, no exclusion, and no mention of the sibling alternative. Usage is only implied.

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

list_app_info_localizationsA

List all app info localizations (localized app name/subtitle) for an app. Resolves the current (non-REPLACED) app info automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the app
limitNoMaximum number of localizations to return (default: 100)

TDQS

A3.8/5.0
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 usefully discloses one non-obvious trait — that it auto-resolves the current (non-REPLACED) app info rather than requiring an app info ID, and that REPLACED records are excluded. It says nothing about read-only safety, result ordering, or pagination behavior beyond the schema's 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero waste, with the core action and resource front-loaded and the auto-resolution caveat following immediately after.

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

Completeness4/5

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

For a two-parameter read tool with no output schema, the description covers the action, the returned content, and the implicit app-info resolution. Remaining gaps (ordering, whether results can span multiple app infos) are minor but not fully closed.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, so the schema already documents appId and the limit range/default. The description adds no syntax, format, or ID-source detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all app info localizations') and clarifies the content in parentheses ('localized app name/subtitle'), which is what separates it from sibling list_app_store_version_localizations (version-level strings like description/keywords). An agent can pick between the two localization listers without opening either schema.

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

Usage Guidelines3/5

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

Usage is implied by 'for an app' and the note that the current app info is resolved automatically, so the caller knows no appInfoId is needed. However, it never explicitly states when to use this versus list_app_store_version_localizations or get_app_info, and offers no exclusions or prerequisites.

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

list_appsA

Get a list of all apps in App Store Connect

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of apps to return (default: 100)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose read-only nature, authentication requirements, pagination behavior, or response shape. Only states the high-level result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, front-loaded sentence with no redundant words. Could benefit from additional context without sacrificing conciseness.

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

Completeness3/5

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

For a simple list tool with one optional parameter and no output schema, the description is minimally adequate. It lacks details on pagination and behavioral characteristics but covers the essential purpose.

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

Parameters3/5

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

Input schema is fully described (100% coverage) for the single 'limit' parameter. Description adds no additional semantics beyond the schema, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Get'), the resource ('a list of all apps'), and the context ('in App Store Connect'). It effectively distinguishes from sibling tools like 'get_app_info' and 'list_app_store_versions'.

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

Usage Guidelines4/5

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

The description implies use for retrieving all apps but does not explicitly mention when to avoid or consider alternatives (e.g., using 'get_app_info' for a specific app). Minimal guidance is provided.

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

list_app_screenshotsB

List all screenshots in a screenshot set

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of screenshots to return (default: 100)
appScreenshotSetIdYesThe ID of the screenshot set

TDQS

B3.1/5.0
Behavior2/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. 'List all screenshots' implies a read-only operation, but it omits pagination behavior, auth requirements, default limit effects, and any return shape—leaving most behavioral traits unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. For a simple list tool, this is appropriately sized and every word earns its place.

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

Completeness3/5

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

The tool is low-complexity with 100% schema coverage and no output schema, so the core call is clear. But with no annotations and no output schema, the description should provide more behavioral context (e.g., pagination or read-only guarantee) to be fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so both the limit and appScreenshotSetId parameters are already documented. The phrase 'in a screenshot set' loosely maps to appScreenshotSetId but adds no syntax or constraints beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('screenshots in a screenshot set'), which distinguishes it from list_app_screenshot_sets. However, it does not explicitly name or contrast with any sibling, so it stops 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 Guidelines2/5

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

Provides no when-to-use guidance, no alternatives, and no prerequisites. The only implied context is that an existing screenshot set ID is needed, but the agent is not routed between this and related tools like list_app_screenshot_sets.

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

list_app_screenshot_setsB

List all screenshot sets for an app store version localization

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of screenshot sets to return (default: 100)
appStoreVersionLocalizationIdYesThe ID of the app store version localization

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'List all' adequately implies a non-destructive read operation, but it says nothing about pagination behavior, permission requirements, or result ordering beyond what the schema already documents via the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the resource and scope come first. It is appropriately sized, though nearly too terse to be more than a restatement of the name.

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

Completeness3/5

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

For a simple two-parameter read tool with full schema coverage this is marginally complete, but with no output schema the description does not indicate what a 'screenshot set' record contains or whether results are paginated, leaving some inference to the agent.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema (the localization ID and the limit with default 100 / max 200). The description adds no parameter detail, which is acceptable at this coverage level but not value-adding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('screenshot sets'), scoped to an app store version localization. This distinguishes it from the sibling list_app_screenshots, though the description doesn't explicitly call out that distinction.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, prerequisites, or named alternatives. The only context is the scope phrase 'for an app store version localization', which constrains input but does not tell the agent when this tool is the right choice.

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

list_app_store_version_localizationsB

Get all localizations for a specific app store version

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of localizations to return (default: 100)
appStoreVersionIdYesThe ID of the app store version

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only restates the tool's purpose without revealing behavior such as pagination, authentication requirements, or whether it returns empty results. The schema includes a limit parameter implying pagination, but this is not explained in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the tool's purpose without any extraneous 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.

Completeness3/5

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

For a simple list tool with full schema coverage, the description is minimally adequate. However, it lacks details about the return format, pagination behavior, and how it differs from other localization tools. Given the absence of an output schema, more context would be beneficial.

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

Parameters3/5

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

The input schema already provides descriptions for both parameters (appStoreVersionId and limit) with 100% coverage. The description does not add any additional context beyond what the schema already provides, so a 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/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists all localizations for a specific app store version using the verb 'Get' and the resource 'localizations'. It distinguishes itself from sibling tools like 'get_app_store_version_localization' (single) and 'create_app_store_version_localization' (create).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., get_app_store_version_localization for a single localization). It lacks context on prerequisites or scenarios where this tool is appropriate.

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

list_app_store_versionsB

Get all app store versions for a specific app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe ID of the app
limitNoMaximum number of versions to return (default: 100)
filterNoOptional filters for app store versions

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description only states it retrieves versions, but does not disclose pagination behavior, rate limits, ordering, or whether results are complete. The limit parameter implies pagination but is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single concise sentence that clearly states the tool's function. No unnecessary words, but could benefit from slight expansion on usage context.

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

Completeness2/5

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

No output schema; description does not explain return values or format. Does not mention default limit, sorting, or handling of pagination. Given three parameters and a nested filter object, more detail is needed.

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

Parameters3/5

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

Input schema has 100% description coverage for all parameters. The description adds no additional meaning beyond what's in the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Get' and resource 'app store versions' with a clear scope 'for a specific app'. It distinguishes from sibling tools like create_app_store_version (create) and list_app_store_version_localizations (different resource).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., list_apps, create_app_store_version). No mention of prerequisites or when not to use it.

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

list_beta_feedback_screenshotsB

List all beta feedback screenshot submissions for an app. This includes feedback with screenshots, device information, and tester comments. You can identify the app using either appId or bundleId.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order for results (default: -createdDate for newest first)
appIdNoThe ID of the app to get feedback for (e.g., '6747745091')
limitNoMaximum number of feedback items to return (default: 50, max: 200)
buildIdNoFilter by specific build ID (optional)
bundleIdNoThe bundle ID of the app (e.g., 'com.example.app'). Can be used instead of appId.
testerIdNoFilter by specific tester ID (optional)
osVersionNoFilter by OS version (e.g., '18.4.1') (optional)
appPlatformNoFilter by app platform (optional)
deviceModelNoFilter by device model (e.g., 'iPhone15_2') (optional)
includeBuildsNoInclude build information in response (optional)
devicePlatformNoFilter by device platform (optional)
includeTestersNoInclude tester information in response (optional)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only states basic functionality without disclosing behavioral traits such as read-only nature, pagination, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, directly to the point, no unnecessary words or repetition.

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

Completeness3/5

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

With 12 parameters and no output schema, description lacks explanation of result structure, pagination, or overall behavior beyond listing.

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

Parameters3/5

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

Schema has 100% coverage, so baseline 3; description adds minimal value by indicating appId and bundleId are alternatives, but does not elaborate on other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'List' and the resource 'beta feedback screenshot submissions', and distinguishes from sibling tool 'get_beta_feedback_screenshot' by explicitly mentioning 'List all'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any exclusionary or contextual direction for usage.

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

list_beta_groupsA

Get a list of all beta groups (internal and external)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of groups to return (default: 100)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination, ordering, or rate limits. It only restates the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words. The key information (verb, resource, scope) is front-loaded.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description is sufficient for an agent to understand it provides a list of all beta groups. Slightly more context about what 'internal and external' means could help, but it's not critical.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already describes the 'limit' parameter with its range and default. The description adds no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get a list of', the resource 'beta groups', and the scope 'all (internal and external)'. This distinguishes it from sibling tools like 'list_group_testers'.

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

Usage Guidelines3/5

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

The description does not include explicit when or when-not to use, but the purpose is simple and implies a general listing operation. Alternatives are not mentioned, but the context is clear.

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

list_bundle_idsB

Find and list bundle IDs that are registered to your team

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order for the results
limitNoMaximum number of bundle IDs to return (default: 100, max: 200)
filterNo
includeNoRelated resources to include in the response

TDQS

B3.4/5.0
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 only mentions scope ('registered to your team') but does not disclose read-only nature, rate limits, or whether it returns only owned IDs. For a listing operation with no annotations, more behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that states the tool's purpose without any redundant information. It is front-loaded and efficient.

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

Completeness2/5

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

Given the tool's complexity (4 parameters, nested objects, no output schema), the description is too brief. It does not explain how to use filter, sort, or include parameters, nor does it describe the response format. More detail is needed for a complete understanding.

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

Parameters3/5

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

Schema coverage is high (all parameters have descriptions). The description adds no additional meaning beyond what the schema already provides. Baseline score is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to find and list bundle IDs registered to the user's team. It uses a specific verb ('list') and resource ('bundle IDs'), which distinguishes it from siblings like 'get_bundle_id_info' (single item) and 'create_bundle_id' (creation).

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

Usage Guidelines3/5

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

The description implies usage for listing bundle IDs but provides no explicit guidance on when to use this tool versus alternatives like 'get_bundle_id_info' for a single ID or 'create_bundle_id' for creation. It lacks explicit when-not or alternative suggestions.

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

list_devicesC

Get a list of all devices registered to your team

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order for the results
limitNoMaximum number of devices to return (default: 100, max: 200)
fieldsNo
filterNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure, but it only states the purpose. It does not mention idempotency, side effects, authorization requirements, rate limits, or pagination behavior, which is critical for a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. It is efficient but slightly too minimal; a bit more context about output or filtering could improve without adding verbosity.

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

Completeness2/5

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

Given no output schema, the description should explain what the list contains (e.g., device objects with fields). It does not mention return structure, pagination defaults, or that filtering/sorting is available, making it incomplete for an agent to anticipate results.

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

Parameters2/5

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

The description adds no meaning beyond the input schema. The schema already provides descriptions for all parameters (sort, limit, fields, filter), and with 50% schema coverage context, the description fails to compensate for any gaps, offering no additional context or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get) and the resource (a list of devices), with scope (registered to your team). It effectively distinguishes from sibling tools like list_apps or list_users, as it specifically targets devices.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Sibling tools include other list operations, but the description does not differentiate or suggest appropriate contexts, leaving the agent without direction on tool selection.

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

list_group_testersB

Get a list of all testers in a specific beta group

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of testers to return (default: 100)
groupIdYesThe ID of the beta group

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not mention that the tool is read-only, does not describe pagination behavior despite a limit parameter, and lacks information about permissions or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, straightforward sentence with no wasted words. It is front-loaded with the verb and clearly states the purpose.

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

Completeness2/5

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

Given the tool has two parameters and no output schema, the description should provide more context about the return format, pagination behavior, or error handling. It is incomplete and does not cover these aspects.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters have descriptions in the schema). The description does not add any extra meaning beyond what the schema provides, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Get' and specifies the resource as 'a list of all testers in a specific beta group', which clearly identifies the tool's action and distinguishes it from siblings like 'add_tester_to_group' and 'remove_tester_from_group'. However, the word 'all' contradicts the presence of a limit parameter, causing minor 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/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The usage is implied by the contrast with sibling tools (add/remove), but there is no direct statement about alternatives or exclusions.

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

list_schemesB

List all available schemes in an Xcode project or workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the Xcode project (.xcodeproj) or workspace (.xcworkspace)

TDQS

B3.4/5.0
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 does not disclose whether the tool is read-only, requires specific project conditions, or has side effects. The behavioral transparency is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 10 words with no superfluous information. It is maximally concise.

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

Completeness4/5

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

For a simple list tool with one parameter and no output schema, the description covers the core functionality. However, it could be improved by specifying the expected return type (e.g., list of scheme names) or error conditions, but it is still largely complete.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter, which is clearly documented in the schema as the path to .xcodeproj or .xcworkspace. The tool description adds no extra context beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'schemes' within the context of an Xcode project or workspace. It is specific and distinguishes from sibling tools, as no other sibling tool lists schemes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, prerequisites, or potential errors. The description is purely functional.

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

list_usersB

Get a list of all users registered on your App Store Connect team

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order for the results
limitNoMaximum number of users to return (default: 100, max: 200)
filterNo
includeNoRelated resources to include in the response

TDQS

B3.1/5.0
Behavior2/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 of behavioral disclosure. It does not mention pagination behavior, required permissions, rate limits, or the structure of the response, leaving the agent with minimal insight into how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It is appropriately concise for a simple listing tool, though it could benefit from additional context without becoming verbose.

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

Completeness3/5

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

Given the tool has 4 parameters (including a nested filter object) and no output schema, the description is minimally complete. It does not explain the return format or how to handle pagination, which might be expected for a list operation. However, for a straightforward user list, 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.

Parameters2/5

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

The input schema covers all parameters with descriptions (100% coverage), but the tool description adds no additional meaning or context for the parameters. It does not explain how to use sort, limit, filter, or include effectively, relying entirely on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a list of all users registered on your App Store Connect team.' It uses a specific verb ('Get a list') and resource ('users'), and effectively distinguishes itself from sibling tools like list_apps 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it specify any prerequisites or limitations. It simply states what it does without context.

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

remove_tester_from_groupB

Remove a tester from a beta group

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesThe ID of the beta group
testerIdYesThe ID of the beta tester

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden for behavioral disclosure. It fails to mention consequences (e.g., irreversible removal), required permissions, side effects (if any), or error handling (e.g., if tester not in group).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise single sentence with no wasted words. However, it lacks detail that could be added without losing conciseness, such as noting that the removal is permanent.

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

Completeness3/5

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

For a simple mutation tool with no output schema and no annotations, the description is minimally adequate. It states the basic action but omits return behavior, prerequisites, and whether the operation is idempotent.

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

Parameters3/5

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

The schema provides descriptions for both parameters (groupId, testerId), covering 100% of parameters. The description adds no extra meaning beyond what is already in the schema, 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/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Remove a tester from a beta group' clearly states the verb (remove), resource (tester), and scope (beta group). It implicitly distinguishes from the sibling 'add_tester_to_group', which is the inverse operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'add_tester_to_group' or 'list_group_testers'. There are no prerequisites or context for usage.

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

update_app_info_localizationB

Update a specific field in an app info localization (localized app name/subtitle)

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesThe field to update
valueYesThe new value for the field
appInfoLocalizationIdYesThe ID of the app info localization to update

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. It states that a single field is updated but omits permissions, idempotency, side effects, and whether other fields are preserved, leaving significant behavioral gaps for a mutation 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler, and every phrase earns its place by naming the action, scope, and resource.

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

Completeness3/5

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

Given the simple three-parameter update with full schema coverage and no annotations or output schema, the description identifies the target resource and that a single field is being changed. It stops short of explaining mutation behavior or sibling selection, which an agent would need in the absence of annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are documented in the schema. The description adds only 'specific field' and parenthetical examples (name/subtitle) that are already present in the enum, providing no syntax or constraint details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Update' and the resource 'app info localization', and clarifies what that resource is (localized app name/subtitle). It does not, however, differentiate this tool from sibling update_app_store_version_localization, so a reader cannot tell from the description alone which localization type to update.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus create_app_info_localization, list_app_info_localizations, or update_app_store_version_localization. It implies a partial-update use case through 'specific field' but offers no explicit conditions or alternatives.

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

update_app_store_version_localizationB

Update a specific field in an app store version localization

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesThe field to update
valueYesThe new value for the field
localizationIdYesThe ID of the app store version localization to update

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description bears full burden. It only says 'update a specific field' but does not disclose whether other fields are affected, required permissions, idempotency, or possible 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words, efficiently conveying the core action.

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

Completeness3/5

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

For a simple update tool with 3 clear parameters, the description is minimally adequate but lacks usage guidance and behavioral context, leaving gaps for an AI agent.

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

Parameters3/5

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

Schema coverage is 100%—all parameters have descriptions. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and the resource 'app store version localization', and specifies it updates a specific field, distinguishing it from list/get/create siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, no prerequisites or 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.

upload_app_screenshotB

Upload a local PNG file to a screenshot set. Runs the full three-step flow: reserve the screenshot, upload the file chunks, then commit with the md5 checksum.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute path to the local PNG file to upload
appScreenshotSetIdYesThe ID of the screenshot set to upload into

TDQS

B3.4/5.0
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 add real value by disclosing the compound three-step flow (reserve, chunk upload, commit) and that an md5 checksum is used, which tells the agent this is not a single atomic write. It omits auth/permission requirements, file size or format validation, failure/rollback behavior, and 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core action before the mechanics. The second sentence earns its place by explaining the hidden multi-step flow. The md5 reference is slightly opaque about what the checksum is computed over, a minor imprecision.

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

Completeness3/5

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

No output schema and no annotations, so the description is the sole source of behavior. It explains the upload pipeline adequately but says nothing about the return value (e.g. does it return the created screenshot id?), permission scope, or error handling, leaving meaningful gaps for a mutating file-upload tool.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (filePath, appScreenshotSetId) are already documented in the schema. The description mentions 'local PNG file' and 'screenshot set', echoing the schema without adding format, size, or path constraints beyond it. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (upload) and resource (local PNG into a screenshot set), which is enough to separate it from siblings like create_app_screenshot_set or delete_app_screenshot. It never names an alternative explicitly, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

Usage is only implied: 'upload into a screenshot set' suggests a set must already exist, which distinguishes it from set creation. There is no explicit when-to-use, when-not-to-use, or prerequisite statement (e.g. set must exist, file must be PNG), leaving the agent to infer.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 36 tool updatesv1.1.3
    • First observedadd_tester_to_group
    • First observedcreate_analytics_report_request
    • First observedcreate_app_info_localization
    • First observedcreate_app_screenshot_set
    • First observedcreate_app_store_version
    • First observedcreate_app_store_version_localization
    • First observedcreate_bundle_id
    • First observeddelete_app_screenshot
    • First observeddisable_bundle_capability
    • First observeddownload_analytics_report_segment
    • First observedenable_bundle_capability
    • First observedget_app_info
    • First observedget_app_store_version_localization
    • First observedget_beta_feedback_screenshot
    • First observedget_bundle_id_info
    • First observedlist_analytics_report_instances
    • First observedlist_analytics_report_requests
    • First observedlist_analytics_report_segments
    • First observedlist_analytics_reports
    • First observedlist_app_info_localizations
    • First observedlist_app_screenshot_sets
    • First observedlist_app_screenshots
    • First observedlist_app_store_version_localizations
    • First observedlist_app_store_versions
    • First observedlist_apps
    • First observedlist_beta_feedback_screenshots
    • First observedlist_beta_groups
    • First observedlist_bundle_ids
    • First observedlist_devices
    • First observedlist_group_testers
    • First observedlist_schemes
    • First observedlist_users
    • First observedremove_tester_from_group
    • First observedupdate_app_info_localization
    • First observedupdate_app_store_version_localization
    • First observedupload_app_screenshot

TDQS

B3.2/5.0

Scored across 36 tools

Disambiguation4/5

Most tools target distinct resources and actions, with clear descriptions separating similar-sounding tools like list_app_info_localizations and list_app_store_version_localizations. However, the presence of multiple localization and analytics tools with similar names could cause misselection without careful reading.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., list_apps, create_bundle_id, update_app_info_localization). Verbs are standard and used uniformly across resources.

Tool Count3/5

With 36 tools, the set is heavy for an MCP server, though the breadth of App Store Connect resources justifies some granularity. Many operations are resource-specific and could potentially be consolidated, making the count borderline excessive.

Completeness3/5

The server covers many resources but lacks full CRUD for several key areas: no app creation/update/delete, no beta group management (only tester add/remove), no device registration, and no user management. These notable gaps will limit agents in end-to-end workflows.

Related MCP Connectors

Related MCP Servers