Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_APPLICATION_CREDENTIALS | Yes | The absolute path to the Google Cloud service account JSON key file. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tracks | List all release tracks with their current releases. Returns tracks (internal, alpha, beta, production) with rollout percentages, statuses, and country availability. Args: package_name: Package name, e.g. com.example.myapp |
| get_track_info | Get detailed info for a specific release track. Returns releases with status, rollout %, version codes, release notes, and country availability. Args: package_name: Package name, e.g. com.example.myapp track: "internal", "alpha", "beta", or "production". Default "production". |
| create_release | Create or replace a release on a track. NOTE: With Managed Publishing enabled, the edit is held pending approval. Call publish_managed_release to send live. Args: package_name: Package name, e.g. com.example.myapp track: "internal", "alpha", "beta", or "production". version_codes: Version codes to include, e.g. [1234]. rollout_percentage: Rollout % when status is "inProgress". Default 10%. status: "draft" (default), "inProgress" (staged), "halted", or "completed". release_name: Optional human-readable name. release_notes: Optional {lang: text} dict, e.g. {"en-US": "Bug fixes"}. country_codes: Optional ISO 3166-1 alpha-2 codes. Empty list removes restrictions. |
| update_release | 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. |
| promote_release | Promote a release from one track to another. Copies version codes from source to destination. Common: internal→alpha→beta→production. Release notes/name are inherited unless overridden. Args: package_name: Package name, e.g. com.example.myapp from_track: Source — "internal", "alpha", or "beta". to_track: Destination — "alpha", "beta", or "production". version_codes: Version codes to promote, e.g. [1234]. rollout_percentage: Rollout % at destination. Default 10%. Use 100 for full release. release_name: Optional name override. release_notes: Optional {lang: text} override, e.g. {"en-US": "New features"}. |
| publish_managed_release | Send approved changes live when Managed Publishing is enabled. Call after changes committed via create_release/update_release/promote_release have been reviewed in Play Console. No-op if Managed Publishing is off. Args: package_name: Package name, e.g. com.example.myapp |
| list_artifacts | List all APKs and AABs uploaded to the app. Returns version codes and SHA hashes. Useful for finding version codes available to assign to a track. Args: package_name: Package name, e.g. com.example.myapp |
| upload_artifact | Upload an APK or AAB and create a release on the given track. File type auto-detected from extension (.apk/.aab). Upload and track assignment are atomic. Args: package_name: Package name, e.g. com.example.myapp file_path: Absolute local path to the APK or AAB. track: "internal" (default), "alpha", "beta", or "production". status: "draft" (default), "inProgress", or "completed". rollout_percentage: Rollout % when status is "inProgress". Default 10%. release_name: Optional human-readable name. release_notes: Optional {lang: text} dict, e.g. {"en-US": "Initial release"}. |
| upload_to_internal_sharing | Upload APK or AAB to Internal App Sharing and get a shareable link. Shares a build via URL without assigning it to a track. Ideal for quick one-off testing. File type auto-detected from extension (.apk/.aab). Args: package_name: Package name, e.g. com.example.myapp file_path: Absolute local path to the APK or AAB. |
| get_testers | Get tester emails and Google Groups for an internal or alpha track. Args: package_name: Package name, e.g. com.example.myapp track: "internal" (default) or "alpha". |
| update_testers | Replace the tester list for an internal or alpha track. WARNING: Full replacement — omitted testers lose access. Call get_testers first to preserve existing testers. Args: package_name: Package name, e.g. com.example.myapp track: "internal" (default) or "alpha". emails: Tester email addresses. Empty list removes all individuals. google_groups: Google Group addresses. Empty list removes all groups. |
| get_crash_rate | Fetch user-perceived crash rate from Android Vitals. Returns daily crashRate, userPerceivedCrashRate, and distinctUsers by version code. Bad behavior threshold: userPerceivedCrashRate > 1.09% may cause Play Store ranking penalties. Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). version_code: Optional version code filter. |
| get_anr_rate | Fetch ANR (Application Not Responding) rate from Android Vitals. Returns daily anrRate, userPerceivedAnrRate, and distinctUsers by version code. Bad behavior threshold: userPerceivedAnrRate > 0.47% may cause Play Store ranking penalties. Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). version_code: Optional version code filter. |
| get_wakelock_rate | Fetch stuck background wake lock rate from Android Vitals. Returns daily stuckBackgroundWakelockRate and distinctUsers by version code. Excessive wakelock holding (>1 hour in background) may be penalized. Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). version_code: Optional version code filter. |
| get_wakeup_rate | Fetch excessive CPU wakeup rate from Android Vitals. Returns daily excessiveWakeupRate and distinctUsers by version code. Frequent CPU wakeups above platform thresholds may be penalized. Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). version_code: Optional version code filter. |
| get_vitals_summary | Get combined Android Vitals: crash rate and ANR rate per version code. Returns averages over the period with threshold flags. Thresholds: userPerceivedCrashRate > 1.09%, userPerceivedAnrRate > 0.47%. Args: package_name: Package name, e.g. com.example.myapp days: Past days to include (default 7, max 30). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |