Appstore Release Mcp

io.github.rabdulsal由 GitHub 账号 rabdulsal 发布v0.1.1更新于 Oct 24, 2026

App Store release pilot — version bump, TestFlight upload, metadata, review submission

概览

AI 生成的概览

一个本地 MCP 服务器,为 iOS 和 macOS 应用执行 App Store 发布流程:版本号更新、TestFlight 上传、元数据和提交审核。

可以做什么
通过 App Store Connect API 检查配置、凭据、工具链和应用记录,并读取应用状态、版本、审核状态和构建处理状态。在本地 Xcode 项目文件中提升构建号或设置营销版本号。以异步任务运行 fastlane lane 上传构建,或通过 xcrun altool 直接上传已签名的 .ipa,然后轮询任务状态和日志尾部。更新描述、关键词、新功能说明和推广文本,并关联构建以创建和提交审核。
适用场景
适合在 Mac 上让助手驱动 App Store Connect 发布:更新版本、把二进制文件送到 Apple、编辑商店元数据并提交审核,无需在多个工具间切换。
运行要求
在 macOS 上本地运行,需要 Xcode 命令行工具(xcrun altool);使用 fastlane 上传路径时还需 fastlane 及构建上传 lane。需要 App Store Connect API 密钥(.p8)以及 APPLE_KEY_ID、APPLE_ISSUER_ID、ASC_BUNDLE_ID,并提供 ASC_KEY_PATH 或 APPLE_KEY_CONTENT 之一;fastlane 上传需要 APPLE_TEAM_ID。通过 npx appstore-release-mcp 安装。
安装前请注意
需要 App Store Connect API 私钥,以文件路径或 APPLE_KEY_CONTENT 中的 base64 内容提供;Apple 的 .p8 只能下载一次。更新版本时会写入本地项目文件,并会把二进制文件上传到 Apple。asc_submit_review 会提交发布审核,被描述为不可回退的节点,应先与人工确认。若 MCP 客户端在构建中途断开,构建任务会终止。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Appstore Release Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

appstore-release-mcp

An MCP server that drives the full App Store release cycle for iOS and macOS apps: version bump → archive + TestFlight upload → metadata → review submission → status.

What makes it different: existing App Store Connect MCP servers wrap the REST API — metadata, TestFlight management, analytics. None of them can do the one step the REST API doesn't support: getting a binary onto Apple's servers. This server is a release pilot, not an API browser, and gives you two ways to do that:

  • Direct ASC REST API (ES256 JWT, zero-dependency signing via node:crypto) for status, builds, metadata, and review submission
  • asc_upload_build — your existing fastlane lane archives, signs, and uploads, run as an async job with log polling (a real archive takes 5–15 minutes — no MCP timeout can hold that)
  • asc_upload_ipa — already have a signed .ipa? (from eas build, a CI pipeline, a manual Xcode archive) Upload it directly via xcrun altool — no fastlane, no local archive step, nothing to configure beyond the ASC API key you already have
  • Local version bumping across project.pbxproj (and project.yml for xcodegen projects)

Requirements

  • macOS with Xcode command line tools (xcrun altool — used by asc_upload_ipa)
  • fastlane with a lane that builds and uploads (e.g. beta) — only needed for asc_upload_build; skip it entirely if you're only using asc_upload_ipa
  • An App Store Connect API key (.p8)

Setup

  1. Generate an ASC API key (once): App Store Connect → Users and Access → Integrations → App Store Connect API → Team Keys → Generate (role: App Manager). Download the .p8 — Apple lets you download it exactly once. Keep it in ~/.appstoreconnect/private_keys/.

  2. Register with Claude Code:

bash
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

For a macOS app whose Fastfile uses platform :mac, add -e ASC_PLATFORM=MAC_OS -e ASC_FASTLANE_PLATFORM=mac.

  1. Verify: ask the agent to run asc_doctor. All checks should be ✓.

Tools

ToolWhat it does
asc_doctorVerify config, creds, fastlane/xcodebuild/altool, app record — run first
asc_app_statusVersions + review states + recent builds in one call
asc_list_buildsBuild processing states (wait for VALID after upload)
asc_bump_versionBump build number / set marketing version in local project files
asc_upload_buildRun your fastlane upload lane as an async job — returns job ID immediately
asc_upload_ipaUpload an already-built .ipa via xcrun altool — async job, no fastlane needed
asc_job_statusPoll a job started by asc_upload_build or asc_upload_ipa; status + log tail
asc_update_metadataDescription / keywords / what's-new / promo text via REST
asc_submit_reviewAttach build + create review submission + submit

Release walkthrough

Building locally with fastlane:

asc_doctor                                   # toolchain healthy?asc_bump_version {marketing_version: "1.1.0"}asc_upload_build                             # → job idasc_job_status {job_id}                      # poll until succeededasc_list_builds                              # wait for processingState VALIDasc_update_metadata {whats_new: "...", create_version: "1.1.0"}asc_submit_review {build_id}                 # point of no returnasc_app_status                               # WAITING_FOR_REVIEW

Already have a signed .ipa (EAS Build, CI, manual archive) — no fastlane needed:

asc_doctorasc_upload_ipa {ipa_path: "./build/app.ipa"} # → job idasc_job_status {job_id}                      # poll until succeededasc_list_builds                              # wait for processingState VALIDasc_update_metadata {whats_new: "...", create_version: "1.1.0"}asc_submit_review {build_id}asc_app_status

Environment variables

Credential names deliberately match fastlane's app_store_connect_api_key, so one credential set serves both.

VarRequiredNotes
APPLE_KEY_IDyesASC API key ID
APPLE_ISSUER_IDyesASC issuer ID
APPLE_KEY_CONTENT / ASC_KEY_PATHone ofbase64-encoded .p8 / path to .p8 file
APPLE_TEAM_IDfor asc_upload_buildApple Developer team ID (not needed for asc_upload_ipa)
ASC_BUNDLE_IDyesyour app's bundle identifier
ASC_PROJECT_DIRrecommendedXcode project root where fastlane runs (default: cwd)
ASC_PLATFORMnoIOS (default), MAC_OS, TV_OS, VISION_OS
ASC_FASTLANE_LANEnoupload lane name (default: beta)
ASC_FASTLANE_PLATFORMnofastlane platform prefix, e.g. mac or ios
ASC_UPLOAD_CMDnofull override, e.g. bundle exec fastlane ios beta

Notes

  • Build jobs are children of the server process; if the MCP client disconnects mid-build the job dies. Logs persist in ~/.appstore-mcp/jobs/ either way.
  • asc_submit_review is the point of no return for a release — the tool description tells agents to confirm with a human first.

License

MIT

来源:README.md,提交 6da183e

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分