mcpField
A
app-publish

app-publish

本地服务
github.com/mikusnuz开发工具391 周前更新

关于 app-publish

app-publish 是面向开发者的 MCP 服务,用于管理 App Store Connect 和 Google Play Console 中已有的 iOS、Android 应用。它处理商店侧的上架信息、素材、测试、审核和发布流程,要求提供已签名且可发布的构建产物;不会编译应用或管理签名密钥。

主要功能

  1. 01管理商店信息、本地化内容和截图
  2. 02上传构建产物并管理版本与发布
  3. 03查看审核状态并回复用户评价
  4. 04管理 TestFlight 测试组和测试者
  5. 05管理应用内购买与订阅
  6. 06查看 Android vitals 和商店报告

适用场景

  1. 01更新商店描述、关键词和截图
  2. 02提交已签名的应用构建版本审核
  3. 03查看审核进度或回复 Google Play 评价
  4. 04准备分阶段发布并管理测试者

MCP 相关

该 MCP 服务提供面向 App Store Connect 和 Google Play Console 的工具,以及发布检查清单和商店信息审查提示词。它还提供配置和支持平台资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mikusnuz-app-publish": {
"command": "npx",
"args": [
"-y",
"app-publish-mcp"
],
"env": {
"APPLE_KEY_ID": "<APPLE_KEY_ID>",
"APPLE_KEY_TYPE": "<APPLE_KEY_TYPE>",
"APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
"APPLE_P8_PATH": "<APPLE_P8_PATH>",
"GOOGLE_SERVICE_ACCOUNT_PATH": "<GOOGLE_SERVICE_ACCOUNT_PATH>",
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>",
"GOOGLE_REFRESH_TOKEN": "<GOOGLE_REFRESH_TOKEN>",
"APPLE_VENDOR_NUMBER": "<APPLE_VENDOR_NUMBER>",
"APP_PUBLISH_READ_ONLY": "<APP_PUBLISH_READ_ONLY>",
"APPLE_REPORTS_KEY_ID": "<APPLE_REPORTS_KEY_ID>",
"APPLE_REPORTS_P8_PATH": "<APPLE_REPORTS_P8_PATH>",
"APPLE_ADMIN_KEY_ID": "<APPLE_ADMIN_KEY_ID>",
"APPLE_ADMIN_P8_PATH": "<APPLE_ADMIN_P8_PATH>",
"APPLE_REPORTS_ISSUER_ID": "<APPLE_REPORTS_ISSUER_ID>",
"APPLE_REPORTS_KEY_TYPE": "<APPLE_REPORTS_KEY_TYPE>",
"APPLE_ADMIN_ISSUER_ID": "<APPLE_ADMIN_ISSUER_ID>",
"APPLE_ADMIN_KEY_TYPE": "<APPLE_ADMIN_KEY_TYPE>"
}
}
}
}
启动命令npx -y app-publish-mcp
需要配置的环境变量
APPLE_KEY_ID密钥Apple App Store Connect API Key ID
APPLE_KEY_TYPE密钥Apple API key type: TEAM (default) or INDIVIDUAL
APPLE_ISSUER_ID密钥Apple App Store Connect Issuer ID for TEAM keys
APPLE_P8_PATHPath to Apple AuthKey .p8 file
GOOGLE_SERVICE_ACCOUNT_PATHPath to Google Play service account JSON key file
GOOGLE_CLIENT_IDGoogle Desktop OAuth client ID
GOOGLE_CLIENT_SECRET密钥Google Desktop OAuth client secret
GOOGLE_REFRESH_TOKEN密钥Google OAuth refresh token
APPLE_VENDOR_NUMBERApple vendor number for sales and finance reports
APP_PUBLISH_READ_ONLYSet to true to register only read tools (list/get/search/query/download, no Google edit creation or deletion)
APPLE_REPORTS_KEY_ID密钥Extra Apple key ID for Sales/Finance/Analytics reports
APPLE_REPORTS_P8_PATHPath to the reports key .p8 file
APPLE_ADMIN_KEY_ID密钥Admin key ID for analytics requests and finance/reporting fallback
APPLE_ADMIN_P8_PATHPath to the Admin key .p8 file
APPLE_REPORTS_ISSUER_IDReports key issuer; defaults to APPLE_ISSUER_ID
APPLE_REPORTS_KEY_TYPE密钥Reports key type: TEAM or INDIVIDUAL; defaults to APPLE_KEY_TYPE
APPLE_ADMIN_ISSUER_IDAdmin key issuer; defaults to APPLE_ISSUER_ID
APPLE_ADMIN_KEY_TYPE密钥Admin key type: TEAM or INDIVIDUAL; defaults to APPLE_KEY_TYPE

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmapp-publish-mcp0.7.0

