mcpField
A
axiom-asc-mcp

axiom-asc-mcp

github.com/charleswiltgen开发1.2k98 次安装今天更新
代码仓库

关于 axiom-asc-mcp

面向 Claude Code 的技能,介绍如何通过 asc-mcp 管理 App Store Connect 发布、TestFlight、评价、指标和多个团队,并提供工作流与工具筛选说明。

主要功能

  1. 01提交应用版本和构建
  2. 02分发 TestFlight 构建
  3. 03查看评价并撰写回复
  4. 04构建诊断与指标
  5. 05切换多个公司账号
  6. 06按 Worker 选择工具

适用场景

  1. 01提交应用版本供审核
  2. 02将构建分发到 TestFlight 群组
  3. 03查看评分并回复评价
  4. 04切换 App Store Connect 团队

MCP 相关

说明如何在 Claude Code 中配置 asc-mcp 作为 MCP 服务,使用 App Store Connect 凭据进行认证,并选择要加载的 Worker 和工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-asc-mcp

安装后在 Claude Code 中输入/axiom-asc-mcp确认已加载。

详细介绍

App Store Connect MCP 集成

核心原则:配置 asc-mcp 后,无需离开 Claude Code 即可管理整个 App Store Connect 工作流——以编程方式提交构建版本、分发到 TestFlight、回复评价并监控指标。

设置

安装
brew install mint
mint install zelentsov-dev/[email protected]
创建 API 密钥
  1. 打开 App Store Connect → Users and Access → Integrations → API
  2. 使用 Admin 或 App Manager 角色生成密钥
  3. 下载 .p8 文件(仅可下载一次,请妥善保存)
  4. 记下 Key ID 和 Issuer ID
添加到 Claude Code
claude mcp add asc-mcp \
  -e ASC_KEY_ID=YOUR_KEY_ID \
  -e ASC_ISSUER_ID=YOUR_ISSUER_ID \
  -e ASC_PRIVATE_KEY_PATH=/path/to/AuthKey.p8 \
  -- ~/.mint/bin/asc-mcp
验证

让 Claude 调用 company_current。如果返回你的团队名称,说明已连接。


Worker 筛选

asc-mcp 有 25 个 worker(约 208 个工具)。加载全部 worker 会浪费上下文。使用 --workers 仅加载所需内容。

预设
预设Workers工具用例
TestFlightapps,builds,beta_groups,beta_testers约 34Beta 分发
Releaseapps,builds,versions,reviews约 40App Store 提交
Monetizationapps,iap,subscriptions,offer_codes,pricing约 55IAP 和订阅
Full(默认,所有 worker)约 208全部功能

使用预设时,注册服务时添加 --workers:

claude mcp add asc-mcp \
  -e ASC_KEY_ID=... \
  -e ASC_ISSUER_ID=... \
  -e ASC_PRIVATE_KEY_PATH=... \
  -- ~/.mint/bin/asc-mcp --workers apps,builds,versions,reviews

注意:无论 --workers 设置如何,company 和 auth worker 始终会加载。启用 builds 时,会自动包含 build_processing 和 build_beta。

Worker 选择决策树
digraph workers {
    "What are you doing?" [shape=diamond];
    "TestFlight preset" [shape=box, label="--workers apps,builds,\nbeta_groups,beta_testers"];
    "Release preset" [shape=box, label="--workers apps,builds,\nversions,reviews"];
    "Monetization preset" [shape=box, label="--workers apps,iap,\nsubscriptions,offer_codes,pricing"];
    "Full (no flag)" [shape=box, label="No --workers flag\n(all 208 tools)"];

    "What are you doing?" -> "TestFlight preset" [label="distributing beta builds"];
    "What are you doing?" -> "Release preset" [label="submitting to App Store"];
    "What are you doing?" -> "Monetization preset" [label="managing IAP/subscriptions"];
    "What are you doing?" -> "Full (no flag)" [label="multiple tasks or unsure"];
}

工作流:发布流水线

向 App Store 提交新版本。

