# io.github.mikusnuz/app-publish (npm · app-publish-mcp)

MCP server for App Store Connect & Google Play Console — iOS/Android app management

- Trust score: 63/100 (medium)
- Change this week: +11
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `app-publish-mcp`: 63/100 (this document), [markdown](https://verifymcp.io/servers/mikusnuz-app-publish/app-publish-mcp.md), [page](https://verifymcp.io/servers/mikusnuz-app-publish/app-publish-mcp)

## Channel facts

- Registry: `npm`
- Package: `app-publish-mcp`
- Version: `0.3.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 79/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects uuid 9.0.1, reached via google-auth-library > gaxios > uuid. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (129 of 133), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 136 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 5005 tokens (~53/item across 93 items; 91 tools + 2 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 84% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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.

## Install

### Claude

```bash
claude mcp add mikusnuz-app-publish -- npx -y app-publish-mcp
```

### Codex

```bash
codex mcp add mikusnuz-app-publish -- npx -y app-publish-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mikusnuz-app-publish": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "app-publish-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add mikusnuz-app-publish --command npx --arg -y --arg app-publish-mcp
```

### Hermes

```yaml
mcp_servers:
  mikusnuz-app-publish:
    command: "npx"
    args: ["-y", "app-publish-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "mikusnuz-app-publish": {
      "command": "npx",
      "args": [
        "-y",
        "app-publish-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 63, +32)

- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 31, −5)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified

### 2026-07-31 (score 36, −23)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 59, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-29 (score 77, +52)

- [security regression] CVE-2026-41907 affects this package: high
- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-07-28 (score 25, −27)

- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] Dependency health: unverified → partial

### 2026-07-27 (score 52)

First indexed and scored.

## MCP tools (91)

### `apple_list_apps` (~30 tokens)

List all apps in App Store Connect

Input parameters:

- `limit` (number): Max results (default 100)

### `apple_get_app` (~30 tokens)

Get detailed info about an app including latest version state

Input parameters:

- `appId` (string, required): App ID

### `apple_get_app_info` (~31 tokens)

Get app info (categories, age rating, etc)

Input parameters:

- `appId` (string, required): App ID

### `apple_update_category` (~59 tokens)

Update app primary/secondary category

Input parameters:

- `appInfoId` (string, required): AppInfo ID
- `primaryCategoryId` (string): Primary category ID (e.g. SOCIAL_NETWORKING)
- `secondaryCategoryId` (string): Secondary category ID

### `apple_list_bundle_ids` (~22 tokens)

List registered bundle IDs

Input parameters:

- `limit` (number)

### `apple_create_bundle_id` (~48 tokens)

Register a new bundle ID

Input parameters:

- `identifier` (string, required): Bundle ID (e.g. com.example.app)
- `name` (string, required): Display name
- `platform` (string, required)

### `apple_list_versions` (~60 tokens)

List all App Store versions for an app

Input parameters:

- `appId` (string, required): App ID
- `platform` (string)
- `state` (string): Filter by state (e.g. PREPARE_FOR_SUBMISSION, READY_FOR_SALE)

### `apple_create_version` (~86 tokens)

Create a new App Store version for submission

Input parameters:

- `appId` (string, required): App ID
- `copyright` (string)
- `earliestReleaseDate` (string): ISO 8601 date for scheduled release
- `platform` (string)
- `releaseType` (string)
- `versionString` (string, required): Version (e.g. 1.0.0)

### `apple_list_version_localizations` (~31 tokens)

List all localizations for a version

Input parameters:

- `versionId` (string, required): App Store Version ID

### `apple_create_version_localization` (~100 tokens)

Create a new localization for a version

Input parameters:

- `description` (string)
- `keywords` (string): Comma-separated keywords
- `locale` (string, required): Locale code (e.g. ko, en-US, ja)
- `marketingUrl` (string)
- `promotionalText` (string)
- `supportUrl` (string)
- `versionId` (string, required): App Store Version ID
- `whatsNew` (string)

### `apple_update_version_localization` (~84 tokens)

Update localization fields (description, keywords, whatsNew, etc)

Input parameters:

- `description` (string)
- `keywords` (string): Comma-separated keywords
- `localizationId` (string, required): Localization ID
- `marketingUrl` (string)
- `promotionalText` (string)
- `supportUrl` (string)
- `whatsNew` (string)

### `apple_list_app_info_localizations` (~39 tokens)

List app info localizations (app name, subtitle, privacy policy URL)

Input parameters:

- `appInfoId` (string, required): AppInfo ID

### `apple_update_app_info_localization` (~74 tokens)

Update app name, subtitle, or privacy policy URL for a locale

Input parameters:

- `localizationId` (string, required): AppInfo Localization ID
- `name` (string): App name
- `privacyPolicyText` (string)
- `privacyPolicyUrl` (string)
- `subtitle` (string): App subtitle

### `apple_list_screenshot_sets` (~29 tokens)

List screenshot sets for a localization

Input parameters:

- `localizationId` (string, required): Version Localization ID

### `apple_create_screenshot_set` (~74 tokens)

Create a screenshot set for a specific display type

Input parameters:

- `displayType` (string, required): Display type (e.g. APP_IPHONE_67, APP_IPHONE_65, APP_IPAD_PRO_129, APP_IPAD_PRO_3GEN_129)
- `localizationId` (string, required): Version Localization ID

### `apple_upload_screenshot` (~77 tokens)

Upload a screenshot (reserves slot, then uploads binary)

Input parameters:

- `fileName` (string, required): File name (e.g. screen1.png)
- `filePath` (string, required): Local path to the screenshot image
- `fileSize` (number, required): File size in bytes
- `screenshotSetId` (string, required): Screenshot Set ID

### `apple_delete_screenshot` (~24 tokens)

Delete a screenshot

Input parameters:

- `screenshotId` (string, required): Screenshot ID

### `apple_list_builds` (~48 tokens)

List builds uploaded to App Store Connect

Input parameters:

- `appId` (string, required): App ID
- `limit` (number)
- `preReleaseVersion` (string): Filter by version string

### `apple_assign_build` (~40 tokens)

Assign a build to an App Store version

Input parameters:

- `buildId` (string, required): Build ID
- `versionId` (string, required): App Store Version ID

### `apple_get_age_rating` (~31 tokens)

Get age rating declaration for an app info

Input parameters:

- `appInfoId` (string, required): AppInfo ID

### `apple_update_age_rating` (~135 tokens)

Update age rating declaration

Input parameters:

- `ageRatingId` (string, required): Age Rating Declaration ID
- `alcoholTobaccoOrDrugUseOrReferences` (string)
- `gamblingAndContests` (boolean)
- `gamblingSimulated` (string)
- `horrorOrFearThemes` (string)
- `medicalOrTreatmentInformation` (string)
- `profanityOrCrudeHumor` (string)
- `sexualContentOrNudity` (string)
- `unrestrictedWebAccess` (boolean)
- `violenceCartoonOrFantasy` (string)
- `violenceRealistic` (string)

### `apple_update_review_detail` (~109 tokens)

Update app review info (contact info, notes, demo account for reviewer)

Input parameters:

- `contactEmail` (string)
- `contactFirstName` (string)
- `contactLastName` (string)
- `contactPhone` (string)
- `demoAccountName` (string)
- `demoAccountPassword` (string)
- `demoAccountRequired` (boolean)
- `notes` (string): Notes for the reviewer
- `versionId` (string, required): App Store Version ID

### `apple_submit_for_review` (~30 tokens)

Submit an App Store version for review

Input parameters:

- `versionId` (string, required): App Store Version ID

### `apple_cancel_submission` (~29 tokens)

Cancel an in-review submission (if still possible)

Input parameters:

- `submissionId` (string, required): Submission ID

### `apple_get_pricing` (~25 tokens)

Get current app pricing

Input parameters:

- `appId` (string, required): App ID

### `apple_set_price` (~69 tokens)

Set app price (free or paid). Use price tier ID from Apple price points.

Input parameters:

- `appId` (string, required): App ID
- `priceTierId` (string, required): Price tier ID (use "0" for free)
- `startDate` (string): ISO 8601 start date

### `apple_list_availability` (~28 tokens)

List territories where the app is available

Input parameters:

- `appId` (string, required): App ID

### `apple_list_reviews` (~40 tokens)

List customer reviews for an app

Input parameters:

- `appId` (string, required): App ID
- `limit` (number)
- `sort` (string)

### `apple_respond_to_review` (~38 tokens)

Respond to a customer review

Input parameters:

- `responseBody` (string, required): Response text
- `reviewId` (string, required): Customer Review ID

### `apple_list_bundle_id_capabilities` (~30 tokens)

List capabilities for a bundle ID

Input parameters:

- `bundleIdId` (string, required): Bundle ID

### `apple_enable_capability` (~170 tokens)

Enable a capability on a bundle ID

Input parameters:

- `bundleIdId` (string, required): Bundle ID
- `capabilityType` (string, required): Capability type (e.g. ICLOUD, PUSH_NOTIFICATIONS, IN_APP_PURCHASE, GAME_CENTER, WALLET, MAPS, ASSOCIATED_DOMAINS, PERSONAL_VPN, APP_GROUPS, HEALTHKIT, HOMEKIT, WIRELESS_ACCESSORY_CONFIGURATION, APPLE…
- `settings` (array): Capability-specific settings

### `apple_disable_capability` (~30 tokens)

Disable a capability on a bundle ID

Input parameters:

- `capabilityId` (string, required): Bundle ID Capability ID

### `apple_list_certificates` (~80 tokens)

List certificates

Input parameters:

- `certificateType` (string): Filter by certificate type (e.g. IOS_DEVELOPMENT, IOS_DISTRIBUTION, MAC_APP_DISTRIBUTION, MAC_INSTALLER_DISTRIBUTION, MAC_APP_DEVELOPMENT, DEVELOPER_ID_KEXT, DEVELOPER_ID_APPLICATION, DEVELOPER_ID_IN…

### `apple_create_certificate` (~65 tokens)

Create a certificate

Input parameters:

- `certificateType` (string, required): Certificate type (e.g. IOS_DEVELOPMENT, IOS_DISTRIBUTION, MAC_APP_DISTRIBUTION, DEVELOPER_ID_APPLICATION)
- `csrContent` (string, required): Certificate Signing Request (CSR) content

### `apple_revoke_certificate` (~25 tokens)

Revoke a certificate

Input parameters:

- `certificateId` (string, required): Certificate ID

### `apple_list_profiles` (~122 tokens)

List provisioning profiles

Input parameters:

- `name` (string): Filter by profile name
- `profileType` (string): Filter by profile type (e.g. IOS_APP_DEVELOPMENT, IOS_APP_STORE, IOS_APP_ADHOC, IOS_APP_INHOUSE, MAC_APP_DEVELOPMENT, MAC_APP_STORE, MAC_APP_DIRECT, TVOS_APP_DEVELOPMENT, TVOS_APP_STORE, TVOS_APP_ADH…

### `apple_create_profile` (~86 tokens)

Create a provisioning profile

Input parameters:

- `bundleIdId` (string, required): Bundle ID
- `certificateIds` (array, required): Array of certificate IDs
- `deviceIds` (array): Array of device IDs (required for development profiles)
- `name` (string, required): Profile name
- `profileType` (string, required): Profile type (e.g. IOS_APP_DEVELOPMENT, IOS_APP_STORE)

### `apple_delete_profile` (~24 tokens)

Delete a provisioning profile

Input parameters:

- `profileId` (string, required): Profile ID

### `apple_list_devices` (~33 tokens)

List registered devices

Input parameters:

- `platform` (string): Filter by platform
- `status` (string): Filter by status

### `apple_register_device` (~42 tokens)

Register a new device

Input parameters:

- `name` (string, required): Device name
- `platform` (string, required): Platform
- `udid` (string, required): Device UDID

### `apple_update_device` (~44 tokens)

Update device name or status

Input parameters:

- `deviceId` (string, required): Device ID
- `name` (string): New device name
- `status` (string): New status

### `apple_list_beta_groups` (~26 tokens)

List beta groups

Input parameters:

- `appId` (string): Filter by app ID

### `apple_create_beta_group` (~104 tokens)

Create a beta group

Input parameters:

- `appId` (string, required): App ID
- `feedbackEnabled` (boolean): Enable feedback
- `hasAccessToAllBuilds` (boolean): Auto-enable all new builds
- `isInternalGroup` (boolean): Is internal group (Apple employees)
- `name` (string, required): Group name
- `publicLinkEnabled` (boolean): Enable public TestFlight link
- `publicLinkLimit` (number): Max testers via public link

### `apple_delete_beta_group` (~27 tokens)

Delete a beta group

Input parameters:

- `betaGroupId` (string, required): Beta Group ID

### `apple_add_beta_testers_to_group` (~46 tokens)

Add beta testers to a group

Input parameters:

- `betaGroupId` (string, required): Beta Group ID
- `betaTesterIds` (array, required): Array of beta tester IDs

### `apple_remove_beta_testers_from_group` (~46 tokens)

Remove beta testers from a group

Input parameters:

- `betaGroupId` (string, required): Beta Group ID
- `betaTesterIds` (array, required): Array of beta tester IDs

### `apple_list_beta_testers` (~37 tokens)

List beta testers

Input parameters:

- `appId` (string): Filter by app ID
- `email` (string): Filter by email

### `apple_invite_beta_tester` (~60 tokens)

Invite a beta tester

Input parameters:

- `betaGroupIds` (array, required): Array of beta group IDs
- `email` (string, required): Tester email
- `firstName` (string): First name
- `lastName` (string): Last name

### `apple_delete_beta_tester` (~28 tokens)

Delete a beta tester

Input parameters:

- `betaTesterId` (string, required): Beta Tester ID

### `apple_list_iap` (~28 tokens)

List in-app purchases for an app

Input parameters:

- `appId` (string, required): App ID

### `apple_create_iap` (~69 tokens)

Create an in-app purchase

Input parameters:

- `appId` (string, required): App ID
- `inAppPurchaseType` (string, required): IAP type
- `name` (string, required): IAP name
- `productId` (string, required): Product ID (e.g. com.example.app.coins100)

### `apple_get_iap` (~29 tokens)

Get in-app purchase details

Input parameters:

- `iapId` (string, required): In-App Purchase ID

### `apple_delete_iap` (~29 tokens)

Delete an in-app purchase

Input parameters:

- `iapId` (string, required): In-App Purchase ID

### `apple_list_subscription_groups` (~27 tokens)

List subscription groups for an app

Input parameters:

- `appId` (string, required): App ID

### `apple_create_subscription_group` (~35 tokens)

Create a subscription group

Input parameters:

- `appId` (string, required): App ID
- `referenceName` (string, required): Reference name

### `apple_delete_subscription_group` (~26 tokens)

Delete a subscription group

Input parameters:

- `groupId` (string, required): Subscription Group ID

### `google_create_edit` (~44 tokens)

Create a new edit session. Required before making any changes to a Google Play listing.

Input parameters:

- `packageName` (string, required): Android package name (e.g. com.example.app)

### `google_commit_edit` (~48 tokens)

Commit all pending changes in an edit session. This publishes the changes.

Input parameters:

- `editId` (string, required): Edit ID from google_create_edit
- `packageName` (string, required): Android package name

### `google_validate_edit` (~49 tokens)

Validate an edit session without committing. Useful to check for errors before commit.

Input parameters:

- `editId` (string, required): Edit ID from google_create_edit
- `packageName` (string, required): Android package name

### `google_delete_edit` (~39 tokens)

Discard an edit session without committing changes

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_get_details` (~44 tokens)

Get app details (default language, contact email/phone/website)

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_update_details` (~104 tokens)

Update app details (default language, contact email/phone/website)

Input parameters:

- `contactEmail` (string): User-visible support email
- `contactPhone` (string): User-visible support phone number
- `contactWebsite` (string): User-visible website URL
- `defaultLanguage` (string): Default language code in BCP 47 format (e.g. en-US)
- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_list_listings` (~43 tokens)

List all store listings (all languages) for an app

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_get_listing` (~61 tokens)

Get store listing for a specific language

Input parameters:

- `editId` (string, required): Edit ID
- `language` (string, required): Language code (e.g. ko-KR, en-US, ja-JP)
- `packageName` (string, required): Android package name

### `google_update_listing` (~106 tokens)

Update store listing for a specific language (title, descriptions)

Input parameters:

- `editId` (string, required): Edit ID
- `fullDescription` (string): Full description (max 4000 chars)
- `language` (string, required): Language code (e.g. ko-KR, en-US)
- `packageName` (string, required): Android package name
- `shortDescription` (string): Short description (max 80 chars)
- `title` (string): App title (max 30 chars)

### `google_delete_listing` (~57 tokens)

Delete a store listing for a specific language

Input parameters:

- `editId` (string, required): Edit ID
- `language` (string, required): Language code to delete (e.g. ko-KR)
- `packageName` (string, required): Android package name

### `google_get_country_availability` (~60 tokens)

Get country availability for a specific track

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name
- `track` (string, required): Track name (e.g. production, beta, alpha, internal)

### `google_get_testers` (~56 tokens)

Get tester configuration for a track

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name
- `track` (string, required): Track name (e.g. internal, alpha, beta)

### `google_update_testers` (~71 tokens)

Update tester Google Groups for a track

Input parameters:

- `editId` (string, required): Edit ID
- `googleGroups` (array): List of Google Group email addresses
- `packageName` (string, required): Android package name
- `track` (string, required): Track name (e.g. internal, alpha, beta)

### `google_list_images` (~57 tokens)

List uploaded images of a specific type

Input parameters:

- `editId` (string, required): Edit ID
- `imageType` (string, required): Image type
- `language` (string, required): Language code
- `packageName` (string, required): Android package name

### `google_upload_image` (~77 tokens)

Upload an image (screenshot, icon, feature graphic, etc)

Input parameters:

- `editId` (string, required): Edit ID
- `imagePath` (string, required): Local path to the image file
- `imageType` (string, required): Image type
- `language` (string, required): Language code
- `packageName` (string, required): Android package name

### `google_delete_image` (~67 tokens)

Delete a specific uploaded image

Input parameters:

- `editId` (string, required): Edit ID
- `imageId` (string, required): Image ID to delete
- `imageType` (string, required): Image type
- `language` (string, required): Language code
- `packageName` (string, required): Android package name

### `google_delete_all_images` (~61 tokens)

Delete all images of a specific type for a language

Input parameters:

- `editId` (string, required): Edit ID
- `imageType` (string, required): Image type
- `language` (string, required): Language code
- `packageName` (string, required): Android package name

### `google_list_tracks` (~43 tokens)

List all release tracks (internal, alpha, beta, production)

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_get_track` (~47 tokens)

Get details of a specific release track

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name
- `track` (string, required): Track name

### `google_create_release` (~120 tokens)

Create a release on a track with optional version codes and release notes

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name
- `releaseName` (string): Release name/label
- `releaseNotes` (array): Release notes per language
- `status` (string)
- `track` (string, required): Target track
- `userFraction` (number): Staged rollout fraction (0.0-1.0, only for production)
- `versionCodes` (array): Version codes to include

### `google_promote_release` (~89 tokens)

Promote a release from one track to another (e.g. beta → production)

Input parameters:

- `editId` (string, required): Edit ID
- `fromTrack` (string, required): Source track
- `packageName` (string, required): Android package name
- `releaseNotes` (array)
- `toTrack` (string, required): Target track
- `userFraction` (number): Staged rollout fraction for production

### `google_halt_release` (~46 tokens)

Halt an ongoing staged rollout

Input parameters:

- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name
- `track` (string, required): Track name

### `google_upload_bundle` (~55 tokens)

Upload an Android App Bundle (.aab)

Input parameters:

- `bundlePath` (string, required): Local path to the .aab file
- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_upload_apk` (~51 tokens)

Upload an APK file

Input parameters:

- `apkPath` (string, required): Local path to the .apk file
- `editId` (string, required): Edit ID
- `packageName` (string, required): Android package name

### `google_list_reviews` (~27 tokens)

List user reviews for an app

Input parameters:

- `packageName` (string, required): Android package name

### `google_get_review` (~37 tokens)

Get a specific review with details

Input parameters:

- `packageName` (string, required): Android package name
- `reviewId` (string, required): Review ID

### `google_reply_to_review` (~47 tokens)

Reply to a user review

Input parameters:

- `packageName` (string, required): Android package name
- `replyText` (string, required): Reply text
- `reviewId` (string, required): Review ID

### `google_list_iap` (~34 tokens)

List all in-app products (managed products) for an app

Input parameters:

- `packageName` (string, required): Android package name

### `google_get_iap` (~39 tokens)

Get details of a specific in-app product

Input parameters:

- `packageName` (string, required): Android package name
- `sku` (string, required): Product SKU

### `google_create_iap` (~138 tokens)

Create a new in-app product (managed product)

Input parameters:

- `defaultDescription` (string, required): Default product description
- `defaultLanguage` (string, required): Default language (e.g. en-US)
- `defaultPriceCurrencyCode` (string, required): Currency code (e.g. USD)
- `defaultPriceMicros` (string, required): Price in micros (e.g. 990000 for $0.99)
- `defaultTitle` (string, required): Default product title
- `packageName` (string, required): Android package name
- `purchaseType` (string)
- `sku` (string, required): Product SKU (unique identifier)
- `status` (string)

### `google_update_iap` (~105 tokens)

Update an existing in-app product

Input parameters:

- `defaultLanguage` (string): Default language
- `defaultPriceCurrencyCode` (string): Currency code
- `defaultPriceMicros` (string): Price in micros
- `description` (string): Product description (for default language)
- `packageName` (string, required): Android package name
- `sku` (string, required): Product SKU
- `status` (string)
- `title` (string): Product title (for default language)

### `google_delete_iap` (~38 tokens)

Delete an in-app product

Input parameters:

- `packageName` (string, required): Android package name
- `sku` (string, required): Product SKU to delete

### `google_list_subscriptions` (~28 tokens)

List all subscriptions for an app

Input parameters:

- `packageName` (string, required): Android package name

### `google_get_subscription` (~38 tokens)

Get details of a specific subscription

Input parameters:

- `packageName` (string, required): Android package name
- `productId` (string, required): Subscription product ID

### `google_archive_subscription` (~47 tokens)

Archive a subscription (remove from Google Play but retain for existing subscribers)

Input parameters:

- `packageName` (string, required): Android package name
- `productId` (string, required): Subscription product ID to archive

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/mikusnuz-app-publish/app-publish-mcp#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 63
- 2026-08-01: 31
- 2026-07-31: 36
- 2026-07-30: 59
- 2026-07-29: 77
- 2026-07-28: 25
- 2026-07-27: 52

## Links

- npm package: https://www.npmjs.com/package/app-publish-mcp
- Socket report: https://socket.dev/npm/package/app-publish-mcp
- Repository: https://github.com/mikusnuz/app-publish-mcp
- Changelog RSS feed: https://verifymcp.io/servers/mikusnuz-app-publish/app-publish-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/mikusnuz-app-publish/app-publish-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/mikusnuz-app-publish/app-publish-mcp
