mcp-appstore-connect
Integrates with Apple's App Store Connect API to manage iOS/macOS apps, TestFlight builds and beta testers, customer reviews, analytics and sales reports, version submissions, subscriptions and in-app purchases, app metadata, pricing, and availability across territories.
Provides tools for managing App Store apps, including creating and updating app versions, submitting for review, responding to reviews, configuring pricing and availability, and managing subscription groups and in-app purchases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-appstore-connectshow me the latest customer reviews for my app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP App Store Connect
An MCP (Model Context Protocol) server for Apple's App Store Connect API. This server enables AI assistants to manage iOS/macOS apps, TestFlight, analytics, reviews, subscriptions, and more.
54 tools available for comprehensive App Store Connect automation.
Features
App Management: List apps, get app details, view app versions
TestFlight: Manage builds, beta testers, and beta groups
Customer Reviews: List reviews, respond to reviews
Analytics: Access sales reports, finance reports, and analytics data
Version Management: Create versions, update metadata, submit for review
Subscriptions & IAP: Manage subscription groups, in-app purchases, and pricing
Metadata Management: Update app descriptions, keywords, what's new, app name, subtitle, privacy policy
Build Management: Set builds for versions, submit for beta review, manage beta localizations
App Review: Configure review details, age ratings, and phased releases
Pricing & Availability: Set app pricing, categories, and territory availability
Related MCP server: App Store Connect MCP Server
Prerequisites
Apple Developer Account with App Store Connect access
API Key from App Store Connect:
Go to App Store Connect
Navigate to Users and Access > Integrations > App Store Connect API
Click Generate API Key (requires Admin role)
Select Admin or App Manager access
Download the
.p8private key file (you can only download it once!)Note your Issuer ID and Key ID
Required Environment Variables
Variable | Description | Required |
| Your Issuer ID from App Store Connect (found in Users and Access > Integrations) | Yes |
| The Key ID of your API key | Yes |
| Contents of your .p8 file with newlines as | One of these |
| Absolute path to your .p8 private key file | One of these |
Installation & Setup
Claude Code
Add to your Claude Code MCP settings:
Via CLI:
claude mcp add-json appstore-connect '{
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}'Or manually edit ~/.claude/settings.json:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}Cursor
Add to your Cursor MCP settings (~/.cursor/mcp.json):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}Windsurf
Add to your Windsurf MCP configuration (~/.windsurf/mcp.json):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}Using Private Key Content Instead of Path
If you prefer to use the key content directly (useful for CI/CD or environments without file access):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\nMIGT...your-key-content...\n-----END PRIVATE KEY-----"
}
}
}
}Install from Source
git clone https://github.com/ahmetsina/mcp-appstore-connect.git
cd mcp-appstore-connect
npm install
npm run buildThen use the local path in your MCP config:
{
"mcpServers": {
"appstore-connect": {
"command": "node",
"args": ["/path/to/mcp-appstore-connect/dist/index.js"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}Available Tools
Apps (3 tools)
Tool | Description |
| List all apps in your account |
| Get detailed app information |
| List app versions |
TestFlight (6 tools)
Tool | Description |
| List TestFlight builds |
| Get build details |
| List beta testers |
| Add tester to beta group |
| Remove a beta tester |
| List beta groups |
Reviews (4 tools)
Tool | Description |
| Get customer reviews |
| Get specific review |
| Reply to a review |
| Delete a response |
Analytics (5 tools)
Tool | Description |
| List analytics requests |
| Create analytics request |
| List available reports |
| Sales report info |
| Finance report info |
Versions (5 tools)
Tool | Description |
| Create new version |
| Update version metadata |
| Submit for App Store review |
| Check review status |
| Get localization info |
Subscriptions & IAP (6 tools)
Tool | Description |
| List subscription groups |
| List subscriptions |
| Get subscription details |
| List IAPs |
| Get IAP details |
| Get pricing info |
Metadata (6 tools)
Tool | Description |
| Update description, keywords, what's new, promotional text, URLs |
| Create localization for a new language |
| Get app info ID for app-level localizations |
| List localizations (name, subtitle, privacy policy) |
| Update app name, subtitle, privacy policy |
| Create app info localization for new language |
Build Management (9 tools)
Tool | Description |
| Update build attributes (export compliance) |
| Associate a build with an App Store version |
| Submit build for TestFlight beta review |
| Get beta app review submission status |
| List "What to Test" notes |
| Update "What to Test" notes |
| Create "What to Test" for new locale |
| Add build to TestFlight group |
| Remove build from beta group |
App Review & Submission (9 tools)
Tool | Description |
| Get review details (contact, demo account, notes) |
| Update review details for submission |
| Create review details for a version |
| Get age rating settings |
| Update age rating content declarations |
| Get phased release status |
| Create phased release (gradual rollout) |
| Pause, resume, or complete phased release |
| Delete phased release configuration |
Pricing & Categories (8 tools)
Tool | Description |
| List available App Store categories |
| Update app's primary/secondary categories |
| List all territories with currency codes |
| List price points for an app in a territory |
| Get current price schedule |
| Set app pricing |
| Get territories where app is available |
| Set app availability by territory |
Resources
The server also exposes MCP resources:
appstore://apps- List of all appsappstore://apps/{appId}- Specific app detailsappstore://apps/{appId}/reviews- App reviews
Rate Limits
The App Store Connect API has rate limits:
~3,600 requests per hour
~300 requests per minute
The server automatically handles rate limiting with:
Rate limit header parsing
Exponential backoff on 429 errors
Warning logs when approaching limits
Error Handling
The server provides detailed error messages for:
Authentication failures (invalid credentials)
Rate limit exceeded
Invalid requests (400 errors)
Server errors (5xx with retry)
Development
# Run in development mode
npm run dev
# Type check
npm run typecheck
# Run tests
npm test
# Lint
npm run lint
# Build for production
npm run buildTroubleshooting
"Missing APP_STORE_ISSUER_ID" Error
Make sure all required environment variables are set in your MCP configuration. The path to your .p8 file must be an absolute path.
"Authentication failed" Error
Verify your Issuer ID and Key ID are correct
Ensure your API key has the required permissions (Admin or App Manager)
Check that your
.p8file is valid and hasn't been modified
"Rate limit exceeded" Error
The server will automatically retry with exponential backoff. If you consistently hit rate limits, reduce the frequency of your requests.
License
MIT
Author
Ahmet Sina Ustem (@ahmetsina)
Available Tools
61 toolsadd_beta_testerA
Add a beta tester to a beta group. Creates the tester if they don't exist and adds them to the specified group.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address of the beta tester | ||
| first_name | No | Tester's first name | |
| last_name | No | Tester's last name | |
| beta_group_id | Yes | The beta group ID to add the tester to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the key behavior of auto-creating the tester if they don't exist. However, no annotations provided, and the description does not cover other important aspects like permissions, idempotency, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences that are front-loaded and contain no extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and a behavioral nuance, but lacks information on idempotency, error conditions, and return values (no output schema). Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no additional meaning beyond what the schema already provides for parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: adding a beta tester to a beta group. It also mentions the 'create if not exist' behavior, which adds specificity and distinguishes from siblings like 'remove_beta_tester'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage from name and description, but no explicit when-to-use or when-not-to-use. No mention of prerequisites (e.g., beta group existence) or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_build_to_beta_groupB
Add a build to a beta group for TestFlight distribution. The build must be approved for beta testing (or internal only).
| Name | Required | Description | Default |
|---|---|---|---|
| beta_group_id | Yes | The beta group ID | |
| build_id | Yes | The build ID to add to the group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions a prerequisite but does not explain what happens if the build is not approved, if the build is already in the group, or if the operation is idempotent. Significant behavioral gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action. No wasted words. However, it could incorporate more useful information without increasing length, such as error conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is mostly adequate. It covers the core action and one key prerequisite, but lacks details on error handling, idempotency, and differentiation from siblings. Slightly more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters adequately described. The description adds no additional meaning beyond the schema; it only restates the parameter names in the action. Baseline for high coverage is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: 'Add a build to a beta group for TestFlight distribution.' It specifies the verb 'add', the objects 'build' and 'beta group', and the context 'TestFlight distribution'. This distinguishes it from siblings like 'remove_build_from_beta_group'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite: 'The build must be approved for beta testing (or internal only).' This gives some context, but there is no explicit comparison to alternative tools or guidance on when not to use it. Usage is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_analytics_report_requestB
Create a new analytics report request for an app. This initiates the generation of analytics reports.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| access_type | Yes | ONE_TIME_SNAPSHOT for historical data, ONGOING for continuous access |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only says 'initiates the generation', failing to clarify if it's asynchronous, what happens after, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal with two sentences, no redundant information, and is front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters and no output schema, the description lacks information on what happens after initiation, how to check status, or potential errors, making it incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters documented. The description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'analytics report request', and distinguishes from sibling tools like 'list_analytics_report_requests' and 'list_analytics_reports'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives, nor does it mention prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_app_info_localizationA
Create a new app info localization for a specific locale. Use this to add app name and subtitle for a new language.
| Name | Required | Description | Default |
|---|---|---|---|
| app_info_id | Yes | The App Info ID (from get_app_info) | |
| locale | Yes | Locale code (e.g., en-US, ja, fr-FR) | |
| name | No | App name (max 30 chars) | |
| subtitle | No | App subtitle (max 30 chars) | |
| privacy_policy_text | No | Privacy policy text (for tvOS) | |
| privacy_policy_url | No | Privacy policy URL | |
| privacy_choices_url | No | Privacy choices URL |
TDQS
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 only says 'Create' and implies mutation, but does not mention idempotency, duplicate handling, dependencies (e.g., app_info_id must exist), or side effects. This is insufficient for a create tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences, no wasted words. The first sentence states the action and resource, the second adds usage context. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 hint at return values or errors. It does not. It also lacks prerequisites or notes on when to use this vs update_app_info_localization. For a tool with 7 parameters and many siblings, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 context by mentioning 'app name and subtitle' but ignores other parameters like privacy_policy_text. It does not explain required vs optional or add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and resource 'app info localization', specifying it is for a specific locale and to add app name and subtitle. This distinguishes it from siblings like update_app_info_localization and list_app_info_localizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use this to add app name and subtitle for a new language,' which implies when to use it (for new languages). It does not explicitly state when not to use it or mention alternatives like list or update, 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.
create_app_store_review_detailA
Create App Store review details for a version. Use this if no review details exist yet.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID | |
| contact_first_name | No | Contact first name | |
| contact_last_name | No | Contact last name | |
| contact_phone | No | Contact phone number | |
| contact_email | No | Contact email address | |
| demo_account_name | No | Demo account username | |
| demo_account_password | No | Demo account password | |
| demo_account_required | No | Whether demo account is required | |
| notes | No | Notes for App Review team |
TDQS
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 only states 'Create' with no mention of prerequisites, side effects, error conditions (e.g., if review details already exist), or whether the operation is idempotent. This is insufficient for a write operation without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the action and usage context, making it easy for an agent to quickly understand the tool's purpose and when to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 9 parameters (many optional) and no output schema, the description does not explain the return value, prerequisites (e.g., version must exist), or any constraints on the fields. Given the complexity and lack of annotations, more context is needed for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters. The tool description adds no additional meaning or context 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.
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 'App Store review details for a version'. It also distinguishes from sibling tools like 'get_app_store_review_detail' and 'update_app_store_review_detail' by implying it is for initial creation only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit guidance: 'Use this if no review details exist yet.' This provides clear context for when to use the tool. It does not explicitly state when not to use, but the existence of sibling 'update_app_store_review_detail' implies the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_app_versionA
Create a new App Store version for an app. Use this to prepare a new release.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| version_string | Yes | Version number (e.g., 1.2.3) | |
| platform | Yes | Target platform | |
| release_type | No | When to release after approval | AFTER_APPROVAL |
| earliest_release_date | No | For SCHEDULED release type, ISO 8601 date (e.g., 2024-03-15T00:00:00Z) |
TDQS
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 the action without revealing whether the version is created as a draft, submission implications, or required prior steps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear front-loading of purpose. No extraneous words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a creation tool with no output schema and moderate complexity (5 params, enums), the description provides minimal context beyond the action. It lacks details on what the tool returns, side effects, or typical usage patterns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description adds no additional parameter-level meaning beyond the high-level action. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and resource 'App Store version', and the phrase 'prepare a new release' differentiates it from sibling tools like update_app_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit usage context ('prepare a new release') but does not explicitly state when not to use or mention alternative tools. No guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_beta_build_localizationB
Create a new beta build localization (What to Test notes) for a specific locale.
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | Yes | The build ID | |
| locale | Yes | Locale code (e.g., en-US, ja, fr-FR) | |
| whats_new | Yes | What to Test notes for TestFlight testers |
TDQS
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 indicates a write operation ('Create') but does not mention potential errors, idempotency, side effects, or constraints such as uniqueness per locale per build. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the tool's purpose with no redundancy or unnecessary words. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tool returns or possible outcomes. It omits whether a successful creation returns the localization object, and does not address failure scenarios like duplicate locales or missing builds. Incomplete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate parameter descriptions. The tool description adds no additional semantic context beyond what the schema already provides. For example, 'build_id' is simply 'The build ID' in both. No extra elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'beta build localization', and specifies the scope as 'What to Test notes for a specific locale'. It distinctly identifies the tool's function and differentiates it from update and list siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when creating localization notes for a locale but provides no explicit guidance on when not to use this tool or when to prefer alternatives like update_beta_build_localization. No prerequisites or constraints are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_phased_releaseA
Create a phased release for an App Store version. Phased release gradually rolls out the update to users over 7 days.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID | |
| phased_release_state | No | Initial state: ACTIVE to start phased release, INACTIVE to prepare but not start | ACTIVE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It mentions gradual rollout over 7 days but does not disclose other behaviors like the effect of the phased_release_state parameter (can be set to INACTIVE to prepare without starting). No mention of permissions or side effects, but for a creation tool, transparency is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly concise: two sentences, front-loaded with purpose, no redundant words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what phased release is, but does not mention what the tool returns (likely the created release), nor the requirement that a version must exist. No output schema, so more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description adds no additional meaning beyond the schema. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a phased release for an App Store version and explains what a phased release does (gradually rolls out over 7 days). It is distinct from sibling tools like update_phased_release or delete_phased_release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as update_phased_release or get_phased_release. There is no mention of prerequisites, like the existence of an App Store version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_version_localizationA
Create a new App Store version localization for a specific locale. Use this to add support for a new language.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID | |
| locale | Yes | Locale code (e.g., en-US, ja, fr-FR, de-DE, zh-Hans) | |
| description | No | App description | |
| keywords | No | Keywords (comma-separated, max 100 chars) | |
| whats_new | No | What's new in this version | |
| promotional_text | No | Promotional text | |
| marketing_url | No | Marketing URL | |
| support_url | No | Support URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'create' without disclosing behavioral details like overwriting behavior, permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a straightforward creation tool, but lacks details on return values, error conditions, or limitations, especially with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The tool description adds no additional parameter context beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a new App Store version localization for a locale, distinguishing it from sibling tools like update_version_localization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this to add support for a new language, providing clear context. However, no mention of when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_phased_releaseA
Delete a phased release configuration. This removes phased release and will release to all users at once.
| Name | Required | Description | Default |
|---|---|---|---|
| phased_release_id | Yes | The phased release ID to delete |
TDQS
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 adds behavioral context by stating that deleting the phased release will release the app to all users at once. This goes beyond the input schema and helps the agent understand the consequence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It is front-loaded with the action and resource, then explains the consequence. The structure is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description is complete. It explains what happens upon deletion (release to all users). No additional information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter with a description. Schema coverage is 100%, so baseline is 3. The description does not add new meaning beyond the schema, as it only repeats the context of the resource being deleted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it deletes a phased release configuration. It distinguishes from sibling tools like create_phased_release, get_phased_release, and update_phased_release by using the verb 'Delete' and specifying the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to delete a phased release, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. For a delete operation, the context is straightforward, but it could be improved by noting that this action is irreversible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_review_responseB
Delete a response to a customer review.
| Name | Required | Description | Default |
|---|---|---|---|
| response_id | Yes | The customer review response ID |
TDQS
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 only states the action ('Delete') without noting irreversibility, authentication needs, or side effects. This is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 7 words with no redundant information. It is perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description is adequate but lacks important context about permanence or implications. It is minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter fully described. The description does not add any extra meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a response to a customer review'). It is specific and distinct from sibling tools like 'respond_to_review', but does not explicitly differentiate from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs. alternatives (e.g., 'respond_to_review' for creating responses). No when/when-not or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_age_rating_declarationA
Get the age rating declaration for an App Store version. Returns current age rating settings.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation by stating 'Returns current age rating settings,' but with no annotations provided, it does not disclose potential restrictions, permissions, or whether the response includes full details of the declaration. A 3 is appropriate for basic clarity without depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the purpose, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one required parameter, the description is mostly complete. It does not explain what 'age rating settings' entails, but for a getter, this is generally sufficient. Could be improved by listing returned fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the parameter version_id is already documented. The description adds no additional meaning beyond the schema, so a baseline score of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the age rating declaration for an App Store version, using the verb 'Get' and specifying the resource. It distinguishes itself from sibling tools like update_age_rating_declaration which modifies the declaration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading current age settings but lacks explicit guidance on when to use this tool versus alternatives like update_age_rating_declaration or get_review. No when-not-to-use or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appC
Get detailed information about a specific app by its App Store Connect ID.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| include | No | Related resources to include in the response |
TDQS
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 does not disclose any behavioral traits such as required permissions, rate limits, or error handling for invalid app IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the core purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain what 'detailed information' includes, but it does not. It also omits details on error responses, pagination, or response structure, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds no meaningful information beyond the schema. It restates the identifier requirement but does not elaborate on the 'include' parameter or provide usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a specific app using its App Store Connect ID. However, it does not distinguish itself from sibling tools like get_app_info or get_app_store_review_detail, which might also retrieve app-related details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like get_app_info or list_apps, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_availabilityB
Get the availability (territories where the app is available) for an app.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states the function without disclosing behavioral traits like rate limits, idempotency, or side effects. Minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy. Every word adds value, and the structure is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description adequately specifies what it returns (territories availability). It is sufficient for an agent to understand the tool's purpose, though additional details about response format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'app_id', which has a description. The tool description does not add extra meaning beyond the schema; it only restates the overall purpose. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'app availability', and specifies that availability refers to territories. It distinguishes the tool from siblings like 'set_app_availability' and 'get_app'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as 'set_app_availability' or other getter tools. The description lacks context about prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_infoA
Get app info for an app. Returns the app info ID needed for updating app-level localizations (name, subtitle).
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the burden. It describes the return value (app info ID) but lacks details on authentication, error handling, or side effects, which is acceptable for a simple read operation but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise, front-loaded sentences with no wasted words, effectively communicating the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the absence of an output schema, the description adequately indicates the key return value. However, it could be more complete by noting typical response structure or additional fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'app_id' parameter. The description adds value by explaining the purpose of the return value (app info ID for localizations), which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'app info'. It distinguishes from sibling tools by specifying the purpose: returning the app info ID needed for updating app-level localizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to get the app info ID for localizations), but does not explicitly mention when not to use it or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_price_scheduleB
Get the current price schedule for an app, including base territory and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), but does not mention any side effects, authorization needs, rate limits, or constraints on the returned data. The description is too brief to be fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words with no filler. It is front-loaded with the verb and resource, making it immediately actionable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description is mostly complete. It specifies the resource ('price schedule') and scope ('current', 'including base territory and pricing'). However, it could optionally mention that the return value is a price schedule object, but this is not critical given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 single parameter 'app_id' as 'The App Store Connect app ID'. The description adds no additional semantics beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'current price schedule for an app, including base territory and pricing'. It effectively distinguishes this read operation from write siblings like set_app_price_schedule and other retrieval tools like get_subscription_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Among the sibling tools, there are several related to pricing (e.g., get_subscription_prices, list_app_price_points, set_app_price_schedule) but the description does not clarify how this tool differs or when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_store_review_detailA
Get the App Store review details for a version (contact info, demo account, notes for reviewers).
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID |
TDQS
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 idempotence, required permissions, error behavior, or rate limits. It only implies a read operation without elaboration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded with the core purpose, followed by clarifying examples in parentheses. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter input and no output schema, the description adequately explains what the tool returns. It could mention error handling or scope of data, but is sufficiently complete for a straightforward retrieval operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'version_id' described as 'The App Store version ID'. The description does not add any additional meaning or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'App Store review details for a version', and provides specific examples (contact info, demo account, notes for reviewers) that distinguish it from sibling tools like 'create_app_store_review_detail' and 'update_app_store_review_detail'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when needing review details for a version, but does not explicitly state when to use it versus alternatives like create or update, nor does it mention 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.
get_app_store_stateA
Get the current App Store state of a version (e.g., PREPARE_FOR_SUBMISSION, IN_REVIEW, READY_FOR_SALE).
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID |
TDQS
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 fails to disclose whether the operation is read-only, what happens if the version_id is invalid, or any permission requirements. The description is minimal and lacks behavioral context beyond stating what is retrieved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is efficient and free of fluff. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description provides example state values, partially compensating for the lack of return value documentation. It is fairly complete for a simple getter, though it could list all possible states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (version_id), with a clear description. The tool description does not add meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), the resource (App Store state of a version), and provides concrete examples of state values (PREPARE_FOR_SUBMISSION, IN_REVIEW, READY_FOR_SALE). This differentiates it from sibling tools like get_app_versions (which lists versions) and get_review (which gets review details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for checking the current state of a version, but it does not explicitly state when to use it versus alternatives (e.g., get_review or get_build). No guidance on prerequisites, context, or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_versionsA
Get all App Store versions for a specific app, including version string, platform, and release state.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| platform | No | Filter by platform | |
| state | No | Filter by App Store state | |
| limit | No | Maximum number of versions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully convey behavior. It states this is a read-only operation ('Get all App Store versions') but omits details on pagination, rate limits, required permissions, or whether the result is sorted. The mention of a 'limit' parameter hints at return size, but behavior is otherwise minimally described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the tool's purpose and includes key details. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 clarify the return format. It mentions return fields but not the structure (e.g., array of objects) or pagination behavior. The 'limit' parameter is acknowledged but its relationship to total results is unclear. For a simple retrieval tool, this is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it only loosely ties the return fields to the purpose. For example, it doesn't explain how 'platform' or 'state' filters work beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the action ('get'), the resource ('App Store versions'), and the context ('for a specific app'). It also lists key return fields (version string, platform, release state), distinguishing it from sibling tools like 'get_app' or 'get_build'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing versions for a given app but offers no explicit guidance on when not to use it or alternatives. It does not differentiate from similar list tools such as 'list_builds' or 'list_apps', leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_beta_review_statusB
Get the beta app review submission status for a build.
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | Yes | The build ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only states it's a 'get' operation, implying read-only, but does not confirm safety, auth needs, rate limits, or behavior when build is not submitted for beta review.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no unnecessary words. Could be slightly more informative but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple one-param tool with no output schema. Description is adequate but lacks details on return value format. For a read operation, some minimal expectations could be added.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra meaning beyond 'The build ID' in the schema. Baseline 3 is appropriate as parameter meaning is clear from schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and the resource 'beta app review submission status for a build', which is specific and distinguishes from siblings like 'get_review' or 'submit_build_for_beta_review'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'get_review' or 'list_reviews'. No prerequisites or contextual hints provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buildA
Get detailed information about a specific TestFlight build.
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | Yes | The build ID | |
| include | No | Related resources to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation ('Get detailed information') but provides no further behavioral details beyond what's inherent. With no annotations, the description carries the full burden; it adds basic context but falls short on disclosing error handling, authentication needs, or response nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. However, it could incorporate additional useful context (e.g., about the include parameter) without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides minimal but functional completeness. It describes the core purpose but does not explain what 'detailed information' includes or how the optional include parameter affects the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond 'TestFlight build'; it does not clarify what the 'include' parameter's enum values do or provide context for 'build_id' format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb ('Get') and resource ('detailed information about a specific TestFlight build'), distinguishing it from sibling tools like list_builds (list) and update_build (modify).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single build's details, which is clear from the name. However, no explicit guidance on when to use this versus listing builds or other get tools, neither are exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_finance_reports_infoB
Get information about available finance reports. Finance reports contain earnings, payments, and tax data.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor_number | Yes | Your vendor number from App Store Connect | |
| region_code | Yes | Two-letter region code (e.g., US, EU, JP) | |
| report_type | Yes | Type of finance report | |
| fiscal_year | Yes | Fiscal year (e.g., 2024) | |
| fiscal_period | Yes | Fiscal period within the year (e.g., 01-12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states 'Get information' implying a read operation, but fails to disclose any side effects, authentication requirements, or what exactly 'information' entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. However, the structure could be improved by front-loading key details or organizing the information more effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 required parameters, no output schema, and no annotations, the description is insufficient. It does not explain what the returned information looks like, how the parameters affect the results, or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 5 parameters with descriptions (100% coverage). The description adds no additional parameter semantics beyond what the schema 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.
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 'information about available finance reports,' specifying that they contain earnings, payments, and tax data. This effectively differentiates from sibling tools like get_sales_reports_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention prerequisites, when not to use it, or how it relates to similar tools like get_sales_reports_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_in_app_purchaseB
Get detailed information about a specific in-app purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| iap_id | Yes | The in-app purchase ID | |
| include | No | Related resources to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description minimally says 'Get detailed information', implying a read operation. It does not disclose error handling, rate limits, or return format details, but it does not contradict any known behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key action and resource. No unnecessary words, making it highly efficient for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description only mentions 'detailed information' without hinting at response structure. For a simple getter with two parameters, it is minimally complete but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond the schema's parameter descriptions, such as how to use the 'include' array effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves detailed information for a specific in-app purchase, distinguishing it from list_in_app_purchases. However, it does not explicitly contrast with siblings, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 list_in_app_purchases, nor any preconditions or limitations. The agent must infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phased_releaseA
Get the phased release information for an App Store version.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the sole source. It implies a read-only operation by using 'Get', but does not explicitly state safety, permissions, or error behavior (e.g., if version_id is invalid). Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature (1 param, no output schema), the description is mostly complete. However, it could hint at the return structure (e.g., state field) for better contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the only parameter 'version_id'. The tool description adds no further 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and resource 'phased release information' with scope 'for an App Store version'. It clearly distinguishes from sibling tools like create_phased_release, delete_phased_release, and update_phased_release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., other getters like get_app or get_build). No mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewB
Get a specific customer review with optional response information.
| Name | Required | Description | Default |
|---|---|---|---|
| review_id | Yes | The customer review ID | |
| include_response | No | Include the developer response if one exists |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It indicates a read operation via 'Get' but does not disclose behavioral traits like authentication needs, error handling, or rate limits. The minimal description leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action verb 'Get'. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about return values or prerequisites. It adequately describes the basic operation but is incomplete for a full understanding of the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds vague context by mentioning 'optional response information,' but it does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific customer review' with an optional inclusion of response information. This verb+resource combo is specific and distinct from sibling tools like list_reviews or respond_to_review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as list_reviews (for multiple reviews) or respond_to_review (for replying). The description lacks explicit contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_reports_infoC
Get information about available sales and trends reports. Note: Actual report download requires handling gzip data.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor_number | Yes | Your vendor number from App Store Connect | |
| report_type | Yes | Type of sales report | |
| report_sub_type | Yes | Sub-type of the report | |
| frequency | Yes | Report frequency | |
| report_date | Yes | Report date in format YYYY-MM-DD (daily), YYYYMMDD (weekly uses Sunday date), YYYY-MM (monthly) |
TDQS
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 that 'actual report download requires handling gzip data,' hinting at output compression but omitting details on read-only nature, auth requirements, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and front-loaded with purpose. The gzip note is relevant but could be positioned better. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so the description must explain return values. It fails to describe the output structure, pagination, or error handling. The gzip hint is useful but insufficient for a 5-param tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; it simply states the tool's function without elaborating on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get information about available sales and trends reports,' clearly identifying the verb and resource. It distinguishes from siblings like 'get_finance_reports_info' by specifying sales and trends, but could be more precise about what 'information' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'get_finance_reports_info'. There are no explicit when-to-use or when-not-to-use instructions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionA
Get detailed information about a specific subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | The subscription ID | |
| include | No | Related resources to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must alone convey behavioral traits. It states 'Get detailed information,' implying a read-only operation with no destructive side effects. This is sufficient for a simple GET tool, though it omits potential authentication or rate limit details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the purpose with no filler words. It is front-loaded and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple get operation with two well-documented parameters, but it does not explain the return value or what 'detailed information' entails, leaving some gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear schema descriptions for both parameters ('The subscription ID', 'Related resources to include'). The tool description adds no additional meaning beyond the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed information about a specific subscription' clearly specifies the action (get) and resource (subscription), distinguishing it from siblings like 'list_subscriptions' (which retrieves all subscriptions) and 'get_subscription_prices' (focused on prices).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs alternatives. While the sibling list implies usage when a specific subscription's details are needed, no direct when-to or when-not-to guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_pricesA
Get pricing information for a subscription across different territories.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | The subscription ID | |
| territory | No | Filter by territory code (e.g., USA, GBR, JPN) | |
| limit | No | Maximum number of prices to return |
TDQS
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 whether the tool is read-only, if specific permissions are needed, or what happens when a subscription doesn't exist. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain the return format (e.g., list of prices with currencies) or behavior like pagination. For a simple query with 3 params, it is somewhat complete but lacks details about output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover all 3 parameters (100% coverage), so the baseline is 3. The description adds context with 'across different territories' but does not provide additional meaning beyond what the schema already offers for the 'territory' or 'limit' parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 pricing information for a subscription across different territories.' It uses a specific verb ('Get') and resource ('pricing information') and distinguishes from siblings like get_subscription (general subscription info) and get_app_price_schedule (app prices).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a basic purpose but does not explicitly state when to use this tool versus alternatives like list_subscriptions or get_subscription. It lacks guidance on scenarios, prerequisites, or exclusions, making it adequate but limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_analytics_report_requestsB
List analytics report requests for an app. These are used to access advanced analytics data.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| limit | No | Maximum number of requests to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; the description does not disclose read-only nature, permissions, pagination, or any side effects. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Could be slightly more informative but maintains good conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context on return values or behavior. It lacks completeness for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters; the description adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists analytics report requests, differentiating from sibling like list_analytics_reports which lists reports themselves. The verb 'list' is specific and the resource 'analytics report requests' is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_analytics_reports). No prerequisites, context, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_analytics_reportsB
List available analytics reports for a report request. Reports contain metrics like downloads, sessions, crashes, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| report_request_id | Yes | The analytics report request ID | |
| category | No | Filter by report category | |
| limit | No | Maximum number of reports to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits (e.g., read-only, pagination, auth needed). It only states it lists reports but omits constraints or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Front-loaded with the action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple tool, description covers purpose and report content. Lacks mention of return format or limit usage, but otherwise adequate for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 3 parameters described). The description adds minimal extra context ('Reports contain metrics like downloads...') but does not enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List available analytics reports for a report request' with specific verb and resource. It distinguishes from sibling tools like list_analytics_report_requests (which lists requests) and create_analytics_report_request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., after creating a request, before fetching data). Siblings list_analytics_report_requests and create_analytics_report_request exist but no usage context 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_categoriesA
List all available App Store categories. Use this to find category IDs for updating your app's categorization.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Filter categories by platform | |
| limit | No | Number of categories to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states 'List all available' without mentioning filtering, pagination, read-only nature, rate limits, or any constraints. Insufficient disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with action and purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so the description should explain what is returned. It mentions 'category IDs' but doesn't specify if it returns names, IDs, or both. Lacks detail on response structure given the absence of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with param descriptions. The description adds context by linking parameters to the goal of finding category IDs, which enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available App Store categories and mentions the purpose of finding category IDs. While it doesn't explicitly differentiate from sibling list tools, the resource is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states a use case: finding category IDs for updating app categorization. This provides clear context, though it doesn't mention 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_app_info_localizationsA
List all app info localizations for an app info. Returns localization IDs and current values for name, subtitle, privacy policy.
| Name | Required | Description | Default |
|---|---|---|---|
| app_info_id | Yes | The App Info ID (from get_app_info) | |
| locale | No | Filter by specific locale |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It indicates a read operation ('List all...') and specifies return fields, implying no side effects. However, it does not explicitly guarantee idempotency or mention permissions, but the intent is clear enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the action and outcome, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and return fields but omits details about the optional 'locale' filter (only in schema), pagination, error conditions, or output structure. Without an output schema, more context would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add meaning beyond the schema for parameters; it only mentions return values. No parameter details or clarifications are added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing all app info localizations for a given app info. It specifies the returned data (localization IDs and values for name, subtitle, privacy policy), distinguishing it from sibling tools like 'create_app_info_localization' or 'update_app_info_localization'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used to retrieve existing localizations, but it does not explicitly state when to use it versus alternatives (e.g., 'get_app_info' for single info, or 'create_app_info_localization' for adding). No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_app_price_pointsA
List available price points for an app in a specific territory. Use this to find the price point ID for setting prices.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| territory | No | Territory code (e.g., USA, GBR, JPN, DEU) | USA |
| limit | No | Number of price points to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states it lists price points but does not disclose details about pagination, rate limits, or output structure beyond the price point ID. It is adequate but lacks depth for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the purpose. Every sentence is meaningful, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, no output schema, and no annotations, the description covers the essential action and use case. It is complete enough for an agent to understand the core functionality, though additional output details could improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (app_id, territory, limit) is adequately described in the schema. The description adds no additional meaning to parameters beyond the schema. Baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'available price points for an app in a specific territory.' It also specifies the user goal: 'Use this to find the price point ID for setting prices.' This distinguishes it from siblings like get_app_price_schedule, which likely retrieves the current schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this to find the price point ID for setting prices.' This provides clear context. Although it does not mention when not to use it or list alternatives, the sibling tools are diverse and the purpose is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appsB
List all apps in your App Store Connect account. Returns app name, bundle ID, SKU, and other metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| filter_name | No | Filter apps by name (case-insensitive contains match) | |
| filter_bundle_id | No | Filter apps by bundle ID | |
| limit | No | Maximum number of apps to return (1-200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims 'List all apps' but includes a limit parameter that caps results (1-200), potentially misleading the agent. No annotations exist, so the description fails to disclose pagination behavior, authorization needs, or other side effects beyond returning metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence, front-loading the purpose and distinguishing features. It is appropriately concise for a simple list tool, though it could be restructured to highlight the limit constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description mentions return fields (name, bundle ID, SKU). However, the phrase 'List all apps' conflicts with the limit parameter, and no pagination or error handling info is provided. For a tool with optional filters, the description lacks crucial behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents parameters (filter_name, filter_bundle_id, limit). The description adds no new parameter details beyond the schema, achieving only the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (list) and resource (apps), distinguishing it from siblings like get_app (single app) and list_builds (builds). It specifies the returned metadata (name, bundle ID, SKU), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing apps but does not explicitly state when to use this tool versus alternatives like get_app for a single app or list_builds. No exclusions or best practices are provided, leaving the agent to infer from context.
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
List localization information for an App Store version (what's new, description, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID | |
| locale | No | Filter by locale (e.g., en-US, ja, fr-FR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It implies a read-only list operation with no side effects, but does not specify authentication needs, rate limits, or whether results are paginated. Basic transparency but missing details like return fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is front-loaded with action and resource, concise and no filler. Could be slightly longer to include essential details but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 2 params and no output schema, the description is adequate but incomplete. It doesn't specify the structure of the return value or any sorting/filtering behavior, which may leave the agent guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. Description adds semantic value by explaining 'localization information' includes 'what's new, description, etc.', giving context beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'localization information for an App Store version' with examples like 'what's new, description, etc.' It distinguishes from siblings like list_app_info_localizations by specifying 'App Store version' vs app-level info, though not explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as create_version_localization or update_version_localization. Agent must infer from tool names; no usage context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_beta_build_localizationsA
List all beta build localizations for a build. These contain the 'What to Test' notes shown to TestFlight testers.
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | Yes | The build ID | |
| locale | No | Filter by specific locale |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only operation via 'list' but does not explicitly confirm no side effects, nor does it mention pagination or other behavioral traits. Basic transparency for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, clear sentences with no redundancy or unnecessary words. Front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's purpose and the content of the localizations. However, without an output schema, it could mention the return format (list of objects) or pagination behavior. Still sufficient for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's parameter definitions. It does not explain locale filtering or build_id format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'beta build localizations for a build'. It also explains what these localizations contain ('What to Test' notes), which adds context and distinguishes from sibling tools like create_beta_build_localization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide when to use this tool versus alternatives (e.g., create_beta_build_localization for adding new localizations) or any exclusion criteria. No guidance is given for usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_beta_groupsB
List beta groups for an app. Returns group name, whether it's internal, public link info, and creation date.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| is_internal | No | Filter by internal/external group type | |
| limit | No | Maximum number of groups to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It does not mention whether the operation is read-only, auth requirements, rate limits, or pagination behavior. Returns are described but side effects are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: one sentence for purpose, one for returns. No unnecessary words. Could be slightly improved by including usage context, but as is, it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description includes return fields. However, it lacks details on pagination, default sorting, or how the limit parameter interacts with the list. With 3 parameters, additional context would help, but it's minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add much for parameters. However, it adds no extra meaning beyond the schema—e.g., it doesn't explain how is_internal affects results or the effect of limit. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List beta groups for an app' and specifies return fields (name, internal status, public link info, creation date). This uniquely identifies the tool among siblings, as no other tool lists beta groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 list_beta_testers. No prerequisites or context about filtering or ordering. The description only states the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_beta_testersA
List beta testers for an app or beta group. Returns tester email, name, invite status, and state.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | No | Filter by app ID | |
| beta_group_id | No | Filter by beta group ID | |
| No | Filter by tester email | ||
| limit | No | Maximum number of testers to return |
TDQS
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 correctly indicates a read operation ('list') but does not disclose any behavioral traits like required permissions, rate limits, or potential impacts. The description is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose and one for return data. No redundant words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 4 optional parameters and no output schema, the description covers the core functionality and output fields. It could mention pagination or the read-only nature, but it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters described in the input schema). The description does not add any meaning beyond what the schema already provides; it only restates the general purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'beta testers', and the context 'for an app or beta group'. It also specifies the returned fields (email, name, invite status, state), making it distinct from sibling tools like add_beta_tester or list_beta_groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (list testers for filtering) but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion criteria or guidance on pagination (limit parameter is only in schema).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_buildsA
List TestFlight builds for an app. Returns build version, upload date, processing state, and expiration info.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| processing_state | No | Filter by processing state | |
| expired | No | Filter by expiration status | |
| limit | No | Maximum number of builds to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the schema. No mention of pagination, sorting, or that the default limit is 50. Without annotations, the description carries full burden; it reveals what is returned but not how the tool behaves (e.g., rate limits, ordering).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence with no redundant information. Essential details included directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's core purpose and return fields. It lacks details on sorting or pagination behavior beyond the limit parameter. For a simple list tool, this is mostly complete, but more behavioral context would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add extra meaning beyond summarizing the return info. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'TestFlight builds', and the scope 'for an app'. It specifies the returned fields (build version, upload date, etc.), distinguishing it from sibling list tools which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidance is provided. The description implies it's for listing builds, but does not mention when to use this tool versus other list tools (e.g., list_beta_groups) or when not to use it. The sibling list names provide some context but the description itself lacks guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_in_app_purchasesB
List in-app purchases for an app. Returns IAP name, product ID, type, and state.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| type | No | Filter by in-app purchase type | |
| state | No | Filter by state | |
| limit | No | Maximum number of IAPs to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It does not mention that this is a read-only operation, nor does it discuss pagination, authorization requirements, or rate limits. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and direct. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the tool's simplicity and lack of output schema, the description is adequate but could mention that it returns all matching IAPs with optional filtering. Missing behavioral context but sufficient for its basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra insight beyond the schema. The fields mentioned in the description are related to the output, not input parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists in-app purchases for an app and specifies the return fields (name, product ID, type, state). It distinguishes from sibling 'get_in_app_purchase' which likely retrieves a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like 'get_in_app_purchase'. The description only implies listing use, without exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reviewsB
List customer reviews for an app. Returns rating, title, body, reviewer nickname, date, and territory.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| rating | No | Filter by rating (1-5 stars) | |
| territory | No | Filter by territory code (e.g., USA, GBR, JPN) | |
| sort | No | Sort order (prefix with - for descending) | -createdDate |
| limit | No | Maximum number of reviews to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of behavioral disclosure. It does not mention pagination behavior, total result count, error conditions, or authentication requirements, which are important for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks context on pagination (despite limit parameter), sorting defaults, and handling of no results. For a list tool with 5 parameters and no output schema, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add additional meaning beyond the schema's parameter descriptions, such as examples or formatting details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'customer reviews for an app', and specifies the return fields. It effectively distinguishes from sibling tools like get_review and respond_to_review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or when to use alternatives like get_review for a single review. The usage is implied but no comparative 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_subscription_groupsA
List subscription groups for an app. Subscription groups contain related subscription products.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| limit | No | Maximum number of groups to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read-only list operation, which is correct, but adds no details about authentication, rate limits, or potential side effects beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero wasted words, efficiently conveying purpose and context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers the basic purpose but lacks information on pagination, ordering, or return format. However, given a simple list operation with schema input, it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides full descriptions for both parameters (app_id and limit), but the description adds no additional meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('list') and resource ('subscription groups for an app'), and distinguishes from sibling tools like 'list_subscriptions' which list individual subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use when you need to list subscription groups for an app, but no explicit when-not-to-use or alternative 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_subscriptionsA
List subscriptions within a subscription group. Returns subscription name, product ID, state, and period.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_group_id | Yes | The subscription group ID | |
| state | No | Filter by subscription state | |
| limit | No | Maximum number of subscriptions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it returns specific fields, but does not disclose read-only nature, pagination behavior, rate limits, or auth requirements. However, 'List' implies idempotent read, which is standard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences clearly state the purpose and return value without unnecessary information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with three parameters and no output schema, the description adequately covers what the tool does and what it returns. It lacks details on pagination or ordering, but the schema handles limit. Overall, fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond the schema's descriptions for 'subscription_group_id', 'state', and 'limit'. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists subscriptions within a subscription group and specifies the returned fields (name, product ID, state, period). This distinguishes it from sibling tools like 'list_subscription_groups' (lists groups) and 'get_subscription' (single subscription).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing subscriptions for a given group, but does not explicitly provide guidance on when to use this tool versus alternatives or when to apply filters. No direct comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_territoriesA
List all App Store territories (countries/regions) with their currency codes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of territories to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only indicates a read-only listing. It does not disclose authentication needs, rate limits, or behavior beyond the obvious. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently communicates the tool's purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 sufficient. It explains what is returned (currency codes) and the resource. Could mention if results are sorted or paginated, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter 'limit' is already described well. The description adds nothing about parameters beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'App Store territories', and specifies that it returns currency codes. This differentiates it from other list_* tools like list_apps or list_reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, limitations, or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_beta_testerA
Remove a beta tester from TestFlight entirely. This deletes the tester from all beta groups.
| Name | Required | Description | Default |
|---|---|---|---|
| tester_id | Yes | The beta tester ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States deletion is across all groups but lacks details on reversibility, permissions, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two complete sentences with no superfluous words; front-loaded with action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple 1-param deletion tool; could mention tester existence requirement but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, description adds no extra meaning beyond the parameter name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'remove a beta tester' and specifies scope 'entirely' and 'from all beta groups', distinguishing from siblings like 'add_beta_tester'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative comparisons. Implied by sibling names but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_build_from_beta_groupC
Remove a build from a beta group.
| Name | Required | Description | Default |
|---|---|---|---|
| beta_group_id | Yes | The beta group ID | |
| build_id | Yes | The build ID to remove from the group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral details—no mention of reversibility, side effects, permissions, or what happens after removal. It is a tautological restatement of the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, no unnecessary words. However, it could benefit from slightly more detail without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is too minimal. It does not explain the context of the operation, such as prerequisites, effects on related entities, or when to prefer this tool over siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, so the description adds no additional meaning beyond what the schema already provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove) and the resources (build from beta group), making it unambiguous. However, it does not explicitly distinguish from siblings like 'remove_beta_tester', but the tool name provides that differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no context about typical use cases. The description only states the action without any usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_reviewA
Create or update a response to a customer review. Only one response per review is allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| review_id | Yes | The customer review ID to respond to | |
| response_body | Yes | The response text (max 5970 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It mentions the mutation (create/update) and the one-response constraint, but it does not disclose permissions, side effects, or what happens if a response already exists (overwrite is implied but not explicit).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the purpose, the second adds a critical constraint. No unnecessary words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers the main purpose and a constraint. Missing details about error handling (e.g., invalid review_id) and return value, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds only the constraint about one response, which is indirectly related to parameters but does not add new semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates or updates a review response and includes the key constraint 'Only one response per review is allowed.' This distinguishes it from sibling tools like 'delete_review_response' and 'get_review'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for responding to reviews but does not explicitly state when to use this tool versus alternatives like 'delete_review_response' or prerequisites like needing a valid review_id from 'list_reviews'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_app_availabilityA
Set app availability and the territories where it should be available. WARNING: This replaces the current availability.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| available_in_new_territories | No | Automatically make app available in new territories Apple adds | |
| territory_ids | Yes | Array of territory codes where app should be available (e.g., ['USA', 'GBR', 'JPN']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The warning 'This replaces the current availability' discloses a key behavioral trait: the operation is a full replacement, not additive. With no annotations provided, this warning is valuable. However, it does not mention authorization needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The purpose is stated first, followed by a critical warning. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation and the replacement nature, but lacks context on prerequisites, response format, or relationship to sibling tools like 'get_app_availability'. Given no output schema, more detail on what happens post-operation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter details. The description does not elaborate on parameters beyond what the schema already provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets app availability and territories, with a specific verb 'Set' and resource 'app availability and territories'. It distinguishes from the read-only sibling 'get_app_availability'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'get_app_availability' for reading current availability or other update tools. The description lacks context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_app_price_scheduleB
Set the price schedule for an app. This sets the base territory and manual prices. WARNING: This overwrites the existing schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | The App Store Connect app ID | |
| base_territory | No | Base territory code (e.g., USA, GBR) | USA |
| price_point_id | Yes | Price point ID for the base territory (use list_app_price_points to find) | |
| start_date | No | When the price takes effect (ISO 8601 date). Omit for immediate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the important behavioral trait that the operation overwrites existing schedules. However, it does not mention other traits like permissions, irreversible effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose clearly, second adds a critical warning. No redundant or unnecessary information. Front-loaded with key action and warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters all described in schema and no output schema, the description is mostly complete. It provides the essential behavioral warning. However, it could mention return value or confirmation details for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters adequately. The description adds no additional parameter information beyond the warning, which is about tool behavior, not parameter semantics. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Set' and the resource 'price schedule for an app'. It differentiates from the sibling 'get_app_price_schedule' but does not explicitly contrast with other price-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a warning about overwriting the existing schedule, but lacks explicit guidance on when to use this tool versus alternatives. No when-not-to-use or context for selecting this tool over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_build_for_versionB
Associate a build with an App Store version. The build must be processed and the version must be in PREPARE_FOR_SUBMISSION state.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID | |
| build_id | Yes | The build ID to associate with this version |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It mentions prerequisites but does not state whether the operation is destructive, idempotent, requires specific permissions, or what the response looks like. Critical safety and side-effect information is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the action and both preconditions. It is concise with no wasted text, though it could be slightly more structured (e.g., bullet points) for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 required parameters, full schema coverage, and no output schema, the description provides the core action and preconditions. However, it omits information about return values, possible errors, or side effects, which would be helpful for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters having descriptions, so the baseline is 3. The description does not add additional meaning beyond the basic parameter descriptions (e.g., format, constraints, or dependencies). It relies entirely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (associate a build with an App Store version) and includes preconditions (build processed, version in PREPARE_FOR_SUBMISSION). However, it does not explicitly distinguish this tool from siblings like add_build_to_beta_group, though the context (App Store version vs beta group) provides implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes important preconditions for use (build processed, version in PREPARE_FOR_SUBMISSION state), which give context on when to use the tool. However, it does not mention when not to use it or suggest alternative tools for other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_build_for_beta_reviewA
Submit a build for TestFlight beta app review. Required for external testing. The build must have export compliance set.
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | Yes | The build ID to submit for beta review |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates the tool triggers a review process, but lacks details on outcomes, reversibility, or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that are front-loaded with the main action. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers purpose and prerequisites well, but could mention how to check review status or expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description. The tool description adds no additional semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (submit a build) and the resource (for TestFlight beta review), and distinguishes it from siblings like submit_for_review and add_build_to_beta_group by specifying 'beta review' and 'external testing'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies when to use ('Required for external testing') and a prerequisite ('The build must have export compliance set'), but does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_for_reviewA
Submit an App Store version for App Store review. The version must be in PREPARE_FOR_SUBMISSION state.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID to submit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions the required state but does not describe side effects (e.g., state changes, triggering review) or error conditions. This is minimal beyond the precondition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and to the point, with no extraneous information. It efficiently communicates the action and precondition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter submission tool with no output schema, the description adequately covers the core action and key precondition. However, it lacks details on response, error handling, or outcome, leaving gaps for an AI agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'version_id', with its description in the schema. The tool description does not add additional meaning beyond what the schema provides, meeting the baseline expectation for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Submit an App Store version for App Store review', identifying the specific action and resource. It also includes a state condition ('must be in PREPARE_FOR_SUBMISSION state') which distinguishes it from sibling tools like 'get_review' or 'respond_to_review'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear precondition ('version must be in PREPARE_FOR_SUBMISSION state'), implying when to use this tool. However, it does not explicitly state when not to use it or list alternatives for state management, though sibling tools like 'get_app_store_state' and 'update_app_version' are available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_age_rating_declarationB
Update the age rating declaration for an app. Values should be NONE, INFREQUENT_OR_MILD, or FREQUENT_OR_INTENSE where applicable.
| Name | Required | Description | Default |
|---|---|---|---|
| declaration_id | Yes | The age rating declaration ID | |
| alcohol_tobacco_or_drug_use_or_references | No | Alcohol, tobacco, or drug use or references | |
| contests | No | Contests | |
| gambling_simulated | No | Simulated gambling | |
| medical_or_treatment_information | No | Medical or treatment information | |
| profanity_or_crude_humor | No | Profanity or crude humor | |
| sexual_content_graphic_and_nudity | No | Sexual content, graphic and nudity | |
| sexual_content_or_nudity | No | Sexual content or nudity | |
| horror_or_fear_themes | No | Horror or fear themes | |
| mature_or_suggestive_themes | No | Mature or suggestive themes | |
| violence_cartoon_or_fantasy | No | Cartoon or fantasy violence | |
| violence_realistic_prolonged_graphic_or_sadistic | No | Realistic, prolonged, graphic, or sadistic violence | |
| violence_realistic | No | Realistic violence | |
| gambling_and_contests | No | Gambling and contests | |
| gambling | No | Gambling | |
| loot_box | No | Contains loot boxes | |
| unrestricted_web_access | No | Unrestricted web access | |
| seventeen_plus | No | Made for 17+ audience | |
| age_rating_override | No | Override the calculated age rating |
TDQS
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 states 'update' implying mutation, but lacks details on permissions, rate limits, idempotency, or what happens to existing values. The description is insufficient for behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a value note, which is efficient. It is front-loaded with the main purpose. However, it could be slightly improved without adding excessive length. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 19 parameters and no output schema, the description is too brief. It does not explain how the update works (e.g., partial vs full replacement), the significance of parameter groupings, or what the agent should expect as a response. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter's meaning. The description's mention of enum values adds no extra semantics beyond what the schema provides. Baseline 3 is appropriate as description does not degrade or enhance schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action is to update the age rating declaration for an app, and specifies the valid enum values. It distinguishes from the sibling 'get_age_rating_declaration' which is a read tool, but does not explicitly differentiate among other update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on enum values ('NONE, INFREQUENT_OR_MILD, or FREQUENT_OR_INTENSE') but does not specify when to use this tool versus alternatives like 'get_age_rating_declaration' or other update tools. No explicit context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_app_categoriesA
Update an app's primary and secondary categories. Get the app info ID from get_app_info first.
| Name | Required | Description | Default |
|---|---|---|---|
| app_info_id | Yes | The App Info ID (from get_app_info) | |
| primary_category_id | No | Primary category ID (e.g., GAMES, BUSINESS, EDUCATION) | |
| primary_subcategory_one_id | No | Primary subcategory 1 ID (for Games category) | |
| primary_subcategory_two_id | No | Primary subcategory 2 ID (for Games category) | |
| secondary_category_id | No | Secondary category ID | |
| secondary_subcategory_one_id | No | Secondary subcategory 1 ID | |
| secondary_subcategory_two_id | No | Secondary subcategory 2 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It only states the update action and a prerequisite, but provides no information about side effects, permissions required, potential destructiveness, or rate limits, which is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the purpose. Every sentence provides useful information without redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema or annotations, the description is adequate but not comprehensive. It misses guidance on how to use optional parameters effectively and what outcomes to expect, though the schema compensates somewhat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds minimal value beyond repeating the prerequisite for app_info_id. It does not clarify the role or constraints of optional parameters like subcategories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update an app's primary and secondary categories') with a specific verb and resource, making the tool's purpose unambiguous. It also includes a prerequisite hint, distinguishing it from other update tools that target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises users to obtain the app info ID from get_app_info first, providing clear context for a prerequisite. However, it does not offer guidance on when to use this tool versus alternatives or when not to use it, which would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_app_info_localizationA
Update an app info localization (app name, subtitle, privacy policy). Use list_app_info_localizations first to get the localization ID.
| Name | Required | Description | Default |
|---|---|---|---|
| localization_id | Yes | The app info localization ID | |
| name | No | App name for this locale (max 30 chars) | |
| subtitle | No | App subtitle for this locale (max 30 chars) | |
| privacy_policy_text | No | Privacy policy text (for tvOS) | |
| privacy_policy_url | No | Privacy policy URL | |
| privacy_choices_url | No | Privacy choices URL (for CCPA compliance) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states the tool 'Update's, implying mutation, but does not describe the update semantics (e.g., partial vs full replacement), side effects, required permissions, or success/error responses. This is insufficient for an operation likely requiring authorization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short, focused sentences. The first sentence conveys the core purpose and key fields, the second provides a workflow step. No redundant or extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description does not explain what the tool returns on success or failure. While it covers the input and prerequisite, it lacks information on the output format, which is necessary for an agent to use the response. With 6 parameters and a required ID, more detail on update behavior would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 6 parameters. The description adds context by grouping parameters (name, subtitle, privacy policy) but does not provide new semantic value beyond what the schema descriptions offer. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 info localization', listing specific fields (name, subtitle, privacy policy) which helps distinguish from sibling tools like create or list localizations. However, it could be more explicit in differentiating from other update tools like update_version_localization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a critical prerequisite hint: 'Use list_app_info_localizations first to get the localization ID.' This provides clear context for when to use this tool. It does not explicitly exclude alternative tools, but the hint is valuable and guides proper sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_app_store_review_detailB
Update App Store review details (contact info, demo account credentials, notes for reviewers). Get the review detail ID first using get_app_store_review_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| review_detail_id | Yes | The App Store review detail ID | |
| contact_first_name | No | Contact first name for App Review team | |
| contact_last_name | No | Contact last name for App Review team | |
| contact_phone | No | Contact phone number | |
| contact_email | No | Contact email address | |
| demo_account_name | No | Demo account username (if app requires login) | |
| demo_account_password | No | Demo account password | |
| demo_account_required | No | Whether a demo account is required to review the app | |
| notes | No | Notes for the App Review team (max 4000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only states that the tool 'updates' details, which implies mutation but does not clarify whether updates are partial or full, what the API response is, whether authorization is required, or if there are any side effects or rate limits. The description lacks sufficient behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences: the first states the purpose and scope, the second gives a necessary prerequisite. No redundant or extraneous information. Every sentence serves a clear function, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 9 parameters, no output schema, and being a mutation tool, the description provides only minimal context. It does not explain how unspecified fields are handled (partial update vs overwrite), what the tool returns, error scenarios, or any constraints beyond the 4000-character limit for notes. The description is incomplete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 9 parameters are fully described in the input schema (100% coverage), so the schema already provides meaning for each parameter. The description groups them into categories (contact info, demo account credentials, notes) which adds minimal value. Baseline score of 3 is appropriate since the description does not materially improve on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates App Store review details and lists the categories of fields (contact info, demo account credentials, notes). It mentions a prerequisite (get the ID via get_app_store_review_detail), but does not explicitly distinguish from other update tools like update_app_version. The purpose is clear but not uniquely differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs the user to first get the review detail ID using get_app_store_review_detail, which is a useful prerequisite. However, it provides no guidance on when to use this tool versus alternatives (e.g., create_app_store_review_detail, update_app_version), nor does it mention any cases where it should not be used. Usage guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_app_versionC
Update an existing App Store version's metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | The App Store version ID | |
| version_string | No | New version number | |
| release_type | No | When to release after approval | |
| earliest_release_date | No | For SCHEDULED release, ISO 8601 date | |
| downloadable | No | Whether the version is downloadable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description alone must disclose behavior. It only says 'update', implying a write operation, but does not mention permissions, reversibility, side effects, or whether it's immediate. Inadequate for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and object. No redundancy. However, it may be too terse for the complexity (5 parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description should explain what 'metadata' encompasses (e.g., version string, release type). It does not cover return value or error conditions, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter's purpose. The description adds no extra meaning or relationships (e.g., between release_type and earliest_release_date). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (update), resource (existing App Store version), and target (metadata). Distinguishes from create or list tools, but does not differentiate from sibling update tools like update_version_localization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., update_version_localization for localizations). No prerequisites or conditions provided, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_beta_build_localizationA
Update a beta build localization (What to Test notes). Use list_beta_build_localizations to get the localization ID.
| Name | Required | Description | Default |
|---|---|---|---|
| localization_id | Yes | The beta build localization ID | |
| whats_new | Yes | What to Test notes for TestFlight testers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'Update', which implies mutation but does not mention reversibility, required permissions, side effects, or any constraints. This is insufficient for a mutation tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, comprising a single sentence that conveys purpose and a usage hint. It is efficient but could be expanded slightly for completeness without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are 2 required parameters, no output schema, and no annotations, the description is incomplete. It fails to explain what the tool returns (likely nothing), potential errors, or any post-update effects. This leaves the agent with significant ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds minimal value by restating 'What to Test notes' which matches the schema's description. No additional constraints, formats, or examples are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and resource 'beta build localization', and specifies the content as 'What to Test notes'. It distinguishes from the sibling 'list_beta_build_localizations' by referencing it for getting the ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the user to use list_beta_build_localizations to get the localization ID before calling this tool, providing clear context. However, it does not exclude other scenarios or compare with other update tools like 'update_build' or 'update_version_localization'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_buildA
Update a build's attributes like export compliance (encryption usage). Required before distributing a build.
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | Yes | The build ID | |
| uses_non_exempt_encryption | No | Whether the build uses non-exempt encryption. Set to false if your app only uses standard iOS encryption (HTTPS, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions updating attributes but does not disclose potential side effects, authentication needs, or idempotency. The description is adequate but could be more informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loads the action and a key example, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with two parameters, the description covers the essential purpose and usage context. No output schema exists, but the agent can infer typical CRUD behavior. Minor gap: does not mention return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds context by linking 'export compliance (encryption usage)' to the parameter 'uses_non_exempt_encryption', explaining its significance ('Set to false if your app only uses standard iOS encryption').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Update', the resource 'build's attributes', and provides a concrete example ('export compliance/encryption usage'). This distinguishes it from sibling tools like 'get_build' or 'submit_build_for_beta_review'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Required before distributing a build', giving a clear condition for use. While it doesn't mention alternatives, the context implies it is a preparatory step before distribution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_phased_releaseA
Update a phased release state. Use to pause, resume, or complete a phased release.
| Name | Required | Description | Default |
|---|---|---|---|
| phased_release_id | Yes | The phased release ID | |
| phased_release_state | Yes | ACTIVE to resume, PAUSED to pause rollout, COMPLETE to release to all users immediately |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states the action without detailing behavioral traits like irreversibility of COMPLETE or permissions needed. Schema already covers enum meanings, so description adds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no waste. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with 2 parameters, the description covers the core action but lacks information about return values or side effects. No output schema, so return info would be helpful. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions; the description adds context by mapping the enum values to actions (pause, resume, complete), but baseline 3 is appropriate as it does not add significant new meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates a phased release state and lists the three actions (pause, resume, complete), distinguishing it from create and delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it (to pause, resume, complete), but does not provide when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_version_localizationA
Update an App Store version localization (description, keywords, what's new, etc.). Use get_version_localization first to get the localization ID.
| Name | Required | Description | Default |
|---|---|---|---|
| localization_id | Yes | The version localization ID | |
| description | No | App description for the App Store listing | |
| keywords | No | Keywords for App Store search (comma-separated, max 100 chars) | |
| whats_new | No | What's new in this version (release notes) | |
| promotional_text | No | Promotional text (can be updated without new version) | |
| marketing_url | No | Marketing URL for this locale | |
| support_url | No | Support URL for this locale |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose traits. It indicates a mutation ('Update'), but does not specify behavioral aspects like idempotency, permission requirements, or side effects. The schema covers parameters but not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant words. The first sentence states the purpose, the second provides a prerequisite. Highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is somewhat sparse. It covers the main purpose and the key prerequisite but lacks detail on outcomes, optionality, or common usage patterns. It is sufficient for a basic understanding but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra semantics beyond listing example fields. With full schema documentation, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Update' with the resource 'App Store version localization' and lists example fields, making the action clear. It hints at sibling differentiation by referencing get_version_localization, but does not explicitly distinguish from other update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using get_version_localization first to obtain the localization ID, providing clear context for when to call this tool. It does not mention when to avoid it or alternatives, so it's not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action (e.g., list_apps vs get_app, create_app_version vs update_app_version). There is no ambiguity between tools; even similar-sounding tools like add_beta_tester and remove_beta_tester are clearly opposed actions.
All tool names follow a consistent verb_noun pattern in snake_case, using standard verbs like create, get, list, update, delete, add, remove, set, submit. No mixing of conventions or vague verbs.
61 tools is a high number, exceeding the typical well-scoped range of 3-15. However, the server covers the extensive App Store Connect API, which includes many entities (apps, versions, localizations, beta groups, reviews, analytics, pricing, subscriptions, IAP). The count is borderline heavy but somewhat justified by the domain scope.
The tool set covers the major workflows for app management in App Store Connect: app lifecycle, versioning, localizations, beta testing, reviews, analytics reports, pricing, subscriptions, and IAP. Minor omissions like app clips or user management exist, but the core is well-covered.
Maintenance
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
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Run App Store Connect from your IDE: pricing, listings, screenshots, releases, AI visibility.
AI-agent operations for App Store Connect and Google Play, with approval before live publishing.
ASO analytics and App Store optimization tools for indie iOS developers and AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Apple App Store Connect resources like apps, builds, TestFlight, and reviews through natural language.2018MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to manage App Store Connect apps, including registering bundle IDs, uploading metadata and screenshots, setting age ratings, managing TestFlight groups and testers, and submitting apps for review.MIT
- AlicenseNot gradedqualityDmaintenanceEnables managing your iOS app's entire lifecycle with natural language through App Store Connect, offering 48 tools across 14 categories for ASO, reviews, analytics, subscriptions, pricing, and more.6MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmetsina/mcp-appstore-connect'
If you have feedback or need assistance with the MCP directory API, please join our Discord server