mcpField
T
The App Stores Cooolest API

The App Stores Cooolest API

Local
github.comDeveloper Tools8Updated today

About The App Stores Cooolest API

A Rust API, CLI, and MCP server for managing app-store metadata, pricing, signing, and reports across App Store Connect, Google Play, and Huawei AppGallery. It shares operations between the CLI and MCP front ends, with separate crates for each domain.

Key features

  1. 01App Store Connect metadata and pricing
  2. 02Google Play listings and releases
  3. 03AppGallery publishing operations
  4. 04Certificates, profiles, and CSR generation
  5. 05Sales report retrieval
  6. 06Shared CLI and MCP operations

Use cases

  1. 01Update store listings and release notes
  2. 02Manage signing certificates and profiles
  3. 03Retrieve sales reports
  4. 04Expose store operations through MCP

MCP support

The MCP server exposes shared operations through a stdio server; the CLI also supports `--mcp`. AppGallery MCP tools are limited to three read-only operations for app info and package status.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository
Packages
cargosmbcloud-ascapi-cli0.5.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

smbcloud-ascapi

smbcloud-ascapi is the app stores coolest API.

Nine crates, split by domain and layered so neither front end can drift from the other:

CrateWhat it is
smbcloud-ascapi-coreShared transport: JWT auth, the HTTP client, JSON:API envelopes, error types
smbcloud-ascapi-playGoogle Play (Edits v3): store listings, listing images, track release notes; service-account auth, independent of core
smbcloud-ascapi-appgalleryHuawei AppGallery Connect Publishing API (Android): app info and listings, file and package upload, submit, phased release, release time, GMS flag, package list and status; Service Account auth (PS256 JWT), independent of core
smbcloud-ascapi-asoApp Metadata: apps, app infos, versions, builds, pre-release versions, review submissions, bundle IDs, localizations, screenshots
smbcloud-ascapi-pricingPricing: app price schedules, and the per-territory prices joined with their price points and currencies
smbcloud-ascapi-signingCode signing: certificates and provisioning profiles, plus local RSA key pair and CSR generation
smbcloud-ascapi-reportsSales reports: account-level sales data, as Apple's gzip-compressed TSV
smbcloud-ascapi-frontendOperations both surfaces share, so the CLI and the MCP server agree by construction, plus the CLI's xcrun altool upload
smbcloud-ascapi-mcpThe MCP contract and stdio server
smbcloud-ascapi-cliThe asc binary: clap command tree, plus --mcp

aso, play, appgallery, pricing, signing and reports know nothing about each other, and neither knows anything about the front ends. Each adds its calls to smbcloud_ascapi_core::Client as extension traits, since Rust only allows inherent impls in the crate that defines a type:

use smbcloud_ascapi_core::{ApiKey, Client};
use smbcloud_ascapi_aso::prelude::*;      // or pricing::prelude, signing::prelude

MCP Registry name: mcp-name: io.github.smbcloudXYZ/ascapi

Credentials

The CLI signs requests with an App Store Connect API key:

FlagEnvironment variableNotes
--key-idASC_API_KEYThe key id. There is no ASC_KEY_ID.
--issuer-idASC_ISSUER_IDThe issuer id from App Store Connect.
--private-key-pathASC_PRIVATE_KEY_PATHDefaults to ~/.appstoreconnect/private_keys/AuthKey_<key-id>.p8.

With --mcp, credentials are resolved on each tool call, so the server can list its tools before they are configured.

AppGallery credentials

asc appgallery uses an AppGallery Connect Service Account (developer-level, with a publishing role), not the App Store Connect key:

FlagEnvironment variableNotes
--service-accountAPPGALLERY_SERVICE_ACCOUNT_JSON_PATHThe *private.json file; or its contents in APPGALLERY_SERVICE_ACCOUNT_JSON.
--client-idAPPGALLERY_CLIENT_IDOptional client_id header.
asc appgallery app-id xyz.smbcloud.SiGit
asc appgallery listings list <APP> [--lang en-US]          # every field the API returns
asc appgallery listings update <APP> --lang en-US --brief "..." --release-notes-file notes.txt
asc appgallery listings delete <APP> --lang id
asc appgallery info update <APP> --privacy-policy URL [--category ID --category-tag ID]
    [--publish-country CODES] [--developer-website URL] [--device-types JSON] ...
asc appgallery files upload <APP> --type icon --lang en-US icon-216.png
asc appgallery files upload <APP> --type screenshots --orientation portrait --lang en-US 1.png 2.png
asc appgallery files upload <APP> --type package siGit.apk      # chineseMainlandFlag=0 unless --chinese-mainland
asc appgallery packages list <APP>
asc appgallery packages status <APP> <PKG_ID>...
asc appgallery gms <APP> --needs-gms false
asc appgallery submit <APP> [--release-time T] [--remark TEXT] [--phased-start T --phased-end T --phased-percent P --phased-description D]
asc appgallery phased-release <APP> (--to-full | --state SUSPEND|RELEASE | --phased-percent P ...)
asc appgallery release-time <APP> (--immediately | --at T)

<APP> is the numeric app id or the package name. Every write takes --dry-run. Binding an image or video for a language clears that language's text; files upload reads the text first and writes it back if it went missing. MCP has three read-only tools: appgallery_app_info_get, appgallery_package_list and appgallery_package_status.

Not covered: the "download mode" submit and package calls, which need a public package URL and a callback server for Huawei to report to.

Copyright

© 2026 PT Sigit Mitra Bangun (smbCloud).

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.