Skip to main content
Glama
JoshuaRileyDev

app-store-connect-mcp-server

App Store Connect MCP Server

A Model Context Protocol (MCP) server for interacting with the App Store Connect API. This server provides tools for managing apps, beta testers, bundle IDs, devices, app metadata, and capabilities in App Store Connect.

Install MCP Server

Overview

The App Store Connect MCP Server is a comprehensive tool that bridges the gap between AI and Apple's App Store Connect ecosystem. Built on the Model Context Protocol (MCP), this server enables developers to interact with their App Store Connect data directly through conversational AI, making app management, beta testing, and analytics more accessible than ever.

Key Benefits:

  • 🤖 AI-Powered App Management: Use natural language to manage your iOS and macOS apps

  • 📊 Comprehensive Analytics: Access detailed app performance, sales, and user engagement data

  • 👥 Streamlined Beta Testing: Efficiently manage beta groups and testers

  • 🌍 Localization Management: Update app descriptions, keywords, and metadata across all languages

  • 🔧 Developer Tools Integration: List Xcode project schemes and integrate with development workflows

  • 🔐 Secure Authentication: Uses official App Store Connect API with JWT authentication

  • 🚀 Real-time Data: Access up-to-date information directly from Apple's systems

Who This Is For:

  • iOS/macOS developers managing apps in App Store Connect

  • Development teams coordinating beta testing programs

  • Product managers analyzing app performance and user engagement

  • Marketing teams managing app metadata and localizations

  • DevOps engineers automating app store workflows

  • Anyone looking to streamline their Apple developer experience

This server transforms complex App Store Connect operations into simple conversational commands, whether you're checking app analytics, managing beta testers, updating app descriptions, or exploring your development pipeline.

Related MCP server: xcode-cloud-mcp

Features

  • App Management

    • List all apps

    • Get detailed app information

    • View app metadata and relationships

  • Beta Testing

    • List beta groups

    • List beta testers

    • Add/remove testers from groups

    • Manage beta test configurations

    • View beta feedback with screenshots and device information

  • App Store Version LocalizationsNEW

    • Create new app store versions with release scheduling

    • List all app store versions for an app

    • List all localizations for an app version

    • Get specific localization details

    • Update app descriptions, keywords, and promotional text

    • Manage marketing and support URLs

    • Update "What's New" text for releases

  • Bundle ID Management

    • List bundle IDs

    • Create new bundle IDs

    • Get bundle ID details

    • Enable/disable capabilities

  • Device Management

    • List registered devices

    • Filter by device type, platform, status

    • View device details

  • User Management

    • List team members

    • View user roles and permissions

    • Filter users by role and access

  • Analytics & Reports

    • Create analytics report requests for apps

    • Download App Store engagement, commerce, and usage analytics

    • Access performance and frameworks usage reports

    • Download sales and trends reports (daily, weekly, monthly, yearly)

    • Download finance reports by region

  • Xcode Development Tools

    • List available schemes in Xcode projects and workspaces

    • Integrate with development workflows and CI/CD pipelines

Installation

Using Smithery

To install App Store Connect Server for Claude Desktop automatically:

npx @smithery/cli install appstore-connect-mcp-server --client claude

Manual Installation

npm install @joshuarileydev/app-store-connect-mcp-server

Configuration

Add the following to your Claude Desktop configuration file:

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": [
        "-y",
        "appstore-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/your/auth-key.p8",
        "APP_STORE_CONNECT_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER_OPTIONAL"
      }
    }
  }
}

Authentication

Required Configuration

  1. Generate an App Store Connect API Key from App Store Connect

  2. Download the .p8 private key file

  3. Note your Key ID and Issuer ID

  4. Set the required environment variables in your configuration:

    • APP_STORE_CONNECT_KEY_ID: Your API Key ID

    • APP_STORE_CONNECT_ISSUER_ID: Your Issuer ID

    • APP_STORE_CONNECT_P8_PATH: Path to your .p8 private key file

