mcpField
A
appstore-release-mcp

appstore-release-mcp

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

关于 appstore-release-mcp

appstore-release-mcp 是通过 App Store Connect 管理 iOS 和 macOS 应用发布流程的 MCP 服务。它结合 API 发布管理、fastlane 异步任务和签名 IPA 直接上传。

主要功能

  1. 01检查 App Store Connect 配置
  2. 02更新本地项目版本
  3. 03通过 fastlane 异步任务上传构建
  4. 04使用 altool 上传签名 IPA
  5. 05更新商店元数据
  6. 06提交构建审核并查询状态

适用场景

  1. 01将 fastlane 构建的版本上传到 TestFlight
  2. 02无需 fastlane 上传已有签名 IPA
  3. 03审核前更新发布元数据
  4. 04跟踪构建处理和审核状态

MCP 相关

该 MCP 服务提供 App Store Connect 状态、构建、版本更新、上传、元数据和审核提交工具。构建与 IPA 上传以异步任务运行,并支持查询状态和日志。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"rabdulsal-appstore-release": {
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_KEY_ID": "<APPLE_KEY_ID>",
"APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
"ASC_KEY_PATH": "<ASC_KEY_PATH>",
"APPLE_KEY_CONTENT": "<APPLE_KEY_CONTENT>",
"APPLE_TEAM_ID": "<APPLE_TEAM_ID>",
"ASC_BUNDLE_ID": "<ASC_BUNDLE_ID>",
"ASC_PROJECT_DIR": "<ASC_PROJECT_DIR>",
"ASC_PLATFORM": "<ASC_PLATFORM>",
"ASC_FASTLANE_LANE": "<ASC_FASTLANE_LANE>",
"ASC_FASTLANE_PLATFORM": "<ASC_FASTLANE_PLATFORM>",
"ASC_UPLOAD_CMD": "<ASC_UPLOAD_CMD>"
}
}
}
}
启动命令npx -y appstore-release-mcp
需要配置的环境变量
APPLE_KEY_ID密钥App Store Connect API key ID
APPLE_ISSUER_IDApp Store Connect API issuer ID
ASC_KEY_PATH密钥Path to the .p8 App Store Connect API private key (alternative: APPLE_KEY_CONTENT with base64-encoded key)
APPLE_KEY_CONTENT密钥Base64-encoded .p8 private key content (alternative to ASC_KEY_PATH)
APPLE_TEAM_IDApple Developer team ID (required for builds/uploads)
ASC_BUNDLE_IDBundle identifier of the app to manage, e.g. com.example.myapp
ASC_PROJECT_DIRXcode project root where fastlane runs (default: current working directory)
ASC_PLATFORMApp Store platform: IOS (default), MAC_OS, TV_OS, or VISION_OS
ASC_FASTLANE_LANEFastlane lane used for archive + upload (default: beta)
ASC_FASTLANE_PLATFORMFastlane platform prefix, e.g. mac or ios
ASC_UPLOAD_CMDFull override of the upload command, e.g. 'bundle exec fastlane ios beta'

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

安装包
npmappstore-release-mcp0.1.1

工具

8

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

此工具无需参数。

详细介绍

appstore-release-mcp

一个 MCP 服务,可驱动 iOS 和 macOS 应用的完整 App Store 发布周期:提升版本号 → 归档并上传到 TestFlight → 元数据 → 提交审核 → 查看状态。

**它的不同之处:**现有的 App Store Connect MCP 服务都只是封装 REST API——处理元数据、TestFlight 管理和分析。它们都无法完成 REST API 不支持的那一步:将二进制文件上传到 Apple 的服务器。此服务是一个发布助手,而非 API 浏览器,并提供两种上传方式:

  • 直接调用 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)

要求

  • 安装了 Xcode 命令行工具的 macOS(asc_upload_ipa 使用 xcrun altool)
  • fastlane,并包含用于构建和上传的 lane(例如 beta)——仅 asc_upload_build 需要;如果只使用 asc_upload_ipa,可完全跳过
  • App Store Connect API 密钥(.p8)