1. apps_search(query: "MyApp")           → get app ID
2. builds_list(appId, limit: 5)          → find latest processed build
3. app_versions_create(appId, platform: "IOS", versionString: "2.1.0")
4. app_versions_attach_build(versionId, buildId)
5. app_versions_set_review_details(versionId, { contactEmail, notes, ... })
6. app_versions_submit_for_review(versionId)
7. (After approval) app_versions_create_phased_release(versionId)

第 3 步之前:版本字符串不得已存在。使用 app_versions_list 检查。

第 4 步之前:构建版本必须处于 VALID 处理状态。使用 builds_get_processing_state 检查。

第 6 步之前:版本必须处于 PREPARE_FOR_SUBMISSION 状态。附加构建版本并设置审核详情是前置条件。


工作流:TestFlight 分发

向 Beta 测试人员分发构建版本。

1. apps_search(query: "MyApp")           → get app ID
2. builds_list(appId, limit: 5)          → find latest build
3. builds_set_beta_localization(buildId, locale: "en-US", whatsNew: "Bug fixes")
4. beta_groups_list(appId)               → find or create group
   OR beta_groups_create(appId, name: "Internal Testers", isInternal: true)
5. beta_groups_add_builds(groupId, [buildId])
6. builds_send_beta_notification(buildId) → notify testers (optional)

提示:内部测试人员(最多 100 人)可立即获得构建版本。外部测试人员(最多 10,000 人)需要对每个版本的首个构建版本进行 Beta App Review。


工作流:评价管理

监控并回复 App Store 评价。

1. apps_search(query: "MyApp")           → get app ID
2. reviews_list(appId, sort: "-createdDate", limit: 20)
   OR reviews_list(appId, filterRating: "1,2")  → negative reviews only
3. reviews_stats(appId)                  → rating distribution summary
4. reviews_create_response(reviewId, responseBody: "Thank you for...")

回复指南:

  • 在 24-48 小时内回复负面评价
  • 保持专业,并提供具体帮助
  • 更新回复会替换之前的回复(用户会看到“Developer Response”)

工作流:反馈分类

将 TestFlight 反馈与构建诊断信息关联起来。

1. builds_list(appId, limit: 10)         → recent builds
2. builds_get_beta_testers(buildId)      → who tested this build
3. metrics_build_diagnostics(buildId)    → crash signatures for this build
4. metrics_get_diagnostic_logs(signatureId) → individual crash logs

限制:App Store Connect API 无法获取 TestFlight 文本反馈和屏幕截图。请使用 Xcode Organizer 或 ASC 网页控制面板查看反馈内容。


工作流:多公司

在 App Store Connect 团队之间切换。

1. company_list                          → see configured accounts
2. company_switch(companyId: "client-a") → switch active account
3. (All subsequent calls use client-a's credentials)
多公司设置

添加到 ~/.config/asc-mcp/companies.json:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "KEY_ID_1",
      "issuer_id": "ISSUER_1",
      "key_path": "/Users/you/.keys/AuthKey1.p8"
    },
    {
      "id": "client-a",
      "name": "Client A",
      "key_id": "KEY_ID_2",
      "issuer_id": "ISSUER_2",
      "key_path": "/Users/you/.keys/AuthKey2.p8"
    }
  ]
}

也可以使用编号环境变量:ASC_COMPANY_1_NAME、ASC_COMPANY_1_KEY_ID 等。


关键工具速查

