upload_to_internal_sharing
Upload APK or AAB files to Google Play Console's Internal App Sharing to generate shareable testing links for quick one-off app testing.
Instructions
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.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | ||
| file_path | Yes |
Implementation Reference
- src/google_play_mcp/client.py:372-404 (handler)The actual implementation of the upload_to_internal_sharing tool in the PublisherClient class.
def upload_to_internal_sharing( self, package_name: str, file_path: str, ) -> Dict[str, Any]: """Upload an APK or AAB to Internal App Sharing. Returns a shareable download URL. Does NOT assign the build to any track — use this for quick tester distribution without a Play track. File type is inferred from the extension (.apk or .aab). """ ext = os.path.splitext(file_path)[1].lower() if ext == ".apk": mime = APK_MIME artifact_type = "apk" elif ext == ".aab": mime = BUNDLE_MIME artifact_type = "bundle" else: raise ValueError(f"Unrecognized file extension '{ext}'. Use .apk or .aab.") media = MediaFileUpload(file_path, mimetype=mime, resumable=False) if artifact_type == "apk": result = self.service.internalappsharingartifacts().uploadapk( packageName=package_name, media_body=media ).execute() else: result = self.service.internalappsharingartifacts().uploadbundle( packageName=package_name, media_body=media ).execute() result["artifactType"] = artifact_type return result