设置

  1. 生成 ASC API 密钥(仅需一次):前往 App Store Connect → Users and Access → Integrations → App Store Connect API → Team Keys → Generate(角色:App Manager)。下载 .p8 文件——Apple 只允许下载一次。将其保存在 ~/.appstoreconnect/private_keys/ 中。

  2. 在 Claude Code 中注册:

claude mcp add appstore \
  -e APPLE_KEY_ID=XXXXXXXXXX \
  -e APPLE_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  -e ASC_KEY_PATH=$HOME/.appstoreconnect/private_keys/AuthKey_XXXXXXXXXX.p8 \
  -e APPLE_TEAM_ID=XXXXXXXXXX \
  -e ASC_BUNDLE_ID=com.example.myapp \
  -e ASC_PROJECT_DIR=/path/to/your/xcode/project \
  -- npx appstore-release-mcp

对于 Fastfile 使用 platform :mac 的 macOS 应用,请添加 -e ASC_PLATFORM=MAC_OS -e ASC_FASTLANE_PLATFORM=mac。

  1. **验证:**让 Agent 运行 asc_doctor。所有检查都应显示 ✓。

工具

工具功能
asc_doctor验证配置、凭据、fastlane/xcodebuild/altool 和应用记录——首先运行
asc_app_status一次调用即可查看版本、审核状态和近期构建版本
asc_list_builds查看构建处理状态(上传后等待状态变为 VALID)
asc_bump_version提升构建号/设置本地项目文件中的营销版本号
asc_upload_build将你的 fastlane 上传 lane 作为异步作业运行——立即返回作业 ID
asc_upload_ipa通过 xcrun altool 上传已构建的 .ipa——异步作业,无需 fastlane
asc_job_status轮询由 asc_upload_build 或 asc_upload_ipa 启动的作业;查看状态和日志末尾
asc_update_metadata通过 REST 更新描述、关键词、更新内容和推广文本
asc_submit_review附加构建版本、创建审核提交并提交

发布演练

使用 fastlane 在本地构建:

asc_doctor                                   # toolchain healthy?
asc_bump_version {marketing_version: "1.1.0"}
asc_upload_build                             # → job id
asc_job_status {job_id}                      # poll until succeeded
asc_list_builds                              # wait for processingState VALID
asc_update_metadata {whats_new: "...", create_version: "1.1.0"}
asc_submit_review {build_id}                 # point of no return
asc_app_status                               # WAITING_FOR_REVIEW

已经有签名的 .ipa(EAS Build、CI、手动归档)——无需 fastlane:

asc_doctor
asc_upload_ipa {ipa_path: "./build/app.ipa"} # → job id
asc_job_status {job_id}                      # poll until succeeded
asc_list_builds                              # wait for processingState VALID
asc_update_metadata {whats_new: "...", create_version: "1.1.0"}
asc_submit_review {build_id}
asc_app_status

环境变量

凭据名称有意与 fastlane 的 app_store_connect_api_key 保持一致,因此一套凭据即可同时用于两者。

变量必需说明
APPLE_KEY_ID是ASC API 密钥 ID
APPLE_ISSUER_ID是ASC 颁发者 ID
APPLE_KEY_CONTENT / ASC_KEY_PATH二选一base64 编码的 .p8 文件/.p8 文件路径
APPLE_TEAM_IDasc_upload_build 必需Apple Developer 团队 ID(asc_upload_ipa 不需要)
ASC_BUNDLE_ID是应用的 bundle 标识符
ASC_PROJECT_DIR建议设置fastlane 运行所在的 Xcode 项目根目录(默认:当前工作目录)
ASC_PLATFORM否IOS(默认)、MAC_OS、TV_OS、VISION_OS
ASC_FASTLANE_LANE否上传 lane 名称(默认:beta)
ASC_FASTLANE_PLATFORM否fastlane 平台前缀,例如 mac 或 ios
ASC_UPLOAD_CMD否完整覆盖命令,例如 bundle exec fastlane ios beta

注意事项

  • 构建任务是服务进程的子进程;如果 MCP 客户端在构建过程中断开连接,任务就会终止。无论如何,日志都会保留在 ~/.appstore-mcp/jobs/ 中。
  • asc_submit_review 是发布流程中不可逆的步骤——工具说明会要求 Agent 先与人类确认。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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