App Console: Google Play, App Store Connect, AdMob
OCI · GHCR.IO/ALEKLA0126/APP-CONSOLE-MCP
Google Play Console, App Store Connect and AdMob via official APIs: releases, reviews, vitals, ads
Available components
Last scanned (4 hours ago)
Scores higher than 39% of OCI servers
Category Marketing and SEO
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 → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency44
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 273 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability63
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 5924 tokens (~128/item across 46 items; 46 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 Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
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.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 36
First indexed and scored.
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 5 Nov 2026 · Analysed oci/ghcr.io/alekla0126/app-console-mcp@0.3.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
admob_ab_experiment ~192
Start a mediation A/B experiment on a group (its lines vs. treatment lines), or stop it keeping the winner. Limited access. Args: group_id: mediation group id action: start or stop treatment_lines: for start, comma-separated SOURCE_ID@live or SOURCE_ID@CPM for variant B traffic_percent: for start, share of traffic for variant B (1-99) display_name: for start, experiment name winner: for stop, a (keep the current lines) or b (keep the treatment) confirm: true to start or stop it
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| confirm | boolean | – | – |
| display_name | string | – | – |
| group_id | string | yes | – |
| traffic_percent | integer | – | – |
| treatment_lines | string | – | – |
| winner | string | – | – |
No output schema declared.
No examples provided.
admob_accounts ~26
AdMob publisher accounts this Google user can read, with currency and reporting time zone.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
admob_ad_sources ~103
Ad sources (networks) available for mediation, and optionally their adapters with the settings an ad unit mapping needs (adapter id, platform, formats, required keys). Args: search: part of a source name or its id, e.g. meta, applovin adapters: also list each source's adapters (needs search when more than 10 sources match)
| Name | Type | Req | Description |
|---|---|---|---|
| adapters | boolean | – | – |
| search | string | – | – |
No output schema declared.
No examples provided.
admob_ad_unit_mappings ~62
Ad unit mappings of one ad unit: which third-party adapter it uses and its settings. Limited access. Args: ad_unit_id: ca-app-pub-.../... ad unit id
| Name | Type | Req | Description |
|---|---|---|---|
| ad_unit_id | string | yes | – |
No output schema declared.
No examples provided.
admob_apps ~95
AdMob apps (platform, store id, approval state) and their ad units (id, format, name). Useful to check that the ad unit ids in your code exist before a release. Args: search: part of an app name, app id or store id ad_units: also list each app's ad units
| Name | Type | Req | Description |
|---|---|---|---|
| ad_units | boolean | – | – |
| search | string | – | – |
No output schema declared.
No examples provided.
admob_campaign_report ~125
AdMob app promotion campaigns: impressions, clicks, CTR, installs, estimated cost and cost per install. Args: days: number of full days ending yesterday (or end_date), at most 30 by: grouping, comma-separated: campaign, ad, placement, platform, country, format, date rows: maximum rows to show end_date: optional last day, YYYY-MM-DD
| Name | Type | Req | Description |
|---|---|---|---|
| by | string | – | – |
| days | integer | – | – |
| end_date | string | – | – |
| rows | integer | – | – |
No output schema declared.
No examples provided.
admob_create_ad_unit ~209
Create an ad unit in one of the account's apps. Limited access. Args: app_id: AdMob app id, ca-app-pub-...~... display_name: ad unit name (max 80) ad_format: APP_OPEN, BANNER, BANNER_INTERSTITIAL, INTERSTITIAL, NATIVE, REWARDED or REWARDED_INTERSTITIAL ad_types: comma-separated RICH_MEDIA, VIDEO (empty: RICH_MEDIA for banners, both otherwise) reward_amount: reward per view, REWARDED only reward_item: reward name, e.g. coins, REWARDED only confirm: true to create it
| Name | Type | Req | Description |
|---|---|---|---|
| ad_format | string | yes | – |
| ad_types | string | – | – |
| app_id | string | yes | – |
| confirm | boolean | – | – |
| display_name | string | yes | – |
| reward_amount | integer | – | – |
| reward_item | string | – | – |
No output schema declared.
No examples provided.
admob_create_app ~131
Add an app to AdMob, linked to its store listing (app_store_id) or by name only. Limited access. Args: platform: ANDROID or IOS display_name: name for an app that isn't in a store yet (max 80) app_store_id: package name (Android) or numeric App Store id (iOS) to link it to its store confirm: true to create it
| Name | Type | Req | Description |
|---|---|---|---|
| app_store_id | string | – | – |
| confirm | boolean | – | – |
| display_name | string | – | – |
| platform | string | yes | – |
No output schema declared.
No examples provided.
admob_create_mediation_group ~245
Create a mediation group for some ad units, with lines for other ad sources. Created disabled unless enable=true. Limited access. Args: display_name: group name (max 120) platform: ANDROID or IOS ad_format: BANNER, INTERSTITIAL, REWARDED, NATIVE, APP_OPEN or REWARDED_INTERSTITIAL ad_unit_ids: ad units the group targets lines: comma-separated SOURCE_ID@live or SOURCE_ID@CPM (manual CPM, account currency, min 0.01); third-party sources use each ad unit's existing mapping (admob_map_ad_unit) regions: optional comma-separated country codes to target, e.g. US,MX (empty: all) enable: serve it right away confirm: true to create it
| Name | Type | Req | Description |
|---|---|---|---|
| ad_format | string | yes | – |
| ad_unit_ids | array | yes | – |
| confirm | boolean | – | – |
| display_name | string | yes | – |
| enable | boolean | – | – |
| lines | string | – | – |
| platform | string | yes | – |
| regions | string | – | – |
No output schema declared.
No examples provided.
admob_map_ad_unit ~169
Map an ad unit to a third-party network's adapter, so mediation lines can use it. Limited access. Find the adapter id and the settings it needs with admob_ad_sources(search=..., adapters=true). Args: ad_unit_id: ca-app-pub-.../... ad unit id adapter_id: adapter id from admob_ad_sources settings: the adapter's settings as id=value, e.g. 118=1234567890_987654321 display_name: optional name for the mapping confirm: true to create it
| Name | Type | Req | Description |
|---|---|---|---|
| ad_unit_id | string | yes | – |
| adapter_id | string | yes | – |
| confirm | boolean | – | – |
| display_name | string | – | – |
| settings | array | yes | – |
No output schema declared.
No examples provided.
admob_mediation_groups ~76
Mediation groups with their targeting (platform, format, ad units, regions), state, A/B test and lines (ad source, CPM, state). Limited access: Google must enable the publisher. Args: search: part of a group name or its id
| Name | Type | Req | Description |
|---|---|---|---|
| search | string | – | – |
No output schema declared.
No examples provided.
admob_report ~224
AdMob earnings, impressions, eCPM, match, show rate and CTR, with the change against the previous period. Args: days: number of full days ending yesterday (or end_date) by: grouping, comma-separated: app, ad_unit, country, format, platform, date, week, month, ad_type, app_version, sdk_version, os_version, serving_restriction (why ads are limited), or the mediation groupings ad_source, ad_source_instance, mediation_group currency: report currency, e.g. USD (empty uses the account currency) rows: maximum rows to show app_id: optional AdMob app id (ca-app-pub-...~...) to limit the report to one app end_date: optional last day, YYYY-MM-DD
| Name | Type | Req | Description |
|---|---|---|---|
| app_id | string | – | – |
| by | string | – | – |
| currency | string | – | – |
| days | integer | – | – |
| end_date | string | – | – |
| rows | integer | – | – |
No output schema declared.
No examples provided.
admob_update_mediation_group ~216
Change a mediation group: turn it on or off, rename it, change its ad units, or change one line's state or manual CPM. Limited access. Args: group_id: mediation group id from admob_mediation_groups state: ENABLED or DISABLED display_name: new name (max 120) ad_unit_ids: comma-separated ad unit ids that replace the targeted ones line_id: id of the line to change line_state: ENABLED, DISABLED or REMOVED for line_id line_cpm: new manual CPM for line_id (switches it to manual) confirm: true to save
| Name | Type | Req | Description |
|---|---|---|---|
| ad_unit_ids | string | – | – |
| confirm | boolean | – | – |
| display_name | string | – | – |
| group_id | string | yes | – |
| line_cpm | number | – | – |
| line_id | string | – | – |
| line_state | string | – | – |
| state | string | – | – |
No output schema declared.
No examples provided.
appstore_apps ~29
List every app in the App Store Connect account: Apple ID, bundle id, name and SKU.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
appstore_builds ~89
Recent builds (TestFlight and App Store) with processing state and export-compliance flag. Args: app: Apple ID, bundle id or part of the name limit: how many builds platform: IOS, MAC_OS, TV_OS or VISION_OS
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| limit | integer | – | – |
| platform | string | – | – |
No output schema declared.
No examples provided.
appstore_create_version ~139
Create a new App Store version (the editable 'Prepare for Submission' version). Args: app: Apple ID, bundle id or part of the name version: version string, e.g. 1.4.0 platform: IOS, MAC_OS, TV_OS or VISION_OS release_type: MANUAL, AFTER_APPROVAL or SCHEDULED (empty keeps Apple's default) confirm: true to create it
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| confirm | boolean | – | – |
| platform | string | – | – |
| release_type | string | – | – |
| version | string | yes | – |
No output schema declared.
No examples provided.
appstore_listing ~132
App Store listing for one locale: name, subtitle, description, keywords, promotional text, what's new. Args: app: Apple ID, bundle id or part of the name locale: e.g. en-US, es-MX, pt-BR version: '' (editable version if any, else live), 'live', 'editable' or a version string platform: IOS, MAC_OS, TV_OS or VISION_OS
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| locale | string | – | – |
| platform | string | – | – |
| version | string | – | – |
No output schema declared.
No examples provided.
appstore_products ~77
Subscription groups and subscriptions (state, period, price in one territory) and in-app purchases. Args: app: Apple ID, bundle id or part of the name territory: three-letter territory for prices, e.g. USA, MEX
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| territory | string | – | – |
No output schema declared.
No examples provided.
appstore_release ~93
Release an approved version that is waiting for manual release (PENDING_DEVELOPER_RELEASE). Args: app: Apple ID, bundle id or part of the name platform: IOS, MAC_OS, TV_OS or VISION_OS confirm: true to release it to the App Store
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| confirm | boolean | – | – |
| platform | string | – | – |
No output schema declared.
No examples provided.
appstore_reply ~76
Publish (or replace) the developer response to an App Store review. It is public. Args: review_id: id from appstore_reviews text: response text confirm: true to publish
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| review_id | string | yes | – |
| text | string | yes | – |
No output schema declared.
No examples provided.
appstore_reviews ~138
Latest App Store customer reviews (newest first). Each line ends with the id needed to reply. Args: app: Apple ID, bundle id or part of the name limit: maximum number of reviews (up to 200 per page) unanswered_only: only reviews without a published developer response territory: optional three-letter territory, e.g. USA, MEX rating: optional star filter, 1-5
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| limit | integer | – | – |
| rating | integer | – | – |
| territory | string | – | – |
| unanswered_only | boolean | – | – |
No output schema declared.
No examples provided.
appstore_sales ~89
Downloads, in-app purchase units and proceeds per app for the last days (daily sales reports). Needs ASC_VENDOR_NUMBER (App Store Connect > Payments and Financial Reports) and a key with Sales access. Apple publishes each day's report the next day, so the newest day may be missing. Args: days: number of days back from yesterday
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | – |
No output schema declared.
No examples provided.
appstore_screenshots ~120
Screenshot sets of one locale (device type, how many, processing state). Args: app: Apple ID, bundle id or part of the name locale: e.g. en-US version: '' (editable version if any, else live), 'live', 'editable' or a version string platform: IOS, MAC_OS, TV_OS or VISION_OS
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| locale | string | – | – |
| platform | string | – | – |
| version | string | – | – |
No output schema declared.
No examples provided.
appstore_search_rank ~88
Approximate position of an iOS app in App Store search (public iTunes Search API, top 200). No key needed. Args: app: numeric Apple ID or bundle id keywords: search terms to check country: two-letter country code
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| country | string | – | – |
| keywords | array | yes | – |
No output schema declared.
No examples provided.
appstore_submit ~133
Attach a build to the editable version and submit it to App Review. Without confirm it only checks: editable version, chosen build, missing what's new, export compliance. Args: app: Apple ID, bundle id or part of the name build: build number (CFBundleVersion); empty picks the newest valid build of that version platform: IOS, MAC_OS, TV_OS or VISION_OS confirm: true to submit for review
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| build | string | – | – |
| confirm | boolean | – | – |
| platform | string | – | – |
No output schema declared.
No examples provided.
appstore_update_listing ~263
Change listing texts for one locale. Empty fields are left as they are; a missing locale is created. Name, subtitle, description, keywords and what's new go to the editable version (they ship with the next review). Promotional text can change any time: with no editable version it goes to the live one. Args: app: Apple ID, bundle id or part of the name locale: e.g. en-US name: app name (max 30) subtitle: subtitle (max 30) description: description (max 4000) keywords: comma-separated keywords (max 100) promotional_text: promotional text (max 170) whats_new: release notes of the editable version (max 4000) platform: IOS, MAC_OS, TV_OS or VISION_OS confirm: true to save
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| confirm | boolean | – | – |
| description | string | – | – |
| keywords | string | – | – |
| locale | string | yes | – |
| name | string | – | – |
| platform | string | – | – |
| promotional_text | string | – | – |
| subtitle | string | – | – |
| whats_new | string | – | – |
No output schema declared.
No examples provided.
appstore_upload_screenshots ~214
Upload screenshots for one device type and locale of the editable version, in the order given. Args: app: Apple ID, bundle id or part of the name locale: e.g. en-US display_type: e.g. APP_IPHONE_67 (6.7"/6.9"), APP_IPHONE_65, APP_IPHONE_55, APP_IPAD_PRO_3GEN_129, APP_DESKTOP files: PNG or JPEG files at that device's size (up to 10 per set) replace: delete the set's current screenshots first (otherwise new ones go after them) platform: IOS, MAC_OS, TV_OS or VISION_OS confirm: true to upload
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| confirm | boolean | – | – |
| display_type | string | yes | – |
| files | array | yes | – |
| locale | string | yes | – |
| platform | string | – | – |
| replace | boolean | – | – |
No output schema declared.
No examples provided.
appstore_versions ~101
Latest App Store versions with their state (e.g. READY_FOR_SALE, WAITING_FOR_REVIEW, REJECTED) and build. Args: app: Apple ID, bundle id or part of the name platform: IOS, MAC_OS, TV_OS or VISION_OS limit: how many versions to show
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | – |
| limit | integer | – | – |
| platform | string | – | – |
No output schema declared.
No examples provided.
play_apps ~43
List the apps this service account can see (package name and title). Uses the Play Developer Reporting API, which must be enabled in the key's Google Cloud project.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
play_data_safety ~121
Replace an app's Data safety answers with a CSV in Play Console's format. Get the CSV once from Play Console (App content > Data safety > Export to CSV), edit it, and reuse it for similar apps. Google offers no way to read the current answers back through the API. Args: package: Android package name csv_file: path to the CSV confirm: true to send it
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| csv_file | string | yes | – |
| package | string | yes | – |
No output schema declared.
No examples provided.
play_grant ~127
Give a person or service account permissions on one app, inviting them to the account first if needed. Args: email: their Google account or service account email package: Android package name permissions: preset read, deploy (releases on every track, listing, testers) or full, or permission names comma-separated (e.g. reply_to_reviews,view_financial_data) confirm: true to save
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| string | yes | – | |
| package | string | yes | – |
| permissions | string | – | – |
No output schema declared.
No examples provided.
play_images ~68
How many images each graphic type has in one listing language (screenshots, icon, feature graphic, TV banner). Args: package: Android package name language: listing language, e.g. en-US
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | – |
| package | string | yes | – |
No output schema declared.
No examples provided.
play_listing ~84
Store listing saved in Play Console for one language (title, short and full description). Args: package: Android package name, e.g. com.example.app language: BCP-47 code as used by Play, e.g. en-US, es-419, pt-BR
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | – |
| package | string | yes | – |
No output schema declared.
No examples provided.
play_products ~67
Subscriptions (with base plans and price in one region) and one-time in-app products. Args: package: Android package name region: region code for prices, e.g. US, MX
| Name | Type | Req | Description |
|---|---|---|---|
| package | string | yes | – |
| region | string | – | – |
No output schema declared.
No examples provided.
play_promote ~183
Promote the latest release of one track to another (e.g. internal → production), keeping its notes. Without confirm the change is built and validated by Google in a draft edit, then discarded. Args: package: Android package name from_track: source track, e.g. internal to_track: target track, e.g. production rollout_percent: below 100 starts a staged rollout release_notes: replace the release notes for `language` (empty keeps the source notes) language: language of release_notes confirm: true to commit
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| from_track | string | yes | – |
| language | string | – | – |
| package | string | yes | – |
| release_notes | string | – | – |
| rollout_percent | number | – | – |
| to_track | string | yes | – |
No output schema declared.
No examples provided.
play_reply ~93
Reply publicly to a Google Play review as the developer (max 350 characters; replaces an earlier reply). Args: package: Android package name review_id: id from play_reviews text: reply text confirm: true to publish the reply
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| package | string | yes | – |
| review_id | string | yes | – |
| text | string | yes | – |
No output schema declared.
No examples provided.
play_reviews ~118
Recent Google Play reviews with text (the API only returns about the last 7 days). Each line ends with the review id needed to reply. Args: package: Android package name limit: maximum number of reviews unanswered_only: hide reviews that already have a developer reply translate_to: optional language code to translate the reviews into, e.g. en
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| package | string | yes | – |
| translate_to | string | – | – |
| unanswered_only | boolean | – | – |
No output schema declared.
No examples provided.
play_revoke ~84
Remove someone's access to one app, or (without package) remove them from the developer account. Args: email: their email package: the app to remove them from; empty removes them from the whole account confirm: true to remove
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| string | yes | – | |
| package | string | – | – |
No output schema declared.
No examples provided.
play_rollout ~144
Change a staged rollout: set a new percentage, finish it (100), halt it or resume a halted one. Args: package: Android package name track: track with the staged rollout, usually production rollout_percent: new percentage; 100 completes the rollout halt: stop the rollout for new users resume: resume a halted rollout at rollout_percent (or its previous percentage) confirm: true to commit
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| halt | boolean | – | – |
| package | string | yes | – |
| resume | boolean | – | – |
| rollout_percent | number | – | – |
| track | string | – | – |
No output schema declared.
No examples provided.
play_search_rank ~94
Position of an app in public Google Play search (top 30) for several keywords. No credentials needed. Args: package: Android package name keywords: search terms to check country: two-letter country code language: two-letter language code
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | – |
| keywords | array | yes | – |
| language | string | – | – |
| package | string | yes | – |
No output schema declared.
No examples provided.
play_tracks ~40
Releases on every track (production, beta, alpha, internal, custom): name, version codes, status, rollout %.
| Name | Type | Req | Description |
|---|---|---|---|
| package | string | yes | – |
No output schema declared.
No examples provided.
play_update_listing ~177
Change the title, short or full description of one listing language (creates the language if new). Without confirm it is a dry run: Google validates the texts inside a draft edit that is then discarded. Args: package: Android package name language: listing language, e.g. en-US title: new title (max 30), empty keeps the current one short_description: new short description (max 80), empty keeps it full_description: new full description (max 4000), empty keeps it confirm: true to save and send to review
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| full_description | string | – | – |
| language | string | yes | – |
| package | string | yes | – |
| short_description | string | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
play_upload ~243
Upload an .aab (or .apk) and release it on a track. Without confirm nothing is uploaded: it checks the file and shows the plan. Apps that were never published only accept draft releases (draft=true). Args: package: Android package name file: path to the .aab or .apk track: internal, alpha, beta, production or a custom track name release_notes: "What's new" text for `language` (max 500) language: language of the release notes rollout_percent: below 100 starts a staged rollout (production) draft: create the release as a draft instead of rolling it out release_name: optional name shown in Play Console (defaults to the version name) confirm: true to upload and commit
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| draft | boolean | – | – |
| file | string | yes | – |
| language | string | – | – |
| package | string | yes | – |
| release_name | string | – | – |
| release_notes | string | – | – |
| rollout_percent | number | – | – |
| track | string | – | – |
No output schema declared.
No examples provided.
play_upload_images ~200
Upload screenshots or graphics to one listing language, in the order given. Without confirm the images go into a draft edit that Google validates and then discards. Args: package: Android package name language: listing language, e.g. en-US image_type: phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, tvScreenshots, wearScreenshots, icon, featureGraphic or tvBanner files: PNG or JPEG files (one for icon, featureGraphic and tvBanner; up to 8 screenshots per type) replace: delete the current screenshots of that type first (otherwise new ones go after them) confirm: true to save and send to review
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| files | array | yes | – |
| image_type | string | yes | – |
| language | string | yes | – |
| package | string | yes | – |
| replace | boolean | – | – |
No output schema declared.
No examples provided.
play_users ~67
Users and service accounts of the Play developer account, with account-wide permissions and per-app grants. Needs GOOGLE_PLAY_DEVELOPER_ID and a key with "Manage users and permissions". Args: package: only people with access to this app
| Name | Type | Req | Description |
|---|---|---|---|
| package | string | – | – |
No output schema declared.
No examples provided.
play_vitals ~92
Android vitals: user-perceived crash and ANR rates (28-day, as Google judges them) and the worst versions. Google's bad-behavior thresholds: crashes 1.09 %, ANR 0.47 %. Args: package: Android package name days: window for the per-version breakdown
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | – |
| package | string | yes | – |
No output schema declared.
No examples provided.
How do I install the App Console: Google Play, App Store Connect, AdMob MCP server?
App Console: Google Play, App Store Connect, AdMob runs locally as a container image, launched with docker run --rm -i -e GOOGLE_PLAY_SERVICE_ACCOUNT -e ASC_KEY_ID -e ASC_ISSUER_ID -e ASC_PRIVATE_KEY_PATH -e ASC_VENDOR_NUMBER -e ADMOB_PUBLISHER_ID ghcr.io/alekla0126/app-console-mcp:0.3.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · ghcr.io/alekla0126/app-console-mcp
claude mcp add alekla0126-app-console-mcp -- docker run --rm -i -e GOOGLE_PLAY_SERVICE_ACCOUNT -e ASC_KEY_ID -e ASC_ISSUER_ID -e ASC_PRIVATE_KEY_PATH -e ASC_VENDOR_NUMBER -e ADMOB_PUBLISHER_ID ghcr.io/alekla0126/app-console-mcp:0.3.0
This image reads GOOGLE_PLAY_SERVICE_ACCOUNT, ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH, ASC_VENDOR_NUMBER and ADMOB_PUBLISHER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.
What is the App Console: Google Play, App Store Connect, AdMob MCP server?
App Console: Google Play, App Store Connect, AdMob is an MCP server listed in the public MCP registry as io.github.Alekla0126/app-console-mcp. Google Play Console, App Store Connect and AdMob via official APIs: releases, reviews, vitals, ads. This page covers its container image (ghcr.io/alekla0126/app-console-mcp).
Is the App Console: Google Play, App Store Connect, AdMob MCP server safe to use?
App Console: Google Play, App Store Connect, AdMob scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the App Console: Google Play, App Store Connect, AdMob MCP server expose?
App Console: Google Play, App Store Connect, AdMob exposes 46 tools: play_apps, play_listing, play_update_listing, play_tracks, play_upload, and 41 more. Their descriptions and schemas cost roughly 5,699 tokens of context every time the server is loaded.
Is the App Console: Google Play, App Store Connect, AdMob MCP server still maintained?
App Console: Google Play, App Store Connect, AdMob is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the App Console: Google Play, App Store Connect, AdMob MCP server under?
App Console: Google Play, App Store Connect, AdMob declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.