Optional Configuration for Sales & Finance Reports

To enable sales and finance reporting tools, you'll also need:

  • APP_STORE_CONNECT_VENDOR_NUMBER: Your vendor number from App Store Connect

Note: Sales and finance report tools (download_sales_report, download_finance_report) will only be available if the vendor number is configured. You can find your vendor number in App Store Connect under "Sales and Trends" or "Payments and Financial Reports".

Complete Tool Reference

📱 App Management Tools

list_apps

Get a list of all apps in App Store Connect.

Parameters:

  • limit (optional): Maximum number of apps to return (default: 100, max: 200)

  • bundleId (optional): Filter by bundle identifier

Example:

"List all my apps"
"Show me apps with bundle ID com.example.myapp"
"Get the first 50 apps"

get_app_info

Get detailed information about a specific app.

Parameters:

  • appId (required): The ID of the app

  • include (optional): Related resources to include (e.g., appClips, appInfos, appStoreVersions, betaGroups, builds)

Example:

"Get info for app ID 123456789"
"Show me app 123456789 with beta groups and builds"
"Get detailed information about my app including app store versions"

👥 Beta Testing Tools

list_beta_groups

List all beta testing groups (internal and external).

Parameters:

  • limit (optional): Maximum number of groups to return (default: 100, max: 200)

  • appId (optional): Filter by app ID

Example:

"Show all beta groups"
"List beta groups for app 123456789"
"Get the first 20 beta groups"

list_group_testers

List testers in a specific beta group.

Parameters:

  • groupId (required): The ID of the beta group

  • limit (optional): Maximum number of testers to return (default: 100, max: 200)

Example:

"List all testers in group ABC123"
"Show me the first 50 testers in beta group ABC123"

add_tester_to_group

Add a new tester to a beta group.

Parameters:

  • groupId (required): The ID of the beta group

  • email (required): Email address of the tester

  • firstName (optional): Tester's first name

  • lastName (optional): Tester's last name

Example:

"Add john@example.com to beta group ABC123"
"Add John Smith (john@example.com) to group ABC123"

remove_tester_from_group

Remove a tester from a beta group.

Parameters:

  • groupId (required): The ID of the beta group

  • testerId (required): The ID of the tester

Example:

"Remove tester XYZ789 from group ABC123"
"Delete tester XYZ789 from beta group ABC123"

list_beta_feedback_screenshots

List beta feedback screenshot submissions.

Parameters:

  • appId (optional): Filter by app ID

  • bundleId (optional): Filter by bundle identifier

  • buildId (optional): Filter by build ID

  • limit (optional): Maximum results (default: 100)

  • includeBuilds (optional): Include build information

  • includeTesters (optional): Include tester information

Example:

"Show beta feedback screenshots for app 123456789"
"List feedback screenshots for bundle ID com.example.app"
"Get feedback with tester info for build XYZ"

get_beta_feedback_screenshot

Get detailed information about a specific beta feedback screenshot.

Parameters:

  • feedbackId (required): The ID of the feedback

  • includeBuilds (optional): Include build information

  • includeTesters (optional): Include tester information

  • downloadScreenshot (optional): Download the screenshot image (default: true)

Example:

"Get feedback screenshot FEEDBACK123"
"Show me feedback FEEDBACK123 with tester details"
"Download screenshot from feedback FEEDBACK123"

🌍 App Store Version Localization Tools

create_app_store_version

Create a new app store version for an app.

Parameters:

  • appId (required): The ID of the app

  • platform (required): The platform (IOS, MAC_OS, TV_OS, VISION_OS)

  • versionString (required): Version string in format X.Y or X.Y.Z (e.g., '1.0' or '1.0.0')

  • copyright (optional): Copyright text for this version

  • releaseType (optional): How the app should be released (MANUAL, AFTER_APPROVAL, SCHEDULED)

  • earliestReleaseDate (optional): ISO 8601 date string (required when releaseType is SCHEDULED)

  • buildId (optional): ID of the build to associate with this version

