Skip to main content
Glama
ilativity
by ilativity

Promote release

promote_release

Copy an app release between Google Play tracks, such as internal to production, while preserving other destination releases. Production changes require confirmation; otherwise it runs as a dry run.

Instructions

Copies a release from one track to another (e.g. internal → production). The destination's other releases that must stay are kept, not replaced. Promoting into production requires confirm_production: true, otherwise this is a dry run.

Input Schema

NameRequiredDescriptionDefault
statusYesdraft = not live; inProgress = staged rollout (needs rollout_percentage); completed = 100%.
to_trackYesTrack: internal, alpha, beta, production, or a custom/form-factor track (e.g. wear:production).
from_trackYesTrack: internal, alpha, beta, production, or a custom/form-factor track (e.g. wear:production).
package_nameNoAndroid package name. Defaults to PLAY_MCP_PACKAGE.
release_nameNo
release_notesNoRelease notes for the destination. Default: copied from the source release.
validate_onlyNoDry run: validate the change in an edit, then discard it.
version_codesNoWhich release to promote, by version codes. Default: the source track's in-progress release, else its completed one.
confirm_productionNoMust be true to change a production track. Without it the call runs as a dry run and returns a preview.
rollout_percentageNoPercentage of users for a staged (inProgress) rollout, e.g. 10. Required for inProgress — there is no default.
changes_not_sent_for_reviewNoManaged publishing: commit without sending for review.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing merge semantics ('the destination's other releases that must stay are kept, not replaced') and the dry-run fallback when confirm_production is absent. These are meaningful behavioral details consistent with destructiveHint=false. Gaps remain on idempotency and what the preview returns.

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?

Three tight sentences, front-loaded with the core action, then merge behavior, then the production gate. Every sentence earns its place with no redundancy.

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

Completeness4/5

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

For an 11-parameter, openWorld mutation with no output schema, the description covers the essential call semantics: merge vs replace, production gating, and dry-run behavior. It stops short of explaining return content or idempotency, but the missing detail is largely covered by the rich schema.

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

Parameters3/5

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

Schema coverage is 91%, so the schema already documents confirm_production, validate_only, and rollout constraints. The description reinforces the confirm_production/dry-run coupling but adds no new parameter detail beyond the schema, so the baseline 3 applies.

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 and resource ('Copies a release from one track to another') with a concrete example (internal → production). The action is clearly distinguishable from create_release or deploy, though no sibling is named explicitly to sharpen the boundary.

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

Usage Guidelines3/5

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

Gives a real precondition ('Promoting into production requires confirm_production: true, otherwise this is a dry run'), which implies when the tool applies. However it offers no explicit guidance on when to choose promote_release over create_release, deploy, or update_rollout, leaving alternative selection to inference.

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