Skip to main content
Glama

Publish prices to the store

publish_pricing
Destructive

Publishes approved price changes to App Store Connect and Google Play after owner confirmation, so live customer prices update only when explicitly authorized.

Instructions

DESTRUCTIVE / LIVE: writes the plan's changed prices for the selected products (or productIds) to App Store Connect or Google Play Console; real customers then pay them. Only call after the owner has seen the per-country before/after (get_pricing) and explicitly told you to publish in this conversation. The app shows the owner a confirmation dialog listing products, countries and the start date; nothing is written unless they confirm there (no answer within ~2 minutes = denied, code not_approved). App Store subscriptions keep existing subscribers on their price by default (a price increase never reaches them); Google Play never moves existing subscribers. Background job; follow with wait_for_jobs, then get_pricing for the report.

Input Schema

NameRequiredDescriptionDefault
approvalYesQuote the owner's explicit go-ahead.
projectIdYesProject id (from get_overview).
productIdsNoOnly these selected products (default: every selected product with changes).
ownerApprovedYesMust be true: the owner explicitly approved these prices.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare destructive, non-idempotent, open-world; the description adds materially more: real customers pay the new prices, a confirmation dialog with ~2 minute timeout yielding code not_approved, and store-specific subscriber behavior (App Store keeps existing subscribers by default, Google Play never moves them). It also identifies the operation as a background job needing a follow-up poll.

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

Conciseness5/5

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

Front-loads the risk marker (DESTRUCTIVE / LIVE) and then proceeds through precondition, dialog behavior, store semantics, and follow-up in a tight sequence. Dense but every clause carries operational information.

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 destructive, no-output-schema mutation, it covers the approval gate, the failure code, the asynchronous job model, and the verification step. An agent has everything needed to call it safely and correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds modest meaning by framing productIds as an optional narrowing to selected products and by tying ownerApproved/approval to the dialog-confirmation reality. It does not add format or validation detail beyond 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?

States a specific verb and resource (writes the plan's changed prices for the selected products) and names both destinations (App Store Connect, Google Play Console). It is clearly separable from siblings like get_pricing, plan_pricing and publish_listing by scope and effect.

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

Usage Guidelines5/5

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

Gives an explicit precondition (only after the owner has seen the per-country before/after via get_pricing and explicitly told you to publish in this conversation) and an explicit follow-up sequence (wait_for_jobs, then get_pricing). It also states the hard gate: nothing is written unless the owner confirms in the app dialog.

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

Deploy Server

Other Tools