工具

147

收录的工具列表 · 更新于 1 周前

参数类型必填说明
appIdstring是

详细介绍

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

app-publish-mcp

npm version

适用于 App Store Connect 和 Google Play Console 的统一 MCP(Model Context Protocol) 服务。通过 AI 助手管理应用列表、截图、版本、评论和提交。

发布边界

你需要提供可发布且签名正确的 Android .aab / .apk 或 Apple .ipa。MCP 会处理商店端支持的工作,涵盖上传、元数据、测试、提交审核和发布。它不会编译应用、保管签名密钥,也不会取代 Xcode、Gradle 或 CI。

新应用的首次发布仍需要在 App Store Connect 或 Play Console 中手动设置,包括开发者注册、协议、必要时创建应用记录、API 访问、签名、税务和银行信息,以及政策、隐私或内容声明。对于已完成全部配置的现有 Android 应用,签名后的 AAB 通常足以让 MCP 执行更新工作流。Google 编辑提交只会提交所请求的更改;商店审核、托管发布或分阶段推出可能会延迟应用公开上线。

适用场景

在以下情况下使用此 MCP:

  • “更新我的应用在 App Store 上的描述和关键词” — 修改版本本地化内容和应用信息本地化内容
  • “为 iPhone 16 Pro 上传新截图” — 上传到资源库,并将图片放置到版本本地化内容中
  • “提交新版本以供审核” — 创建版本、分配构建版本、设置审核信息并提交
  • “查看我的应用审核状态” — 列出版本并查看审核状态
  • “回复 Google Play 上的用户评论” — 列出评论并回复
  • “在 Google Play 上创建分阶段发布” — 创建编辑、在某个轨道上创建版本并提交
  • “管理 TestFlight 测试者” — 创建群组、邀请测试者并管理访问权限
  • “设置应用内购买” — 在两个平台上创建和管理 IAP 与订阅群组
  • “注册用于开发的新设备” — 管理设备、证书和配置描述文件

功能

