Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.wiseappsai/play-console-mcp

NPM · @WISEAPPSAI/PLAY-CONSOLE-MCP · SCANNED AUG 4

Manage Google Play Console: releases, listings, monetization, reviews, and Android Vitals.

+34 this week 70 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security85
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (144 of 162), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (144 of 162), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency71
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Cryptographically verified build provenance (signed, bound to wiseappsai/play-console-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 64 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability58
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 9456 tokens (~270/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @wiseappsai/play-console-mcp

# add to Claude Code
claude mcp add wiseappsai-play-console-mcp -- npx -y @wiseappsai/play-console-mcp
# add to Codex CLI
codex mcp add wiseappsai-play-console-mcp -- npx -y @wiseappsai/play-console-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wiseappsai-play-console-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@wiseappsai/play-console-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add wiseappsai-play-console-mcp --command npx --arg -y --arg @wiseappsai/play-console-mcp
# ~/.hermes/config.yaml
mcp_servers:
  wiseappsai-play-console-mcp:
    command: "npx"
    args: ["-y", "@wiseappsai/play-console-mcp"]
// mcp.json
{
  "mcpServers": {
    "wiseappsai-play-console-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@wiseappsai/play-console-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +4
    • Stability: unverified → 0.23 functional
  • 2 Aug 26 +66
    • Provenance: unverified → pass security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • The attested source repository moved: wiseappsai/play-console-mcp security
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → good functional
    • Tool coverage: unverified → 100 functional
    • Licence: MIT functional
  • 1 Aug 26 −12
    • Tool coverage: 100 → unverified functional
  • 31 Jul 26 +12
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −36
    • Malware scan: pass → unverified security
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 36

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Aug 2026 · Analysed npm/@wiseappsai/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
wiseappsai/play-console-mcp
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/wiseappsai/play-console-mcp/.github/workflows/release.yml@refs/tags/v0.3.0
Rekor log index:
1679949256
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:61f7651f07ec45ea919b515b0d893ce10cb93224c698f65893998f1e880b75930470ce5fa91ebf7b2cdf4f2c62abfcc7c2cca52c0bd9817ea86184c42
Discovery method:
attestation_endpoint
Dependencies 144 packages

144 packages in the resolved dependency tree · 143 deprecated · 41 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 35 exposed · ~9,456 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
play_app_recovery ~235

Create, deploy, target, and cancel app recovery actions used to remotely roll out fixes for problematic releases. Set `action` to one of: • list: List recovery actions, optionally filtered to one version code. — requires: packageName • create [write]: Create a draft app recovery action. — requires: packageName, requestBody • deploy [write]: Deploy a draft recovery action so it begins rolling out. — requires: packageName, appRecoveryId • cancel [write]: Cancel an in-progress recovery action. — requires: packageName, appRecoveryId • add_targeting [write]: Add targeting (e.g. more version codes) to a recovery action. — requires: packageName, appRecoveryId, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
appRecoveryIdstringRecovery action id to deploy.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectCreateDraftAppRecoveryRequest
versionCodeintegerOnly list recovery actions for this version code.

No output schema declared.

No examples provided.

play_artifact_files ~390

Manage per-APK auxiliary files: APK expansion files (OBB main/patch) and deobfuscation/symbol files (ProGuard or native code). Set `action` to one of: • get_expansion: Get an APK's expansion file (main or patch) metadata. — requires: packageName, apkVersionCode, expansionFileType • patch_expansion [write]: Partially update an expansion file's reference (e.g. reuse another APK's file). — requires: packageName, apkVersionCode, expansionFileType, requestBody • update_expansion [write]: Replace an expansion file's reference. — requires: packageName, apkVersionCode, expansionFileType, requestBody • upload_expansion [write]: Upload an APK expansion file (OBB) for a version code. — requires: packageName, apkVersionCode, expansionFileType, media • upload_deobfuscation [write]: Upload a deobfuscation/symbol file (ProGuard mapping or native debug symbols). — requires: packageName, apkVersionCode, symbolType, media

NameTypeReqDescription
actionstringyesThe operation to perform.
apkVersionCodeintegerVersion code of the APK the expansion file belongs to.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
expansionFileTypestringWhich expansion file to address.
mediaobjectFile source: provide either `filePath` or `base64`.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectExpansionFile object (e.g. referencesVersion or fileSize).
symbolTypestringKind of symbol file being uploaded.

No output schema declared.

No examples provided.

play_artifacts ~297

List and upload release artifacts in an edit: Android App Bundles (.aab), APKs, and externally hosted APK references. Set `action` to one of: • list_bundles: List the app bundles in an edit. — requires: packageName • upload_bundle [write]: Upload an Android App Bundle (.aab) to an edit. — requires: packageName, media • list_apks: List the APKs in an edit. — requires: packageName • upload_apk [write]: Upload an APK (.apk) to an edit. — requires: packageName, media • add_externally_hosted_apk [write]: Register an externally hosted APK (enterprise private apps only). — requires: packageName, requestBody

NameTypeReqDescription
ackBundleInstallationWarningbooleanAcknowledge installation-size warnings to allow the upload.
actionstringyesThe operation to perform.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
mediaobjectFile source: provide either `filePath` or `base64`.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectApksAddExternallyHostedRequest (externallyHostedApk descriptor).

No output schema declared.

No examples provided.

play_data_safety ~101

Set the app's Data safety form (safety labels) on the Play Console. Set `action` to one of: • set [write]: Update the app's Data safety labels. — requires: packageName, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectSafetyLabelsUpdateRequest: safetyLabels

No output schema declared.

No examples provided.

play_device_tier_configs ~217

List, read, and create device tier configurations for an app on Google Play. Set `action` to one of: • list: List device tier configs (most recent first), paginated. — requires: packageName • get: Get a single device tier config by id. — requires: packageName, deviceTierConfigId • create [write]: Create a new device tier config. — requires: packageName, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
allowUnknownDevicesbooleanWhether the device tier config matches devices that are unknown to Google Play.
deviceTierConfigIdstringThe device tier config id.
packageNamestringApp package name, e.g. com.example.app
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
requestBodyobjectDeviceTierConfig object describing device groups and tiers.

No output schema declared.

No examples provided.

play_edit ~231

Manage the app-edit lifecycle directly: open, inspect, validate, commit, and discard edits used to stage release changes. Set `action` to one of: • insert [write]: Open a new edit and return its editId for staging changes. — requires: packageName • get: Get an open edit by id. — requires: packageName, editId • validate: Validate an edit's staged changes without committing. — requires: packageName, editId • commit [write]: Commit an edit, applying all its staged changes. — requires: packageName, editId • delete [write]: Discard an open edit and its staged changes. — requires: packageName, editId

NameTypeReqDescription
actionstringyesThe operation to perform.
changesNotSentForReviewbooleanCommit without sending the changes for review.
editIdstringThe open edit id.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectAppEdit object (optional; e.g. expiryTimeSeconds).

No output schema declared.

No examples provided.

play_external_transactions ~158

Report, read, and refund external (alternative-billing) transactions for an app. Set `action` to one of: • create [write]: Report a new external transaction. — requires: packageName, externalTransactionId, requestBody • get: Get a previously reported external transaction. — requires: packageName, externalTransactionId • refund [write]: Refund (fully or partially) an external transaction. — requires: packageName, externalTransactionId

NameTypeReqDescription
actionstringyesThe operation to perform.
externalTransactionIdstringCaller-chosen unique external transaction id.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectExternalTransaction

No output schema declared.

No examples provided.

play_generated_apks ~302

Inspect and download the APKs Play generates from an app bundle, and manage system-image APK variants. Set `action` to one of: • list_generated: List the APKs Play generated for an app bundle version. — requires: packageName, versionCode • download_generated: Download a generated APK/asset slice to a local file. — requires: packageName, versionCode, downloadId, destPath • list_system_variants: List system-image APK variants for a bundle version. — requires: packageName, versionCode • get_system_variant: Get a single system APK variant by id. — requires: packageName, versionCode, variantId • create_system_variant [write]: Create a new system APK variant for a device spec. — requires: packageName, versionCode, requestBody • download_system_variant: Download a system APK variant to a local file. — requires: packageName, versionCode, variantId, destPath

NameTypeReqDescription
actionstringyesThe operation to perform.
destPathstringlocal file path to write to
downloadIdstringDownload id from list_generated.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectVariant: deviceSpec
variantIdstringSystem APK variant id.
versionCodeintegerBundle version code whose generated APKs to list.

No output schema declared.

No examples provided.

play_images ~314

List, upload, and delete graphic assets (screenshots, icon, feature graphic, etc.) for a localized store listing. Set `action` to one of: • list: List images of a given type for a language. — requires: packageName, language, imageType • upload [write]: Upload a new image of a given type for a language. — requires: packageName, language, imageType, media • delete [write]: Delete a single image by id. — requires: packageName, language, imageType, imageId • delete_all [write]: Delete all images of a given type for a language. — requires: packageName, language, imageType

NameTypeReqDescription
actionstringyesThe operation to perform.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
imageIdstringThe id of the image to delete.
imageTypestringe.g. phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, tvScreenshots, wearScreenshots, icon, featureGraphic, tvBanner
languagestringBCP-47 language tag, e.g. en-US.
mediaobjectFile source: provide either `filePath` or `base64`.
packageNamestringApp package name, e.g. com.example.app

No output schema declared.

No examples provided.

play_inappproducts ~393

Manage legacy in-app products (managed products and subscriptions keyed by SKU). Set `action` to one of: • list: List in-app products for an app, paginated. — requires: packageName • get: Get a single in-app product by SKU. — requires: packageName, sku • insert [write]: Create a new in-app product. — requires: packageName, requestBody • patch [write]: Patch (partial update) an in-app product. — requires: packageName, sku, requestBody • update [write]: Update (replace) an in-app product. — requires: packageName, sku, requestBody • delete [write]: Delete an in-app product by SKU. — requires: packageName, sku • batch_get: Get multiple in-app products by SKU in one request. — requires: packageName • batch_update [write]: Create or update multiple in-app products in one request. — requires: packageName, requestBody • batch_delete [write]: Delete multiple in-app products in one request. — requires: packageName, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
allowMissingbooleanIf true, create the product when it does not already exist (upsert).
autoConvertMissingPricesbooleanAuto-convert prices to all other regions' currencies when missing.
maxResultsintegerMaximum number of results to return.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectInAppProduct resource (sku, status, defaultPrice, prices, listings, etc.).
skustringThe product SKU / unique identifier.
startIndexintegerIndex of the first result to return.
tokenstringPagination token from a previous response.

No output schema declared.

No examples provided.

play_internal_app_sharing ~136

Upload APKs and app bundles to Internal App Sharing and get a shareable download URL. Set `action` to one of: • upload_apk [write]: Upload an APK to Internal App Sharing. — requires: packageName, media • upload_bundle [write]: Upload an app bundle (.aab) to Internal App Sharing. — requires: packageName, media

NameTypeReqDescription
actionstringyesThe operation to perform.
mediaobjectFile source: provide either `filePath` or `base64`.
packageNamestringApp package name, e.g. com.example.app

No output schema declared.

No examples provided.

play_listings ~344

Read and write localized store listings (title, descriptions, video) and app-level details such as the default language and contact info. Set `action` to one of: • list: List all localized store listings for the app. — requires: packageName • get: Get the store listing for a single language. — requires: packageName, language • patch [write]: Partially update a localized store listing. — requires: packageName, language, requestBody • update [write]: Create or fully replace a localized store listing. — requires: packageName, language, requestBody • delete [write]: Delete the store listing for a single language. — requires: packageName, language • delete_all [write]: Delete all localized store listings for the app. — requires: packageName • get_details: Get app-level details (default language, contact info). — requires: packageName • patch_details [write]: Partially update app-level details. — requires: packageName, requestBody • update_details [write]: Fully replace app-level details. — requires: packageName, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
languagestringBCP-47 language tag, e.g. en-US.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectListing: title, shortDescription, fullDescription, video

No output schema declared.

No examples provided.

play_onetimeproduct_offers ~420

Manage offers attached to one-time product purchase options: list, lifecycle (activate/deactivate/cancel), and batch operations. Set `action` to one of: • list: List offers for a purchase option, paginated. — requires: packageName, productId, purchaseOptionId • activate [write]: Activate a one-time product offer. — requires: packageName, productId, purchaseOptionId, offerId • deactivate [write]: Deactivate a one-time product offer. — requires: packageName, productId, purchaseOptionId, offerId • cancel [write]: Cancel a one-time product offer (e.g. pre-order lifecycle). — requires: packageName, productId, purchaseOptionId, offerId • batch_get: Get multiple one-time product offers in one request. — requires: packageName, productId, purchaseOptionId, requestBody • batch_update [write]: Create or update multiple one-time product offers in one request. — requires: packageName, productId, purchaseOptionId, requestBody • batch_update_states [write]: Activate, deactivate, or cancel multiple one-time product offers in one request. — requires: packageName, productId, purchaseOptionId, requestBody • batch_delete [write]: Delete multiple one-time product offers in one request. — requires: packageName, productId, purchaseOptionId, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
offerIdstringThe offer id.
packageNamestringApp package name, e.g. com.example.app
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
productIdstringProduct / SKU identifier.
purchaseOptionIdstringThe purchase option id (may be '-' for all).
requestBodyobjectActivateOneTimeProductOfferRequest (optional; usually empty).

No output schema declared.

No examples provided.

play_onetimeproducts ~458

Manage one-time products and their purchase options. Create/edit one-time products via the patch-based create/update actions (updateMask + allowMissing). Set `action` to one of: • list: List one-time products for an app, paginated. — requires: packageName • get: Get a single one-time product by product id. — requires: packageName, productId • create [write]: Create a one-time product (patch with allowMissing). — requires: packageName, productId, requestBody • update [write]: Patch (partial update) a one-time product. — requires: packageName, productId, updateMask, requestBody • delete [write]: Delete a one-time product. — requires: packageName, productId • batch_get: Get multiple one-time products by product id in one request. — requires: packageName • batch_update [write]: Create or update multiple one-time products in one request. — requires: packageName, requestBody • batch_delete [write]: Delete multiple one-time products in one request. — requires: packageName, requestBody • batch_update_purchase_option_states [write]: Activate or deactivate multiple purchase options of a one-time product in one request. — requires: packageName, productId, requestBody • batch_delete_purchase_options [write]: Delete multiple purchase options of a one-time product in one request. — requires: packageName, productId, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
allowMissingbooleanIf true, create the product when it does not already exist (upsert).
packageNamestringApp package name, e.g. com.example.app
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
productIdstringProduct / SKU identifier.
productIdsarrayProduct ids to fetch.
requestBodyobjectOneTimeProduct resource (productId, listings, purchaseOptions, etc.).
updateMaskstringComma-separated field mask of fields to set on create.

No output schema declared.

No examples provided.

play_orders ~184

Look up orders and issue refunds for Google Play transactions. Set `action` to one of: • get: Get a single order by order id. — requires: packageName, orderId • batch_get: Get multiple orders in a single request by order ids. — requires: packageName • refund [write]: Refund an order, optionally revoking the user's entitlement. — requires: packageName, orderId

NameTypeReqDescription
actionstringyesThe operation to perform.
orderIdstringThe order ID provided to the user when the purchase was made.
orderIdsarrayThe list of order IDs to retrieve (up to 1000).
packageNamestringApp package name, e.g. com.example.app
revokebooleanWhether to revoke the purchased item from the user in addition to refunding.

No output schema declared.

No examples provided.

play_pricing ~110

Convert a price into the equivalent price in every other supported region's currency. Set `action` to one of: • convert_region_prices: Convert a price to all other regions' currencies. — requires: packageName, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectConvertRegionPricesRequest: { price: { currencyCode, units, nanos } }.

No output schema declared.

No examples provided.

play_promote_release ~200

Copy the active release from one track to another (e.g. promote beta to production). Set `action` to one of: • run [write]: Copy the active release's version codes from one track onto another. — requires: packageName, fromTrack, toTrack

NameTypeReqDescription
actionstringyesThe operation to perform.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
fromTrackstringSource track to copy the active release from.
packageNamestringApp package name, e.g. com.example.app
rolloutFractionnumberuser fraction for staged rollout (use with status inProgress/halted)
statusstringRelease status on the destination track.
toTrackstringDestination track to promote the release onto.

No output schema declared.

No examples provided.

play_publish_release ~255

Upload an Android App Bundle and roll it out on a track in a single operation. Set `action` to one of: • run [write]: Upload an AAB and create/patch a release on the given track. — requires: packageName, track, media

NameTypeReqDescription
actionstringyesThe operation to perform.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
mediaobjectthe AAB to upload
packageNamestringApp package name, e.g. com.example.app
releaseNotesarrayPer-language release notes.
rolloutFractionnumberuser fraction for staged rollout (use with status inProgress/halted)
statusstringRelease status. Use inProgress/halted with rolloutFraction for staged rollout.
trackstringRelease track, e.g. production, beta, alpha, internal, or a form-factor track like wear:production.
validateOnlybooleanvalidate the edit instead of committing
versionNamestringHuman-readable release name.

No output schema declared.

No examples provided.

play_purchases_products ~194

Verify, acknowledge, and consume one-time (in-app) product purchases by purchase token. Set `action` to one of: • get: Get the state of a one-time product purchase by purchase token. — requires: packageName, productId, token • acknowledge [write]: Acknowledge a one-time product purchase. — requires: packageName, productId, token • consume [write]: Consume a one-time product purchase so it can be re-purchased. — requires: packageName, productId, token

NameTypeReqDescription
actionstringyesThe operation to perform.
packageNamestringApp package name, e.g. com.example.app
productIdstringProduct / SKU identifier.
requestBodyobjectProductPurchasesAcknowledgeRequest object.
tokenstringThe token provided to the user's device when the product was purchased.

No output schema declared.

No examples provided.

play_purchases_subscriptions ~210

Verify and manage subscription purchases (Purchases.subscriptionsv2), with optional legacy v1 actions when enabled. Set `action` to one of: • get: Get the state of a subscription purchase (v2) by purchase token. — requires: packageName, token • cancel [write]: Cancel a subscription purchase (v2). — requires: packageName, token • revoke [write]: Revoke a subscription purchase (v2), optionally issuing a refund. — requires: packageName, token • defer [write]: Defer a subscription purchase (v2) to a later expiry/renewal time. — requires: packageName, token, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectCancelSubscriptionPurchaseRequest object.
tokenstringThe token provided to the user's device when the subscription was purchased.

No output schema declared.

No examples provided.

play_reporting_apps ~147

Discover apps accessible via Play Developer Reporting and fetch their available release-quality filter options. Set `action` to one of: • search: Search for apps the caller can access in Play Developer Reporting. • fetch_release_filter_options: Fetch the release (track/version) filter options available for an app's reports. — requires: appId

NameTypeReqDescription
actionstringyesThe operation to perform.
appIdstringReporting app id, e.g. the package name. Find it with play_reporting_apps.search.
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.

No output schema declared.

No examples provided.

play_reviews ~217

List, read, and reply to user reviews of an app on Google Play. Set `action` to one of: • list: List reviews (most recent first), paginated. — requires: packageName • get: Get a single review (with its comment thread) by id. — requires: packageName, reviewId • reply [write]: Reply to a review, or update an existing developer reply. — requires: packageName, reviewId, replyText

NameTypeReqDescription
actionstringyesThe operation to perform.
maxResultsintegerMaximum number of results to return.
packageNamestringApp package name, e.g. com.example.app
replyTextstringThe developer reply text.
reviewIdstringThe review id.
startIndexintegerIndex of the first result to return.
tokenstringPagination token from a previous response.
translationLanguagestringTranslate review text to this BCP-47 language.

No output schema declared.

No examples provided.

play_reviews_export ~301

Read the full historical reviews CSV export that Google writes monthly to your private Cloud Storage reports bucket (gs://pubsite_prod_rev_<n>/reviews/). Use this for older reviews and per-month history — play_reviews only returns the last ~7 days. Set PLAY_REPORTS_BUCKET to the value from Play Console → Download reports → Reviews → 'Copy Cloud Storage URI' (or pass `bucket`). These buckets are Google-owned and usually can't be granted to a service account, so storage auth uses the Play account owner's credentials: `gcloud auth application-default login` locally, or PLAY_STORAGE_CREDENTIALS pointing at a credentials JSON (e.g. in Docker). Set `action` to one of: • list: List available monthly reviews CSV files (optionally filtered by package). • get: Download and parse one month's reviews CSV for an app (newest months are the highest YYYYMM from list). — requires: packageName, yearMonth

NameTypeReqDescription
actionstringyesThe operation to perform.
bucketstringOverride the reports bucket (bare name or gs:// URI).
limitintegerCap the number of parsed review rows returned.
packageNamestringFilter to one app's CSV files. Omit to list all.
rawbooleanReturn the raw CSV text instead of parsed rows.
yearMonthstringReport month as YYYYMM, e.g. 202604.

No output schema declared.

No examples provided.

play_stats_export ~420

Read the historical statistics & acquisition CSV exports Google writes monthly to your private Cloud Storage reports bucket: installs (by country/language/app_version/device/…), store performance (store acquisitions by country/traffic_source), ratings, crashes, and acquisition (retained_installers, buyers_7d). Per-day rows within each monthly file. Set PLAY_REPORTS_BUCKET to the value from Play Console → Download reports → 'Copy Cloud Storage URI' (or pass `bucket`). These buckets are Google-owned and usually can't be granted to a service account, so storage auth uses the Play account owner's credentials: `gcloud auth application-default login` locally, or PLAY_STORAGE_CREDENTIALS pointing at a credentials JSON. Note: at low volume Google may suppress small per-country counts (bucketed as 'Other'). Set `action` to one of: • list: List available monthly CSV files for a report (months × dimensions), newest first. — requires: report • get: Download and parse one report file (report + packageName + yearMonth + dimension). — requires: report, packageName, yearMonth, dimension

NameTypeReqDescription
actionstringyesThe operation to perform.
bucketstringOverride the reports bucket (bare name or gs:// URI).
dimensionstringDimension (the trailing filename segment). Common: installs/ratings/crashes → overview, country, language, app_version, device, os_version, carrier; store_performance → country, traffic_source; acqui…
limitintegerCap the number of parsed rows returned.
packageNamestringFilter to one app's files. Omit to list all.
rawbooleanReturn the raw CSV text instead of parsed rows.
reportstringReport family to list.
yearMonthstringReport month as YYYYMM, e.g. 202605.

No output schema declared.

No examples provided.

play_subscription_baseplans ~326

Manage the lifecycle and pricing of subscription base plans. To create or edit a base plan, use play_subscriptions.update with updateMask including 'basePlans' (there is no separate create/patch here). Set `action` to one of: • delete [write]: Delete a base plan (only allowed if it has never been activated). — requires: packageName, productId, basePlanId • activate [write]: Activate a base plan, making it available to new subscribers. — requires: packageName, productId, basePlanId • deactivate [write]: Deactivate a base plan, making it unavailable to new subscribers. — requires: packageName, productId, basePlanId • migrate_prices [write]: Migrate subscribers on a base plan to newer prices in the specified regions. — requires: packageName, productId, basePlanId, requestBody • batch_migrate_prices [write]: Migrate prices for multiple base plans of a subscription in one request. — requires: packageName, productId, requestBody • batch_update_states [write]: Activate or deactivate multiple base plans of a subscription in one request. — requires: packageName, productId, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
basePlanIdstringThe base plan id.
packageNamestringApp package name, e.g. com.example.app
productIdstringProduct / SKU identifier.
requestBodyobjectActivateBasePlanRequest (optional; usually empty).

No output schema declared.

No examples provided.

play_subscription_offers ~498

Manage offers (intro/free-trial/developer-determined) attached to subscription base plans. Set `action` to one of: • list: List offers for a base plan, paginated. — requires: packageName, productId, basePlanId • get: Get a single subscription offer. — requires: packageName, productId, basePlanId, offerId • create [write]: Create a new subscription offer. — requires: packageName, productId, basePlanId, offerId, requestBody • update [write]: Patch (partial update) a subscription offer. — requires: packageName, productId, basePlanId, offerId, updateMask, requestBody • delete [write]: Delete a subscription offer (only allowed if it has never been activated). — requires: packageName, productId, basePlanId, offerId • activate [write]: Activate a subscription offer. — requires: packageName, productId, basePlanId, offerId • deactivate [write]: Deactivate a subscription offer. — requires: packageName, productId, basePlanId, offerId • batch_get: Get multiple subscription offers under a base plan in one request. — requires: packageName, productId, basePlanId, requestBody • batch_update [write]: Create or update multiple subscription offers in one request. — requires: packageName, productId, basePlanId, requestBody • batch_update_states [write]: Activate or deactivate multiple subscription offers in one request. — requires: packageName, productId, basePlanId, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
allowMissingbooleanIf true, create the offer when it does not already exist (upsert).
basePlanIdstringThe base plan id.
offerIdstringThe offer id.
packageNamestringApp package name, e.g. com.example.app
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
productIdstringProduct / SKU identifier.
requestBodyobjectSubscriptionOffer resource (phases, eligibility, regionalConfigs, etc.).
updateMaskstringComma-separated field mask of fields to update.

No output schema declared.

No examples provided.

play_subscriptions ~367

Manage subscription products and their listings via the monetization API. Set `action` to one of: • list: List subscriptions for an app, paginated. — requires: packageName • get: Get a single subscription by product id. — requires: packageName, productId • create [write]: Create a new subscription. — requires: packageName, productId, requestBody • update [write]: Patch a subscription (also used to create/edit base plans via updateMask 'basePlans'). — requires: packageName, productId, updateMask, requestBody • delete [write]: Delete a subscription (only allowed if it has never had any base plan). — requires: packageName, productId • batch_get: Get multiple subscriptions by product id in one request. — requires: packageName • batch_update [write]: Create or update multiple subscriptions in one request. — requires: packageName, requestBody

NameTypeReqDescription
actionstringyesThe operation to perform.
allowMissingbooleanIf true, create the subscription when it does not already exist (upsert).
packageNamestringApp package name, e.g. com.example.app
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
productIdstringProduct / SKU identifier.
productIdsarrayProduct ids to fetch.
requestBodyobjectSubscription resource (productId, basePlans, listings, etc.).
showArchivedbooleanDeprecated: include archived subscriptions.
updateMaskstringComma-separated field mask; include 'basePlans' to create/edit base plans.

No output schema declared.

No examples provided.

play_tracks ~349

Read and update release tracks (production, beta, etc.), their releases and rollout, tester lists, and country availability. Set `action` to one of: • list: List all tracks in an edit. — requires: packageName • get: Get a single track's configuration. — requires: packageName, track • patch [write]: Partially update a track (e.g. add/modify a release or rollout). — requires: packageName, track, requestBody • update [write]: Replace a track's full configuration. — requires: packageName, track, requestBody • get_testers: Get the tester groups configured for a track. — requires: packageName, track • patch_testers [write]: Partially update a track's tester groups. — requires: packageName, track, requestBody • update_testers [write]: Replace a track's tester groups. — requires: packageName, track, requestBody • get_country_availability: Get the country availability for a track. — requires: packageName, track

NameTypeReqDescription
actionstringyesThe operation to perform.
editIdstringOpen edit ID from play_edit.insert. If omitted, the change is applied in a fresh edit and committed automatically (when PLAY_AUTO_COMMIT_EDITS is on).
packageNamestringApp package name, e.g. com.example.app
requestBodyobjectTrack config including releases[] (version codes, status, userFraction, releaseNotes).
trackstringRelease track, e.g. production, beta, alpha, internal, or a form-factor track like wear:production.

No output schema declared.

No examples provided.

play_users ~325

Manage the users who can access your Play developer account and the per-app permission grants assigned to them. Set `action` to one of: • list: List users with access to the developer account, paginated. • create [write]: Grant a user access to the developer account. — requires: requestBody • patch [write]: Update an existing user's access / permissions. — requires: email, requestBody • delete [write]: Remove a user's access to the developer account. — requires: email • create_grant [write]: Grant a user app-level permissions for a specific app. — requires: email, requestBody • patch_grant [write]: Update a user's app-level permissions for a specific app. — requires: email, packageName, requestBody • delete_grant [write]: Revoke a user's app-level access to a specific app. — requires: email, packageName

NameTypeReqDescription
actionstringyesThe operation to perform.
emailstringEmail address of the user to update.
packageNamestringApp package name, e.g. com.example.app
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
requestBodyobjectUser object: email plus account-level access grants/permissions, e.g. { email, developerAccountPermissions: [...] }.
updateMaskstringComma-separated list of fields to update, e.g. developerAccountPermissions.

No output schema declared.

No examples provided.

play_vitals_anomalies ~142

List detected anomalies (significant metric changes) across an app's vitals. Set `action` to one of: • list: List anomalies detected for the app, paginated. — requires: appId

NameTypeReqDescription
actionstringyesThe operation to perform.
appIdstringReporting app id, e.g. the package name. Find it with play_reporting_apps.search.
filterstringAIP-160 filter expression to narrow results.
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.

No output schema declared.

No examples provided.

play_vitals_battery ~221

Query and inspect battery-related metric sets: excessive wakeups and stuck background wakelocks. Set `action` to one of: • query_excessive_wakeups: Query the excessive-wakeup-rate metric set. — requires: appId, requestBody • get_excessive_wakeups_set: Get the excessive-wakeup-rate metric set metadata. — requires: appId • query_stuck_wakelocks: Query the stuck-background-wakelock-rate metric set. — requires: appId, requestBody • get_stuck_wakelocks_set: Get the stuck-background-wakelock-rate metric set metadata. — requires: appId

NameTypeReqDescription
actionstringyesThe operation to perform.
appIdstringReporting app id, e.g. the package name. Find it with play_reporting_apps.search.
requestBodyobjectQuery<Metric>MetricSetRequest: { timelineSpec:{aggregationPeriod, startTime/interval}, dimensions[], metrics[], pageSize, pageToken, filter }

No output schema declared.

No examples provided.

play_vitals_crash_anr ~231

Query and inspect the crash-rate and ANR-rate metric sets for an app. Set `action` to one of: • query_crash_rate: Query the crash-rate metric set (time series of metrics over dimensions). — requires: appId, requestBody • get_crash_rate_set: Get the crash-rate metric set metadata (freshness, supported dimensions/metrics). — requires: appId • query_anr_rate: Query the ANR-rate metric set (time series of metrics over dimensions). — requires: appId, requestBody • get_anr_rate_set: Get the ANR-rate metric set metadata (freshness, supported dimensions/metrics). — requires: appId

NameTypeReqDescription
actionstringyesThe operation to perform.
appIdstringReporting app id, e.g. the package name. Find it with play_reporting_apps.search.
requestBodyobjectQuery<Metric>MetricSetRequest: { timelineSpec:{aggregationPeriod, startTime/interval}, dimensions[], metrics[], pageSize, pageToken, filter }

No output schema declared.

No examples provided.

play_vitals_errors ~260

Query the error-count metric set and search for error issues and individual error reports. Set `action` to one of: • query_error_counts: Query the error-count metric set (time series of error counts over dimensions). — requires: appId, requestBody • get_error_count_set: Get the error-count metric set metadata (freshness, supported dimensions/metrics). — requires: appId • search_issues: Search for clustered error issues affecting the app. — requires: appId • search_reports: Search for individual error reports (stack traces) for the app. — requires: appId

NameTypeReqDescription
actionstringyesThe operation to perform.
appIdstringReporting app id, e.g. the package name. Find it with play_reporting_apps.search.
filterstringAIP-160 filter expression to narrow results.
pageSizeintegerMaximum number of items to return per page.
pageTokenstringPagination token from a previous response's nextPageToken.
requestBodyobjectQuery<Metric>MetricSetRequest: { timelineSpec:{aggregationPeriod, startTime/interval}, dimensions[], metrics[], pageSize, pageToken, filter }

No output schema declared.

No examples provided.

play_vitals_performance ~274

Query and inspect performance metric sets: slow cold start, slow rendering (frame-rate), and low-memory-kill (LMK) rate. Set `action` to one of: • query_slow_start: Query the slow-start-rate metric set. — requires: appId, requestBody • get_slow_start_set: Get the slow-start-rate metric set metadata. — requires: appId • query_slow_rendering: Query the slow-rendering-rate metric set. — requires: appId, requestBody • get_slow_rendering_set: Get the slow-rendering-rate metric set metadata. — requires: appId • query_lmk_rate: Query the low-memory-kill (LMK) rate metric set. — requires: appId, requestBody • get_lmk_rate_set: Get the low-memory-kill (LMK) rate metric set metadata. — requires: appId

NameTypeReqDescription
actionstringyesThe operation to perform.
appIdstringReporting app id, e.g. the package name. Find it with play_reporting_apps.search.
requestBodyobjectQuery<Metric>MetricSetRequest: { timelineSpec:{aggregationPeriod, startTime/interval}, dimensions[], metrics[], pageSize, pageToken, filter }

No output schema declared.

No examples provided.

play_voided_purchases ~229

List purchases that were cancelled, refunded, or charged back so entitlements can be revoked. Set `action` to one of: • list: List voided purchases within an optional time window. — requires: packageName

NameTypeReqDescription
actionstringyesThe operation to perform.
endTimestringUpper bound (exclusive) on void time, in epoch milliseconds.
includeQuantityBasedPartialRefundbooleanWhether to include voided purchases of quantity-based partial refunds.
maxResultsintegerMaximum number of results to return.
packageNamestringApp package name, e.g. com.example.app
startIndexintegerIndex of the first result to return.
startTimestringLower bound (inclusive) on void time, in epoch milliseconds.
tokenstringPagination token from a previous response.
typeintegerType of voided purchases to return: 0 = voided in-app product purchases only (default); 1 = both voided in-app product and subscription purchases.

No output schema declared.

No examples provided.