App 和构建版本
工具参数返回内容
apps_searchqueryApp ID、名称、bundleId、平台
apps_listlimit账户中的所有 App
builds_listappId、limit、sort构建编号、版本、处理状态
builds_find_by_numberappId、buildNumber特定构建版本的详情
builds_get_processing_statebuildIdPROCESSING、VALID、INVALID 等
builds_check_readinessbuildId构建版本是否已准备好进行分发
版本与提交
工具参数返回值
app_versions_createappId, platform, versionString状态为 PREPARE_FOR_SUBMISSION 的新版本
app_versions_attach_buildversionId, buildId已关联的构建版本
app_versions_set_review_detailsversionId, contactEmail, notes 等审核详情
app_versions_submit_for_reviewversionId已提交审核
app_versions_cancel_reviewversionId已取消审核
app_versions_releaseversionId手动发布
app_versions_create_phased_releaseversionId为期 7 天的分阶段发布
TestFlight
工具参数返回值
beta_groups_createappId, name, isInternal新群组
beta_groups_add_testersgroupId, testerIds已更新的群组
beta_groups_add_buildsgroupId, buildIds已分发的构建版本
builds_set_beta_localizationbuildId, locale, whatsNew“测试内容”文本
builds_send_beta_notificationbuildId已通知测试人员
评价与指标
工具参数返回值
reviews_listappId, sort, filterRating, limit评价条目
reviews_statsappId评分分布
reviews_create_responsereviewId, responseBody开发者回复
metrics_app_perfappId应用级性能指标
metrics_build_diagnosticsbuildId每个构建版本的崩溃特征

API 限制

限制详情
元数据中不得使用表情符号版本“更新内容”、描述、关键词——使用文字,不要使用表情符号
版本状态只有处于 PREPARE_FOR_SUBMISSION 状态的版本可以编辑。提交后,如需更改,请创建新版本。
JWT 有效期令牌有效期为 20 分钟,asc-mcp 会自动续期
速率限制Apple 会对每个账户实施限制。遇到 429 错误时,asc-mcp 会采用指数退避方式重试。
区域设置格式标准代码:en-US、ja、de-DE、zh-Hans、ru
构建处理新上传的构建版本需要 15-30 分钟处理。关联前请轮询 builds_get_processing_state。
分阶段发布仅在审核通过后可用。可使用 app_versions_update_phased_release 暂停或恢复。

注意事项

注意事项详情
找不到构建版本构建版本可能仍在处理中。检查 builds_get_processing_state——状态必须为 VALID。
“版本已存在”不能创建重复的版本字符串。请先使用 app_versions_list 检查。
关联失败构建版本必须已处理完成,并且版本必须处于 PREPARE_FOR_SUBMISSION 状态。
审核详情被拒绝联系信息字段有格式要求。电子邮件地址必须有效,电话号码必须包含国家/地区代码。
应用不匹配apps_search 使用模糊搜索。请确认返回的 bundleId 与目标应用相符。
多公司账户混淆更改前务必先调用 company_current,确认当前启用的账户。
Beta App Review每个版本的首个外部 TestFlight 构建版本需要审核。同一版本后续的构建版本会自动批准。
缺少分析数据analytics_* 工具需要在公司配置中设置 vendor_number。未设置时,销售和财务报告会静默失败。

反合理化

想法实际情况
“我直接用 ASC 网页控制面板就好”对于重复性任务,MCP 工具更快——回复 20 条评论、分发到 5 个群组,或在多个应用中创建版本。
“我不需要筛选工作器”208 个工具会占用约 30K 个上下文 token。筛选出你需要的工具。
“我不提供审核详情也能提交”提交会失败。必须先调用 app_versions_set_review_details,再调用 app_versions_submit_for_review。
“我跳过 company_current 就行——我只有一个账户”多公司配置会在会话之间保留。务必确认。
“通过 API 进行反馈分类也一样”ASC API 中没有文本反馈和截图。要查看反馈内容,请使用 Organizer;要诊断崩溃,请使用 MCP。

asc-mcp 不可用时

如果未配置 asc-mcp,请改用手动工作流:

  • 崩溃分析:使用 Xcode Organizer(参见 axiom-testflight-triage)或 App Store Connect 网页控制面板(参见 axiom-app-store-connect-ref)
  • TestFlight 分发:使用 Xcode → Product → Archive → Distribute,或 xcodebuild + altool
  • 审核管理:使用 App Store Connect 网页控制面板
  • 提交:使用 Xcode → Product → Archive → Distribute to App Store

资源

技能:axiom-app-store-submission、axiom-app-store-ref、axiom-app-store-connect-ref、axiom-testflight-triage

Agent:crash-analyzer、security-privacy-scanner、iap-auditor

评论

支持 Markdown