Skip to main content
Glama
swlittles

App Store Connect MCP

by swlittles

Update age rating

update_age_rating
Idempotent

Answer an app's App Store Connect age rating questionnaire by passing Apple's content and yes/no attribute values. Optionally fill every unanswered question with NONE or false to satisfy review.

Instructions

Answers the age rating questionnaire of the app info being prepared. Pass the answers to change, using Apple's attribute names, e.g. {"violenceCartoonOrFantasy": "INFREQUENT_OR_MILD", "gambling": false}. Content questions take NONE, INFREQUENT_OR_MILD or FREQUENT_OR_INTENSE: alcoholTobaccoOrDrugUseOrReferences, contests, gamblingSimulated, gunsOrOtherWeapons, horrorOrFearThemes, matureOrSuggestiveThemes, medicalOrTreatmentInformation, profanityOrCrudeHumor, sexualContentGraphicAndNudity, sexualContentOrNudity, violenceCartoonOrFantasy, violenceRealistic, violenceRealisticProlongedGraphicOrSadistic. Yes/no questions take true/false: advertising, ageAssurance, gambling, healthOrWellnessTopics, lootBox, messagingAndChat, parentalControls, unrestrictedWebAccess, userGeneratedContent, plus optional socialMedia. Apple needs every question answered before it accepts any change; fill_unanswered: true answers the rest NONE/false. Confirm those answers with the user.

Changes App Store Connect (needs ASC_WRITE=1). Safe to re-run: steps already done are skipped.

Input Schema

NameRequiredDescriptionDefault
appNoApp ID, bundle ID or exact app name. Defaults to ASC_APP_ID, or to the only app the key can see.
answersNo
dry_runNoIf true, return the plan without changing anything.
fill_unansweredNoAnswer every question that has no answer yet with NONE or false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety/repeatability profile is covered. The description adds meaningful context the annotations do not: the ASC_WRITE=1 authorization requirement, the constraint that Apple rejects any change until all questions are answered, and the confirm-with-user step. This is useful disclosure beyond structured fields.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence, followed by the parameter domain details, then auth/idempotency notes. The two long enumeration lists are long but each entry is load-bearing for the answers object, so almost every token earns its place; only mild trimming would be possible.

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

Completeness5/5

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

For a mutation tool with nested objects, no output schema, and 0 required params, the description covers what an agent needs: auth prerequisite, idempotent re-run behavior, the completeness requirement, the fill shortcut, and the confirmation step. Nothing essential to invoking it correctly is missing.

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

Parameters5/5

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

Schema coverage is 75% and the answers object carries no schema-level description, yet the description fully compensates: it names the exact Apple attribute keys, defines the NONE/INFREQUENT_OR_MILD/FREQUENT_OR_INTENSE value domain for content questions, the true/false domain for yes/no questions, and explains fill_unanswered's NONE/false behavior. This adds substantial semantic value over the schema.

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

Purpose5/5

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

The description states a specific verb+resource: 'Answers the age rating questionnaire of the app info being prepared.' No sibling tool touches age ratings, so it is unambiguously distinguishable from list_apps, update_listing, set_review_details, and the rest.

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

Usage Guidelines4/5

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

It explains the triggering context (before Apple accepts any change, every question must be answered) and offers the fill_unanswered alternative when answers are incomplete, plus instructs to confirm with the user. It stops short of naming a when-not-to-use condition, but the guidance is concrete and actionable.

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