Apple App Store Connect(135 个工具)
CategoryTools
App Managementapple_list_apps, apple_get_next_page, apple_get_app, apple_update_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, apple_update_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
Asset Libraryapple_get_asset_library, apple_get_asset_specs, apple_list_assets, apple_get_asset, apple_wait_for_asset, apple_upload_asset, apple_list_asset_placements, apple_delete_asset
Asset Placementsapple_list_placements, apple_create_placement, apple_reorder_placements, apple_delete_placement
Legacy Screenshots (deprecated)apple_list_screenshot_sets, apple_create_screenshot_set, apple_upload_screenshot, apple_delete_screenshot
Buildsapple_list_builds, apple_get_build_upload, apple_wait_for_build_upload, apple_delete_build_upload, apple_upload_build, apple_set_build_encryption, apple_assign_build
Age Ratingapple_get_age_rating, apple_update_age_rating
Review Infoapple_update_review_detail
Submissionapple_submit_for_review, apple_cancel_submission
Releaseapple_release_version, apple_get_phased_release, apple_create_phased_release, apple_update_phased_release, apple_delete_phased_release
Pricing & Availabilityapple_get_pricing, apple_list_app_price_points, apple_set_price, apple_list_availability, apple_create_availability, apple_update_territory_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
Custom Product Pagesapple_list_custom_product_pages, apple_get_custom_product_page, apple_create_custom_product_page, apple_update_custom_product_page, apple_delete_custom_product_page, apple_list_custom_product_page_versions, apple_create_custom_product_page_version, apple_update_custom_product_page_version, apple_list_custom_product_page_localizations, apple_create_custom_product_page_localization, apple_update_custom_product_page_localization, apple_delete_custom_product_page_localization
Product Page Optimizationapple_list_experiments, apple_get_experiment, apple_create_experiment, apple_update_experiment, apple_delete_experiment, apple_list_experiment_treatments, apple_create_experiment_treatment, apple_update_experiment_treatment, apple_delete_experiment_treatment, apple_list_treatment_localizations, apple_create_treatment_localization, apple_delete_treatment_localization
Sales & Finance Reportsapple_get_sales_report, apple_get_finance_report
App Analytics Reportsapple_list_analytics_report_requests, apple_create_analytics_report_request, apple_list_analytics_reports, apple_list_analytics_report_instances, apple_list_analytics_report_segments, apple_download_analytics_report
Review submission workflowapple_list_review_submissions, apple_get_review_submission, apple_create_review_submission, apple_add_review_submission_item, apple_submit_review_submission

apple_get_pricing 会遍历所有手动和自动定价页面。apple_set_price 会提交完整的手动定价计划,因此请包含所有必须保留的当前或未来手动条目;未包含的条目可能会从计划中移除。

Apple 配置资源——Bundle ID、功能、证书、描述文件和设备——需要具有相应访问权限的 Team API 密钥。个人 API 密钥可用于受支持的 App Store Connect 发布操作,但不能用于这些配置资源。TestFlight 内部测试人员是 App Store Connect 团队成员,并非 Apple 员工。

Google Play Console(53 个工具)
类别工具
编辑生命周期google_create_edit、google_get_edit、google_commit_edit、google_validate_edit、google_delete_edit
应用详情google_get_details、google_update_details
商店商品详情google_list_listings、google_get_listing、google_update_listing、google_delete_listing
国家/地区可用性google_get_country_availability
测试人员google_get_testers、google_update_testers
图片google_list_images、google_upload_image、google_delete_image、google_delete_all_images
轨道和版本google_list_tracks、google_get_track、google_create_release、google_promote_release、google_halt_release、google_list_release_statuses
Bundle / APKgoogle_list_bundles、google_upload_bundle、google_list_apks、google_upload_apk
数据安全google_update_data_safety
评论¹google_list_reviews、google_get_review、google_reply_to_review
应用内商品google_list_iap、google_get_iap、google_create_iap、google_update_iap、google_delete_iap
订阅google_list_subscriptions、google_get_subscription、google_create_subscription、google_activate_subscription_base_plan、google_deactivate_subscription_base_plan
Android Vitals³google_query_vitals、google_list_vitals_anomalies、google_search_vitals_error_issues、google_search_vitals_error_reports
一次性商品²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

¹ Reviews API 仅返回过去 7 天内创建或修改、且带有评论内容的正式版应用评论。不包括没有评论内容的评分以及 Alpha / Beta 反馈。pageToken 不会延长此时间范围;如需查看更早的记录,请从 Play Console 导出 CSV。排查问题时,请检查 回复评论 权限,但仅凭结果为空,不能证明是权限问题。

² 一次性商品(monetization.onetimeproducts)是 Google Play 针对购买/租赁商品推出的较新购买模式,与较旧的 inappproducts API 不同。请检查每个返回的购买选项状态,并使用专用的启用/停用工具更改状态。

³ Vitals 使用 Play Developer Reporting API。请在服务账号的 Cloud 项目中启用该 API,并在 Play Console 中授予该账号 查看应用信息 权限。在添加此作用域之前创建的已保存 OAuth 令牌,需要再次运行 app-publish-mcp auth google。

提示词(2 个)
提示词说明
app_release_checklist引导式清单,涵盖从签名构建产物上传到审核、发布,以及 iOS 和/或 Android 发布状态检查的整个流程
app_store_optimizationASO 审核,检查当前商品详情元数据(标题、描述、关键词、屏幕截图、本地化),并提供可执行的改进建议
资源(2)
URI描述
app-publish://config当前服务配置——已连接的账户、身份验证方式、工具数量
app-publish://supported-platforms按平台分组的所有受支持工具及其描述

设置

1. 安装
npm install
npm run build
2. Apple 凭据
  1. 前往 App Store Connect > Keys
  2. 创建一个具有 App Manager 角色的 API Key(报告需要第二个 Key,请参阅Key 和角色)
  3. 下载 .p8 文件
  4. 记下 Key ID;对于团队 Key,还要记下 Issuer ID。对于个人 Key,设置 APPLE_KEY_TYPE=INDIVIDUAL,并省略 Issuer ID。
  5. 使用具有适当访问权限的 Team API Key 来操作 Bundle ID、证书、配置文件、功能或设备。
3. Google 凭据

启用 Google Play Android Developer API,然后选择一种身份验证方式:

  • 服务账户: 在 Google Cloud Console 中创建服务账户并下载其 JSON Key,然后在 Play Console 的 Users and permissions 中邀请该账户的电子邮件地址并授予所需的应用权限。
  • OAuth: 创建一个 Desktop OAuth 客户端,然后运行:
app-publish-mcp auth google --client-id=YOUR_ID --client-secret=YOUR_SECRET

OAuth 命令会将刷新令牌保存到 ~/.app-publish-mcp/google.json;服务会自动加载该令牌。你也可以显式设置 GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET 和 GOOGLE_REFRESH_TOKEN。

4. 配置环境
cp .env.example .env

编辑 .env:

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

可选:

APPLE_VENDOR_NUMBER=YOUR_VENDOR_NUMBER   # sales and finance reports
APPLE_REPORTS_KEY_ID=REPORTS_KEY_ID      # key for Sales/Finance/Analytics reports
APPLE_REPORTS_P8_PATH=/path/to/AuthKey_REPORTS.p8
APPLE_ADMIN_KEY_ID=ADMIN_KEY_ID          # analytics requests and finance/reporting fallback
APPLE_ADMIN_P8_PATH=/path/to/AuthKey_ADMIN.p8
APP_PUBLISH_READ_ONLY=true               # register only read tools (list/get/search/query/download, no Google edit creation or deletion)

有关额外的 Key,请参阅Key 和角色;有关只读模式,请参阅安全性。

服务会自动从软件包/项目根目录加载 .env。Shell 或 MCP 主机提供的环境变量优先级更高。有关 OAuth 变量,请参阅 .env.example。

5. 添加到 Claude Code

添加到 ~/.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_KEY_TYPE": "TEAM",
        "APPLE_ISSUER_ID": "YOUR_ISSUER_ID",
        "APPLE_P8_PATH": "/path/to/AuthKey.p8",
        "GOOGLE_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
      }
    }
  }
}

Key 和角色

Apple 会根据 API Key 的角色决定其可执行的操作,因此通常需要多个 Key。能够执行上架操作的 Key 在获取报告时会收到 403,而报告 Key 无法更改上架内容。

Apple 角色的作用
任务适用角色不适用角色
上架、截图和视觉素材、自定产品页面、A/B 测试、版本、审核提交、TestFlight、定价App Manager、AdminSales and Reports、Finance
Bundle ID、功能、证书、配置文件、设备具有适当访问权限的 Team Key(Admin 具备所需权限)个人 Key
apple_get_sales_reportSales and Reports、Finance、AdminApp Manager(403)
apple_get_finance_reportFinance、AdminSales and Reports、App Manager(403)
读取 App Analytics 报告Sales and Reports、Finance、AdminApp Manager(403)
apple_create_analytics_report_requestAdminSales and Reports、App Manager(403)

Apple 在 Analytics Reports 中说明了分析和销售相关的权限要求。使用报告端点前,请检查 Key 角色和应用访问权限。

在同一服务上使用多个 Key

照常设置主 Key,并添加可选 Key。每个请求都会按 API 选择 Key;服务不会在请求被拒绝时改用权限更高的 Key 重试。

请求使用的 Key
除报告外的所有操作主 Key(APPLE_KEY_ID、APPLE_P8_PATH)
销售报告、读取分析报告APPLE_REPORTS_*,否则使用 APPLE_ADMIN_*,再否则使用主 Key
财务报告APPLE_ADMIN_*,否则使用 APPLE_REPORTS_*,再否则使用主 Key
创建或删除分析报告请求APPLE_ADMIN_*,否则使用主 Key

APPLE_REPORTS_ISSUER_ID、APPLE_ADMIN_ISSUER_ID 和对应的 *_KEY_TYPE 默认使用主 Key 的值。apple_get_sales_report 和 apple_get_finance_report 还需要 APPLE_VENDOR_NUMBER(App Store Connect → Payments and Financial Reports)。

配方:无需永久 Admin 密钥即可获取应用分析数据
  1. 主密钥:App Manager。
  2. 创建 Sales and Reports 密钥,并设置 APPLE_REPORTS_KEY_ID / APPLE_REPORTS_P8_PATH。
  3. 创建临时 Admin 密钥,设置 APPLE_ADMIN_KEY_ID / APPLE_ADMIN_P8_PATH,重启服务,然后为每个应用调用一次 apple_create_analytics_report_request(ONGOING)。
  4. 在 App Store Connect 中撤销 Admin 密钥,并移除 APPLE_ADMIN_* 变量。请求会继续生成报告,而 Sales and Reports 密钥可以读取这些报告。

Apple 会在一两天后生成首批报告实例,并将每个实例保留 35 天。使用 apple_list_analytics_reports → apple_list_analytics_report_instances → apple_download_analytics_report 下载报告。

Google

一个服务账号即可用于发布和运行状况数据。启用用于发布的 Google Play Android Developer API 和用于运行状况数据的 Google Play Developer Reporting API,并在 Play Console 中向该账号授予所需的应用权限。运行状况数据需要 View app information 权限。

故障排除
响应通常表示
401 NOT_AUTHORIZEDKey ID、Issuer ID 或 .p8 错误,或者密钥已撤销。令牌会提前 60 秒签发,以容忍轻微的时钟偏差;请确保系统时钟保持同步。
403 FORBIDDEN_ERROR "The API key in use does not allow this request"密钥的角色无权执行此操作。请检查角色表,并添加 APPLE_REPORTS_* 或 APPLE_ADMIN_*。
销售或财务报告出现 404 NOT_FOUND该日期或地区没有数据,例如,免费应用没有财务报告。
销售报告出现 400 PARAMETER_ERROR供应商编号错误,或者 reportSubType / version 与 reportType 不匹配。
Google 运行状况数据未返回任何行Google 在该时间段内没有此应用的运行状况数据;新应用或流量较低的应用经常会出现这种情况。

安全

大多数工具会更改商店中的实际数据。在允许助手调用这些工具之前,请先了解它们的作用。

触达用户或开始 Apple 审核

  • apple_submit_for_review、apple_release_version、apple_create_phased_release / apple_update_phased_release
  • 使用 apple_update_experiment 并设置 started=true,会启动面向真实访客的产品页面测试
  • google_commit_edit 会发布编辑中的所有内容;google_create_release、google_promote_release 和 google_halt_release 会在提交时生效

资金与可用性

  • apple_set_price(会替换整个手动价格计划)、apple_create_availability、apple_update_territory_availability
  • 创建、更改、启用或停用 App 内购买项目、订阅、基础方案、一次性商品和优惠码

公开文本

  • apple_respond_to_review 和 google_reply_to_review 会发布所有人都能看到的回复

无法撤销

  • 所有 apple_delete_* 工具、google_delete_listing、google_delete_all_images、google_delete_iap、google_delete_one_time_product
  • apple_revoke_certificate:使用该证书签名的构建将无法继续安装

建议

  • 为监控和报告运行单独的只读服务:APP_PUBLISH_READ_ONLY=true。它会注册商店读取工具、资源轮询和 Google 编辑验证功能,但不包含 Google 编辑的创建和删除功能:创建新编辑可能会使该用户现有的发布草稿失效。对于编辑范围内的读取操作,请明确提供现有的 editId;此模式下服务不会创建或清理编辑。除空值、0、false、no 或 off 以外的任何值都会启用此模式。需要 outputPath 的报告工具仍会写入该本地文件;除非设置 overwrite=true,否则不会覆盖现有文件。
  • 为每个密钥分配完成任务所需的最低权限,并在使用后撤销临时 Admin 密钥。
  • 在 Google Play 上,在编辑中更改内容,使用 google_validate_edit 检查,然后提交;google_delete_edit 会丢弃该编辑。
  • 保持 MCP 客户端对写入工具的审批功能开启。

**仅针对模拟对象进行过测试:**自定义产品页面和产品页面优化的写入工具遵循 Apple OpenAPI 4.5.1 架构,并已通过测试,但尚未在真实账户上运行。请先在测试应用中试用这些工具。

使用示例

提交资源、自定义页面或产品页面测试

使用 apple_create_review_submission 创建草稿(或使用 apple_list_review_submissions 查找草稿),然后使用 apple_add_review_submission_item 添加图像/视频、自定义产品页面版本或 v2 实验。检查 apple_get_review_submission,然后将完整的审核项目 ID 传递给 apple_submit_review_submission。添加项目不会提交审核;只有最后一步才会开始 App 审核。中断的调用会保留提交 ID,以供检查/重试。审核资格由 Apple 控制:首次发布应用时,提交内容中必须包含一个应用版本;分配给已提交页面/测试/版本的资源会与该项目一起接受审核。现有的 apple_submit_for_review 仍用于处理应用版本发布。

报告下载的每个响应上限为 32 MiB,解压/合并后的文本上限为 64 MiB。如果提供了 MD5,系统会根据 Apple 的 MD5 校验分析细分数据;失败时绝不会返回签名 URL。保存报告时采用独占创建,除非设置 overwrite=true。

构建上传使用受支持的 MD5 传输校验和,并保留可选的本地 expectedSha256 工件完整性检查。这并不意味着 Apple 文档中说明的 SHA-256 校验和算法不受支持。

上传和排列 Apple 截图或预览视频
  1. apple_get_asset_library(appId) 会返回应用的素材库 ID。使用 apple_get_asset_specs 选择当前规格、兼容的放置类型和放置组;不要猜测设备尺寸或组标识符。
  2. apple_upload_asset 接受 assetLibraryId、mediaType(IMAGE 或 VIDEO)、filePath 和 expectedSpecId。它会根据 Apple 的规格验证文件扩展名和大小,上传所有分片、提交,并默认等待处理完成。视频还接受 previewFrameTimeCode。
  3. 如果处理超时或失败,请保留返回的素材 ID,并使用 apple_get_asset / apple_wait_for_asset 检查。不要盲目重复上传。设置 waitForProcessing=false 会更早返回,但放置素材必须处于就绪状态。
  4. apple_create_placement 会使用所选的 placementType 和 placementGroup,将素材关联到 localizationId。默认 targetType 为 appStoreVersionLocalizations。此外,也支持自定产品页面、实验处理方案和 App 内活动。重复创建相同放置会复用现有放置。
  5. 读取 apple_list_placements,然后按所需的组内顺序,将所有放置 ID 传给 apple_reorder_placements。App 内活动不支持此排序接口。
  6. apple_delete_placement 仅移除放置。apple_list_asset_placements 会显示素材的所有使用位置;如果素材仍在使用,apple_delete_asset 会拒绝删除。

Apple 已在 App Store Connect API 4.5.1 中弃用旧版截图接口。这四个现有的截图工具仍为兼容性而保留;Apple 尚未公布其停用日期。新项目请使用 素材库工作流。韩国年龄分级覆盖现在也支持 ALL 和 TWELVE_PLUS。

页眉和搜索视觉素材、自定产品页面、A/B 测试

App Store 产品页面页眉和搜索结果视觉素材属于素材库放置(PRODUCT_PAGE_HEADER_ASSET、APP_STORE_SEARCH_RESULTS_ASSET)。使用 apple_get_asset_specs(placementType=...) 选择规格,使用 apple_upload_asset 上传,然后调用 apple_create_placement。相同的放置也适用于自定产品页面本地化(apple_create_custom_product_page → apple_list_custom_product_page_localizations)和测试处理方案(apple_create_experiment → apple_create_experiment_treatment → apple_create_treatment_localization)。

商店分析

apple_create_analytics_report_request 会请求 Apple 开始生成 App Analytics 报告;首批报告会在 1–2 天后出现。然后依次调用 apple_list_analytics_reports → apple_list_analytics_report_instances → apple_download_analytics_report(传入 outputPath 以保留完整文件)。apple_get_sales_report 会返回每日销量和收益。在 Android 上,google_query_vitals 默认会返回最近 28 天的崩溃率和 ANR 率。

提交 iOS 应用更新
1. apple_list_apps → get the app ID
2. apple_create_version / apple_update_version and localization tools → prepare version 1.1.0, release settings, and metadata
3. apple_upload_build → upload the signed IPA and wait for import
   (or resume with apple_get_build_upload / apple_wait_for_build_upload)
   If an ambiguous commit error retains a buildUploadId, inspect it with apple_get_build_upload; when it is AWAITING_UPLOAD or FAILED, delete it with apple_delete_build_upload before uploading again.
4. apple_set_build_encryption → answer export-compliance encryption for the imported build
   (`true` can still require a manual encryption declaration, supporting documents, and appEncryptionDeclaration linkage in App Store Connect.)
5. apple_assign_build → attach the imported build to the version
6. apple_update_review_detail and apple_get_age_rating → verify review metadata
7. apple_submit_for_review → submit for App Review
8. For an update (not a first version), optionally configure a seven-day phased release before release.
9. After approval, use apple_release_version only for PENDING_DEVELOPER_RELEASE; then monitor or manage any phased release.
发布 Android 应用
1. google_create_edit → start an edit (or google_get_edit to verify a resumed edit)
2. google_list_bundles / google_list_apks → reuse an artifact already in the edit when possible
3. google_upload_bundle / google_upload_apk → upload only when the artifact is missing
4. Listing tools and google_update_data_safety → apply reviewed store changes as needed
5. google_create_release → create the target-track release with the exact versionCodes set
6. google_validate_edit → check for errors
7. google_commit_edit → commit changes for Play processing
8. google_list_release_statuses → inspect review and publishing state after commit

提交编辑内容并不保证会立即公开。Google Play 审核、托管发布和分阶段推出设置仍然适用。

管理 Google Play 应用内商品
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
创建 Google Play 订阅
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. There is no supported subscription archive operation. Keep all base plans
   deactivated when retiring a previously published subscription.

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" }
      ]
    }
  ]
}

价格以 微单位 表示(1 USD = 1,000,000 微单位),并在内部转换为 Play API 的 Money 格式(units + nanos)。regionsVersion 默认为 2022/02;目前,Play API 在提供区域定价时要求使用此值。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。