Back to Browse

App Publish MCP Server

Developer ToolsModerate7.3MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

7.3
Moderate7.3Low Risk

Valid MCP server (1 strong, 1 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (15/15 approved).

3 files analyzed · 4 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

Apple App Store Connect API Key IDRequired

Environment variable: APPLE_KEY_ID

Apple App Store Connect Issuer IDRequired

Environment variable: APPLE_ISSUER_ID

Path to Apple AuthKey .p8 fileOptional

Environment variable: APPLE_P8_PATH

Path to Google Play service account JSON key fileOptional

Environment variable: GOOGLE_SERVICE_ACCOUNT_PATH

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-mikusnuz-app-publish": {
      "env": {
        "APPLE_KEY_ID": "your-apple-key-id-here",
        "APPLE_P8_PATH": "your-apple-p8-path-here",
        "APPLE_ISSUER_ID": "your-apple-issuer-id-here",
        "GOOGLE_SERVICE_ACCOUNT_PATH": "your-google-service-account-path-here"
      },
      "args": [
        "-y",
        "app-publish-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

English | 한국어 | 中文 | 日本語

app-publish-mcp

npm version

A unified MCP (Model Context Protocol) server for App Store Connect and Google Play Console. Manage app listings, screenshots, releases, reviews and submissions — all from your AI assistant.

When to Use

Use this MCP when you need to:

  • "Update my app's App Store description and keywords" — modify version localizations, app info localizations
  • "Upload new screenshots for iPhone 16 Pro" — create screenshot sets and upload images
  • "Submit a new version for review" — create version, assign build, set review info, submit
  • "Check the status of my app review" — list versions and check review state
  • "Respond to a user review on Google Play" — list reviews and reply
  • "Create a phased release on Google Play" — create edit, create release on a track, commit
  • "Manage TestFlight beta testers" — create groups, invite testers, manage access
  • "Set up in-app purchases" — create and manage IAPs and subscription groups on both platforms
  • "Register a new device for development" — manage devices, certificates, and provisioning profiles

Features

Apple App Store Connect (70 tools)

CategoryTools
App Managementapple_list_apps, apple_get_app, apple_get_app_info, apple_update_category
Bundle IDsapple_list_bundle_ids, apple_create_bundle_id
Bundle ID Capabilitiesapple_list_bundle_id_capabilities, apple_enable_capability, apple_disable_capability
Versionsapple_list_versions, apple_create_version
Version Localizationsapple_list_version_localizations, apple_create_version_localization, apple_update_version_localization
App Info Localizationsapple_list_app_info_localizations, apple_update_app_info_localization
Screenshotsapple_list_screenshot_sets, apple_create_screenshot_set, apple_upload_screenshot, apple_delete_screenshot
Buildsapple_list_builds, apple_assign_build
Age Ratingapple_get_age_rating, apple_update_age_rating
Review Infoapple_update_review_detail
Submissionapple_submit_for_review, apple_cancel_submission
Pricingapple_get_pricing, apple_set_price, apple_list_availability
Customer Reviewsapple_list_reviews, apple_respond_to_review
Certificatesapple_list_certificates, apple_create_certificate, apple_revoke_certificate
Provisioning Profilesapple_list_profiles, apple_create_profile, apple_delete_profile
Devicesapple_list_devices, apple_register_device, apple_update_device
TestFlight Beta Groupsapple_list_beta_groups, apple_create_beta_group, apple_delete_beta_group, apple_add_beta_testers_to_group, apple_remove_beta_testers_from_group
TestFlight Beta Testersapple_list_beta_testers, apple_invite_beta_tester, apple_delete_beta_tester
In-App Purchasesapple_list_iap, apple_create_iap, apple_get_iap, apple_delete_iap
Subscription Groupsapple_list_subscription_groups, apple_create_subscription_group, apple_delete_subscription_group
Accessibility Declarationsapple_list_accessibility_declarations, apple_create_accessibility_declaration, apple_update_accessibility_declaration, apple_delete_accessibility_declaration
Price Pointsapple_get_subscription_price_points, apple_get_iap_price_points
Offer Codesapple_list_subscription_offer_codes, apple_get_subscription_offer_code, apple_create_subscription_offer_code, apple_list_iap_offer_codes, apple_get_iap_offer_code, apple_create_iap_offer_code
Win-Back Offersapple_list_win_back_offers, apple_get_win_back_offer

Google Play Console (45 tools)

CategoryTools
Edit Lifecyclegoogle_create_edit, google_commit_edit, google_validate_edit, google_delete_edit
App Detailsgoogle_get_details, google_update_details
Store Listinggoogle_list_listings, google_get_listing, google_update_listing, google_delete_listing
Country Availabilitygoogle_get_country_availability
Testersgoogle_get_testers, google_update_testers
Imagesgoogle_list_images, google_upload_image, google_delete_image, google_delete_all_images
Tracks & Releasesgoogle_list_tracks, google_get_track, google_create_release, google_promote_release, google_halt_release
Bundle / APKgoogle_upload_bundle, google_upload_apk
Reviews¹google_list_reviews, google_get_review, google_reply_to_review
In-App Productsgoogle_list_iap, google_get_iap, google_create_iap, google_update_iap, google_delete_iap
Subscriptionsgoogle_list_subscriptions, google_get_subscription, google_create_subscription, google_archive_subscription, google_activate_subscription_base_plan, google_deactivate_subscription_base_plan
One-time Products²google_list_one_time_products, google_get_one_time_product, google_create_one_time_product, google_update_one_time_product, google_delete_one_time_product, google_activate_purchase_option, google_deactivate_purchase_option

¹ If google_list_reviews returns an empty array for an app that has visible reviews in Play Console, first check that the linked service account has the "Reply to reviews" account permission (Play Console → Users and permissions) — the API does not raise a distinct error for a missing permission, it just returns no results. Also note the endpoint only surfaces recent reviews; use pageToken to page through more.

² One-time Products (monetization.onetimeproducts) is Google Play's newer purchase model for buy/rent items, distinct from the older inappproducts API. Purchase options are created active by default; use google_deactivate_purchase_option to pull one down without deleting the product.

Prompts (2)

PromptDescription
app_release_checklistGuided checklist for releasing an app update — walks through version creation, metadata, build assignment and submission for iOS and/or Android
app_store_optimizationASO audit that reviews current listing metadata (title, description, keywords, screenshots, localization) and provides actionable improvement recommendations

Resources (2)

URIDescription
app-publish://configCurrent server configuration — connected accounts, auth methods, tool counts
app-publish://supported-platformsAll supported tools grouped by platform with descriptions

Setup

1. Install

npm install
npm run build

2. Apple Credentials

  1. Go to App Store Connect > Keys
  2. Create an API Key with App Manager role
  3. Download the .p8 file
  4. Note the Key ID and Issuer ID

3. Google Credentials

  1. Go to Google Cloud Console
  2. Enable Google Play Android Developer API
  3. Create a Service Account and download the JSON key
  4. In Google Play Console, grant the service account access under Settings > API access

4. Configure Environment

cp .env.example .env

Edit .env:

APPLE_KEY_ID=YOUR_KEY_ID
APPLE_ISSUER_ID=YOUR_ISSUER_ID
APPLE_P8_PATH=/path/to/AuthKey.p8
GOOGLE_SERVICE_ACCOUNT_PATH=/path/to/service-account.json

5. Add to Claude Code

Add to ~/.claude/settings.local.json:

{
  "mcpServers": {
    "app-publish-mcp": {
      "command": "node",
      "args": ["/path/to/app-publish-mcp/dist/index.js"],
      "env": {
        "APPLE_KEY_ID": "YOUR_KEY_ID",
        "APPLE_ISSUER_ID": "YOUR_ISSUER_ID",
        "APPLE_P8_PATH": "/path/to/AuthKey.p8",
        "GOOGLE_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
      }
    }
  }
}

Usage Examples

Submit an iOS app update

1. apple_list_apps → get app ID
2. apple_create_version → create version 1.1.0
3. apple_list_version_localizations → get localization IDs
4. apple_update_version_localization → set whatsNew, description
5. apple_list_builds → find the uploaded build
6. apple_assign_build → attach build to version
7. apple_update_review_detail → set reviewer contact info
8. apple_submit_for_review → submit!

Release an Android app

1. google_create_edit → start edit session
2. google_update_details → update contact info
3. google_update_listing → update store listing
4. google_upload_bundle → upload .aab file
5. google_create_release → create release on production track
6. google_validate_edit → check for errors
7. google_commit_edit → publish changes

Manage Google Play in-app products

1. google_list_iap → list all products
2. google_create_iap → create a new managed product
3. google_update_iap → update price or description
4. google_delete_iap → remove a product

Create a Google Play subscription

1. google_create_subscription → create the subscription with listings and a
   base plan (billing period, grace period, regional pricing in micros).
   The base plan is created in DRAFT state.
2. google_activate_subscription_base_plan → flip the base plan to ACTIVE so
   it becomes purchasable in the Play Store.
3. google_deactivate_subscription_base_plan → pause sales without deleting
   the plan.
4. google_archive_subscription → archive the subscription when retired.

Example arguments for google_create_subscription:

{
  "packageName": "com.example.app",
  "productId": "com.example.app.pro_monthly",
  "listings": [
    {
      "languageCode": "en-US",
      "title": "Pro Monthly",
      "description": "Unlock all premium features.",
      "benefits": ["Ad-free", "Cloud sync", "Priority support"]
    }
  ],
  "basePlans": [
    {
      "basePlanId": "pro-monthly",
      "autoRenewing": {
        "billingPeriodDuration": "P1M",
        "gracePeriodDuration": "P3D",
        "accountHoldDuration": "P30D"
      },
      "regionalConfigs": [
        { "regionCode": "US", "priceMicros": "3990000", "currency": "USD" },
        { "regionCode": "TR", "priceMicros": "99000000", "currency": "TRY" }
      ]
    }
  ]
}

Prices are given in micros (1 USD = 1,000,000 micros) and converted to the Play API's Money shape (units + nanos) internally. regionsVersion defaults to 2022/02, which the Play API currently requires when regional pricing is supplied.

License

MIT

Reviews

No reviews yet

Be the first to review this server!