Example:

"Create iOS version 2.0.0 for app 123456789"
"Create macOS version 1.5.0 for app 123456789 with manual release"
"Create scheduled iOS version 2.1.0 for app 123456789 releasing on 2024-02-01"
"Create version 1.2.0 for app 123456789 with build BUILD456 and copyright '2024 My Company'"

list_app_store_versions

Get all app store versions for a specific app.

Parameters:

  • appId (required): The ID of the app

  • limit (optional): Maximum number of versions to return (default: 100, max: 200)

  • filter (optional): Filter options

    • platform: Filter by platform (IOS, MAC_OS, TV_OS)

    • versionString: Filter by version string (e.g., '1.0.0')

    • appStoreState: Filter by state (e.g., READY_FOR_SALE, PREPARE_FOR_SUBMISSION)

Example:

"List all versions for app 123456789"
"Show iOS versions for app 123456789"
"Find version 2.0.0 for app 123456789"
"List versions in review for app 123456789"

list_app_store_version_localizations

Get all localizations for a specific app store version.

Parameters:

  • appStoreVersionId (required): The ID of the app store version

  • limit (optional): Maximum number of localizations (default: 100, max: 200)

Example:

"List all localizations for app version VERSION123"
"Show me language versions for app store version VERSION123"

get_app_store_version_localization

Get detailed information about a specific localization.

Parameters:

  • localizationId (required): The ID of the localization

Example:

"Get localization details for LOCALE123"
"Show me the French localization LOCALE123"

update_app_store_version_localization

Update a specific field in an app store version localization.

Parameters:

  • localizationId (required): The ID of the localization

  • field (required): Field to update (description, keywords, marketingUrl, promotionalText, supportUrl, whatsNew)

  • value (required): New value for the field

Example:

"Update description for localization LOCALE123 to 'Amazing new app description'"
"Change keywords for LOCALE123 to 'productivity, tasks, organize'"
"Update what's new text for LOCALE123 to 'Bug fixes and performance improvements'"

🔤 Bundle ID Management Tools

create_bundle_id

Register a new bundle ID for app development.

Parameters:

  • identifier (required): The bundle ID string (e.g., 'com.example.app')

  • name (required): A name for the bundle ID

  • platform (required): Platform (IOS, MAC_OS, or UNIVERSAL)

  • seedId (optional): Your team's seed ID

Example:

"Create bundle ID com.mycompany.newapp for iOS named 'My New App'"
"Register universal bundle ID com.example.app called 'Example App'"

list_bundle_ids

Find and list bundle IDs registered to your team.

Parameters:

  • limit (optional): Maximum results (default: 100, max: 200)

  • sort (optional): Sort order (name, -name, platform, -platform, identifier, -identifier)

  • filter (optional): Filter by identifier, name, platform, or seedId

  • include (optional): Include related resources (profiles, bundleIdCapabilities, app)

Example:

"List all bundle IDs"
"Show iOS bundle IDs sorted by name"
"Find bundle IDs containing 'example'"

get_bundle_id_info

Get detailed information about a specific bundle ID.

Parameters:

  • bundleIdId (required): The ID of the bundle ID

  • include (optional): Related resources to include

  • fields (optional): Specific fields to include

Example:

"Get info for bundle ID BUNDLE123"
"Show bundle ID BUNDLE123 with capabilities"

enable_bundle_capability

Enable a capability for a bundle ID.

Parameters:

  • bundleIdId (required): The ID of the bundle ID

  • capabilityType (required): Type of capability (e.g., PUSH_NOTIFICATIONS, ICLOUD, GAME_CENTER)

  • settings (optional): Capability-specific settings

Example:

"Enable push notifications for bundle ID BUNDLE123"
"Add iCloud capability to bundle BUNDLE123"
"Enable Game Center for bundle ID BUNDLE123"

disable_bundle_capability

Disable a capability for a bundle ID.

