update_release
Modify rollout percentage or status of an existing Google Play app release to control distribution, including increasing, halting, resuming, or completing deployments.
Instructions
Update rollout percentage and/or status of an existing release.
Examples: increase rollout (rollout_percentage=50), complete (=100), halt (status="halted"), resume (status="inProgress").
NOTE: With Managed Publishing enabled, changes are held pending approval. Call publish_managed_release to send live.
Args: package_name: Package name, e.g. com.example.myapp track: Track to update. Default "production". rollout_percentage: New rollout % (0–100). Pass 100 to complete. status: "inProgress", "halted", "completed", or "draft". version_codes: Filter to release containing these codes. Default: first release found.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | ||
| track | No | production | |
| rollout_percentage | No | ||
| status | No | ||
| version_codes | No |
Implementation Reference
- src/google_play_mcp/server.py:233-274 (handler)The handler for the update_release tool.
@mcp.tool() def update_release( package_name: str, track: str = "production", rollout_percentage: Optional[float] = None, status: Optional[str] = None, version_codes: Optional[list[int]] = None, ) -> str: """Update rollout percentage and/or status of an existing release. Examples: increase rollout (rollout_percentage=50), complete (=100), halt (status="halted"), resume (status="inProgress"). NOTE: With Managed Publishing enabled, changes are held pending approval. Call publish_managed_release to send live. Args: package_name: Package name, e.g. com.example.myapp track: Track to update. Default "production". rollout_percentage: New rollout % (0–100). Pass 100 to complete. status: "inProgress", "halted", "completed", or "draft". version_codes: Filter to release containing these codes. Default: first release found. """ try: result = _publisher().update_release( package_name=package_name, track=track, rollout_percentage=rollout_percentage, version_codes=version_codes, status=status, ) return json.dumps( { "success": True, "message": "Release updated successfully.", "track": _format_track(result["track"]), "editId": result.get("commit", {}).get("editId"), }, indent=2, ) except Exception as exc: return json.dumps({"success": False, "error": str(exc)}, indent=2)