Skip to main content
Glama

Update App Store metadata

set_metadata
Destructive

Write App Store metadata YOU authored (validated before any Apple call). fields: description/keywords/whats_new/support_url/…; plus primary_category, age_rating (human attestations), content_rights, copyright, review_contact, price:'FREE'. On pending, repeat unchanged arguments with the returned request_key; get_store_operation recovers a lost response.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
priceNoOnly FREE is supported here. Use update_store for paid pricing.
fieldsNoListing text by field name: description, keywords, whats_new, promotional_text, support_url, marketing_url and so on. get_metadata_schema lists fields and character limits.
localeNoApp Store locale code, for example en-US or de-DE. Defaults to en-US.en-US
copyrightNoCopyright line shown on the App Store, for example "2026 Example Inc."
age_ratingNoAge-rating questionnaire answers. These are legal attestations: use only what the human told you.
project_idYesNoMac project ID (prj_…). push_project and connect_status list your projects.
request_keyNoReuse only to resume pending work with the original unchanged arguments
content_rightsNoWhether the app uses third-party content, as the human answered.
review_contactNoContact for Apple's reviewers (name, phone, email) and an optional demo account.
version_stringNoDefaults to the pushed source marketing version; select a live version explicitly for promotional text
primary_categoryNoApp Store primary category, for example UTILITIES or DEVELOPER_TOOLS.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare destructive=true and idempotent=false, and the description usefully adds that inputs are 'validated before any Apple call' and how to safely resume an in-flight write via request_key. This materially explains the non-idempotent mutation behavior beyond the structured hints.

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

Conciseness3/5

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

Front-loads the core action, but the body is a dense, punctuated run-on using '…/' shorthand that is harder to parse than necessary. Information is useful but packed without clean structure.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description fills the key remaining gap (the pending/retry workflow). For an 11-param destructive mutation with human-attestation constraints, it is nearly complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter, including the FREE-only price enum, locale default, and the attestation caveat on age_rating. The description reiterates these (price:'FREE', human attestations) but adds no new syntax or format detail, so baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb+resource ('Write App Store metadata') and enumerates the field families it touches. It clearly differs from read-side siblings (get_metadata, get_metadata_schema) and the write-side update_store, though it doesn't name those alternatives directly.

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?

Provides concrete operational guidance for the pending/idempotency path: repeat unchanged arguments with the returned request_key, and use get_store_operation to recover a lost response. It also flags that age_rating/content_rights must come from a human. It stops short of explicitly saying when to prefer update_store (that lives in the schema).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources