appstore-release-mcp 是一个 MCP(Model Context Protocol)服务器,用于驱动 iOS 和 macOS 应用的完整 App Store 发布周期。其流程覆盖:版本号提升 → 归档与 TestFlight 上传 → 元数据 → 提交审核 → 状态查询。
用途与定位 该工具被描述为“发布领航员(release pilot)”,而非 API 浏览器。现有的 App Store Connect MCP 服务器通常封装 REST API,处理元数据、TestFlight 管理和分析等,但都无法完成 REST API 不支持的一步:将二进制文件上传到 Apple 服务器。appstore-release-mcp 正是为完成这一步而设计。
主要能力
- 直接调用 ASC REST API(使用 ES256 JWT,通过 node:crypto 实现零依赖签名),用于状态查询、构建管理、元数据和审核提交。
- asc_upload_build:运行你现有的 fastlane lane,执行归档、签名和上传,作为异步任务运行并轮询日志。由于真实归档需要 5–15 分钟,异步设计可避免 MCP 超时。
- asc_upload_ipa:如果你已有签名的 .ipa 文件(来自 eas build、CI 流水线或手动 Xcode 归档),可直接通过 xcrun altool 上传,无需 fastlane,也无需本地归档步骤,只需配置已有的 ASC API 密钥。
- 本地版本号提升:支持 project.pbxproj 以及 xcodegen 项目的 project.yml。
使用方式 环境要求:
- macOS 并安装 Xcode 命令行工具(xcrun altool,用于 asc_upload_ipa)。
- fastlane 并配置一个用于构建和上传的 lane(例如 beta)——仅 asc_upload_build 需要;如果只用 asc_upload_ipa 则可完全跳过。
- 一个 App Store Connect API 密钥(.p8 文件)。
生成 ASC API 密钥(一次性):在 App Store Connect → Users and Access → Integrations → App Store Connect API → Team Keys → Generate(角色:App Manager)。下载 .p8 文件——Apple 仅允许下载一次。将其保存在 ~/.appstoreconnect/private_keys/ 目录下。
注册到 Claude Code: (原文此处给出注册命令,但未在提供文本中展示具体命令内容,暂未提供。)
对于 Fastfile 使用 platform :mac 的 macOS 应用,需添加 -e ASC_PLATFORM=MAC_OS -e ASC_FASTLANE_PLATFORM=mac。
验证:让 agent 运行 asc_doctor,所有检查项应显示 ✓。
发布流程示例 使用 fastlane 在本地构建:(原文此处给出示例,但未在提供文本中展示具体命令内容,暂未提供。) 已有签名的 .ipa(EAS Build、CI、手动归档)——无需 fastlane:(原文此处给出示例,但未在提供文本中展示具体命令内容,暂未提供。)
环境变量 凭据名称有意与 fastlane 的 app_store_connect_api_key 保持一致,因此一套凭据可同时服务两者。
适用场景 适用于需要自动化 iOS/macOS 应用 App Store 发布流程的开发者,尤其是希望将版本提升、构建上传、元数据更新和审核提交整合到 AI 助手或自动化工作流中的场景。
限制与注意事项
- 构建任务是服务器进程的子进程;如果 MCP 客户端在构建中途断开,任务会终止。日志会持久化在 ~/.appstore-mcp/jobs/ 中。
- asc_submit_review 是发布的不可逆节点——工具描述会提示 agent 先与人类确认。
- 需要 macOS 环境及 Xcode 命令行工具。
- 使用 asc_upload_build 需要 fastlane 及相应 lane;使用 asc_upload_ipa 则不需要。
- 需要 App Store Connect API 密钥(.p8),且 Apple 仅允许下载一次。