Parameters:

  • capabilityId (required): The ID of the capability to disable

Example:

"Disable capability CAP123"
"Remove capability CAP123 from bundle ID"

📱 Device Management Tools

list_devices

Get a list of all devices registered to your team.

Parameters:

  • limit (optional): Maximum results (default: 100, max: 200)

  • sort (optional): Sort order (name, platform, status, udid, deviceClass, model, addedDate)

  • filter (optional): Filter by name, platform, status, udid, or deviceClass

  • fields (optional): Specific fields to include

Example:

"List all devices"
"Show enabled iOS devices"
"Find devices with name containing 'John'"
"List iPhones sorted by date added"

👤 User Management Tools

list_users

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

Parameters:

  • limit (optional): Maximum results (default: 100, max: 200)

  • sort (optional): Sort order (username, firstName, lastName, roles)

  • filter (optional): Filter by username or roles

  • fields (optional): Specific fields to include

  • include (optional): Include visibleApps relationship

Example:

"List all team members"
"Show users with admin role"
"Find developers sorted by last name"
"List users with their visible apps"

📊 Analytics & Reports Tools

create_analytics_report_request

Create a new analytics report request for an app.

Parameters:

  • appId (required): The app ID

  • accessType (required): Type of analytics (ONGOING or ONE_TIME_SNAPSHOT)

  • frequency (optional): Report frequency for ongoing reports (DAILY, WEEKLY, MONTHLY)

  • startDate (optional): Start date (YYYY-MM-DD)

  • endDate (optional): End date (YYYY-MM-DD)

Example:

"Create daily analytics report for app 123456789"
"Generate one-time snapshot report for app 123456789 from 2024-01-01 to 2024-01-31"

list_analytics_reports

Get available analytics reports for a request.

Parameters:

  • reportRequestId (required): The report request ID

  • limit (optional): Maximum results (default: 100, max: 200)

  • filter (optional): Filter by category, name, or date

Example:

"List reports for request REQ123"
"Show app usage reports for request REQ123"

list_analytics_report_segments

Get segments for a specific analytics report.

Parameters:

  • reportId (required): The analytics report ID

  • limit (optional): Maximum results (default: 100, max: 200)

Example:

"List segments for report REPORT123"
"Get download URLs for report REPORT123"

download_analytics_report_segment

Download data from an analytics report segment.

Parameters:

  • url (required): The segment download URL

Example:

"Download data from https://api.appstoreconnect.apple.com/..."

💰 Sales & Finance Reports Tools (Requires Vendor Number)

download_sales_report

Download sales and trends reports.

Parameters:

  • frequency (required): Report frequency (DAILY, WEEKLY, MONTHLY, YEARLY)

  • reportDate (required): Date in appropriate format

  • reportType (required): Type of report (SALES, SUBSCRIPTION, SUBSCRIPTION_EVENT, SUBSCRIBER, NEWSSTAND, PREORDER)

  • reportSubType (required): SUMMARY or DETAILED

  • vendorNumber (optional): Override default vendor number

  • version (optional): Report version (default: 1_0)

Example:

"Download daily sales summary for 2024-01-15"
"Get monthly subscription detailed report for 2024-01"
"Download yearly sales summary for 2023"

download_finance_report

Download finance reports for a specific region.

Parameters:

  • reportDate (required): Report date (YYYY-MM)

  • regionCode (required): Region code (e.g., 'Z1' for worldwide)

  • vendorNumber (optional): Override default vendor number

Example:

"Download finance report for January 2024 worldwide"
"Get finance report for 2024-01 region Z1"

🔧 Xcode Development Tools

list_schemes

List all available schemes in an Xcode project or workspace.

Parameters:

  • projectPath (required): Path to .xcodeproj or .xcworkspace file

Example:

"List schemes in /Users/john/MyApp/MyApp.xcodeproj"
"Show available schemes for MyApp.xcworkspace"

Error Handling

The server implements proper error handling for:

  • Invalid authentication

  • Missing required parameters

  • API rate limits

  • Network issues

  • Invalid operations

Development

# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

# Run type checking
npm run type-check

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

25 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_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_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.

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_segmentC

Download data from an analytics report segment URL

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentUrlYesThe URL of the analytics report segment to download

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 burden. It states 'Download data' implying a read operation, but fails to disclose response format, file type, size limits, authentication needs, or state changes. This is insufficient for a download tool.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. However, it may be too brief for the lack of other information.

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's simplicity (1 parameter, no output schema), the description is minimally complete but lacks details about the download output, format, and prerequisites. It does not fully compensate for the missing output schema.

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 a single parameter description. The description adds no additional meaning beyond the schema—it repeats 'URL of the analytics report segment to download'. The baseline is 3 given high coverage, but no extra value is provided.

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 a specific verb 'download' and identifies the resource as 'analytics report segment', clearly stating the action. However, it does not differentiate from siblings that also deal with analytics reports, like 'create_analytics_report_request' or 'list_analytics_report_segments'.

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, no prerequisites mentioned, and no context on whether a segment URL must be obtained via another tool first. The description is silent on usage context.

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_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.7/5.0
Behavior2/5

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

The description lacks behavioral details such as whether the operation is read-only, required permissions, pagination behavior, or rate limits. With no annotations provided, the description carries full burden but fails to disclose these traits.

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, concise sentence that effectively states the core purpose. It is front-loaded and avoids unnecessary words, making it 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?

For a tool with no output schema and three parameters, the description is too brief. It does not explain the return format, pagination, or what 'available' means, leaving significant gaps in understanding.

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 description coverage is 67% (only two out of three top-level parameters have descriptions; 'filter' lacks a top-level description). The description adds no additional meaning beyond the schema, repeating only the requirement of reportRequestId implicitly.

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 tool lists available analytics reports, specifying it is for a specific report request. The verb and resource are clear, but it does not explicitly differentiate from the sibling tool 'list_analytics_report_segments', which lists segments rather than reports.

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 'create_analytics_report_request' or 'download_analytics_report_segment'. There is no mention of prerequisites or context.

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 for a specific analytics report (contains download URLs)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of segments to return (default: 100)
reportIdYesThe ID of the analytics report

TDQS

B3.3/5.0
Behavior2/5

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

The description mentions that segments contain download URLs, but with no annotations, it lacks disclosure of read-only nature, authentication requirements, or side effects, leaving behavioral transparency minimal.

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 redundancy, every word adds value. Front-loaded with key action 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?

For a simple list tool with well-described parameters, the description provides the essential purpose but omits output structure or pagination details. Adequate but not comprehensive.

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 already describes both parameters completely (100% coverage). The description adds no additional parameter meaning beyond the schema's own descriptions, so 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 tool retrieves segments for a specific analytics report and adds that they contain download URLs, distinguishing it from the sibling download_analytics_report_segment which downloads a single segment.

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 like download_analytics_report_segment. The description does not mention prerequisites or context.

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_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_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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 25 tool updatesv1.0.1
    • First observedadd_tester_to_group
    • First observedcreate_analytics_report_request
    • First observedcreate_app_store_version
    • First observedcreate_bundle_id
    • 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_segments
    • First observedlist_analytics_reports
    • 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_store_version_localization

TDQS

B3.4/5.0
Disambiguation5/5

All tools have distinct purposes with clear differences between get, list, create, update, enable, disable, add, and remove operations. No overlapping functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case, e.g., add_tester_to_group, create_analytics_report_request. Naming is predictable and uniform.

Tool Count4/5

25 tools cover many aspects of App Store Connect but feel slightly heavy; however, each tool addresses a distinct operation, so the count is reasonable for the domain's complexity.

Completeness3/5

The set covers important areas like beta groups, analytics, app versions, and bundle IDs, but lacks tools for creating beta groups, managing certificates, or uploading builds, leaving notable gaps.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JoshuaRileyDev/app-store-connect-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server