Skip to main content
Glama

概述

asc-mcp 是一个基于 Swift 的 MCP 服务器,将本地 macOS MCP 客户端连接到 App Store Connect API。它公开了 502 个工具,涵盖 33 个 App Store 工具域 + 2 个核心域,使您能够通过自然语言自动化 iOS 和 macOS 发布工作流。

配置示例已包含 Codex、Claude Code、Claude Desktop、Gemini CLI、带 GitHub Copilot 的 VS Code、Continue、Cursor 和 Devin Desktop(原 Windsurf)。客户端配置已有文档说明;发布 CI 在 macOS 上验证安装、MCP 初始化和工具发现,而不是启动每个第三方客户端。

刚接触本项目?请遵循快速开始。其余章节是面向高级配置、工具选择和贡献者的参考材料。

主要功能

  • 发布与元数据 — 版本、本地化、构建版本、审核提交、分阶段发布和 Xcode Cloud

  • TestFlight 与上传 — 测试组、测试员、反馈、招募、构建交付、处理和出口合规

  • 变现 — 应用内购买、订阅、定价、可用性、优惠代码和促销优惠

  • 营销 — 截图、预览、自定义产品页、产品页优化和推广购买

  • 账户与配置 — 多个 App Store Connect 团队、用户、Bundle ID、设备、证书、描述文件和功能

  • 反馈与运营 — 客户评论、Webhook、无障碍声明、分析、指标和诊断

  • 更安全的自动化 — 只读模式、确认保护、严格分页和变更恢复指南

  • 可审计的 API 覆盖 — 版本化的 Apple OpenAPI 契约和发布时漂移检查

Related MCP server: App Store Connect MCP

平台支持

asc-mcp 是一个本地 stdio 服务器:MCP 客户端在同一台计算机上启动它。客户端在 Linux 或 Windows 上可用并不意味着这个 Swift 服务器是跨平台的。

环境

状态

说明

macOS 15.6+ 搭配 Xcode 26.x

推荐

发布 CI 专门使用 GitHub 的 macOS 15 运行器搭配 Xcode 26.2

macOS 14.0-15.5

仅声明为部署目标

构建和运行未经验证;可能需要单独安装 Swift 6.2+ 工具链

Linux

暂不支持

移植工作和 Linux CI 尚未完成

Windows

不支持

当前的源代码依赖和 Swift MCP stdio 传输不兼容 Windows

请参阅 Apple 的 Xcode 系统要求 了解每个 Xcode 版本支持的 macOS 版本。

Web 和云会话不会自动继承本地 MCP 配置。请在兼容的 Mac 上本地运行 MCP 客户端,或使用明确保持在该 Mac 上执行的客户端功能。

快速开始

推荐的设置将 App Store Connect 凭据一次性存储在私有本地文件中。MCP 客户端随后只需 asc-mcp 可执行文件的路径。

1. 安装 asc-mcp

brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6
~/.mint/bin/asc-mcp --version

2. 创建 App Store Connect API 密钥

  1. 打开 App Store Connect → 用户和访问 → 集成 → 团队密钥。

  2. 生成一个覆盖您工作流所需的最小权限角色的密钥。仅当相应操作需要时,才需要 App Manager 或 Admin 角色。

  3. 下载 .p8 文件。Apple 仅允许下载一次。

  4. 复制密钥 ID 和签发者 ID。

3. 在本地保存凭据

创建私有配置目录,然后将下载的 .p8 文件移动到 ~/.keys/。在第二条命令中替换源路径和文件名:

mkdir -p ~/.config/asc-mcp ~/.keys
chmod 700 ~/.config/asc-mcp ~/.keys
mv /path/to/downloaded/AuthKey_XXXXXXXXXX.p8 ~/.keys/

创建 ~/.config/asc-mcp/companies.json:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "XXXXXXXXXX",
      "issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8"
    }
  ]
}

将 /Users/you 替换为您的实际主目录路径。将两个文件都保留在仓库之外并限制访问权限:

chmod 600 ~/.config/asc-mcp/companies.json
chmod 600 /Users/you/.keys/AuthKey_XXXXXXXXXX.p8

[!CAUTION] 切勿将 companies.json、.p8 密钥或原始凭据提交到 Git。如果 App Store Connect 密钥被泄露,请立即撤销。

4. 连接您的 MCP 客户端

选择一个客户端。您无需配置每个客户端。

Codex

codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list

Claude Code

claude mcp add \
  --transport stdio \
  --scope user \
  asc-mcp \
  -- ~/.mint/bin/asc-mcp

claude mcp get asc-mcp
claude mcp list

对于 Claude Desktop、Gemini CLI、VS Code、Continue、Cursor 和 Devin Desktop,请使用 MCP 客户端设置 中可直接复制的示例。

5. 试用

更改配置后重启 GUI 客户端,打开其 MCP 工具列表,然后询问:

List my App Store Connect apps.

如果连接或请求失败,请参阅故障排除。

安装

在 macOS 上使用 Mint(推荐)

Mint 从源码安装固定版本,并将可执行文件保留在 ~/.mint/bin/asc-mcp。

brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6

更新或重新安装固定版本:

mint install zelentsov-dev/asc-mcp@v4.1.6 --force

稳定版用户应安装版本标签。安装 main 或 develop 仅适用于维护者和预发布测试。

从源码构建

在兼容的 macOS 版本上使用 Xcode 26.x,或安装独立的 Swift 6.2+ 工具链。

git clone https://github.com/zelentsov-dev/asc-mcp.git
cd asc-mcp
swift build -c release

可执行文件为 .build/release/asc-mcp。如果您将其复制到其他位置,请同时复制相邻的资源包:

cp .build/release/asc-mcp /usr/local/bin/asc-mcp
cp -R .build/release/asc-mcp_asc-mcp.bundle /usr/local/bin/

该资源包包含发布检查所使用的版本化 OpenAPI 操作契约。

从旧版本升级

版本 4.1 保留了所有现有的工具名称、必需输入、投影键和数组形状。Xcode Cloud 读取工具现在拒绝未记录的参数,并更严格地验证返回的链接、分页、关系谱系和包含的资源。新的 *Present 投影字段区分 Apple 省略的数组与存在的空数组,而旧版数组字段仍保持为数组。新公开的嵌套 *_limit 输入必须与其匹配的 include 值配对使用,续传调用必须原样重复原始请求范围。新的产品和工作流删除工具默认提供安全预览,并要求在永久删除前提供最新的预览回执和精确的库存确认。

版本 4 保留了所有现有的工具名称和工作器过滤器,但破坏性的营销和评论附件调用现在要求在任何 Apple 请求之前提供精确的确认 ID:

现有工具

新增必需确认

custom_pages_delete

confirm_page_id

ppo_delete_experiment

confirm_experiment_id

promoted_delete

confirm_promoted_purchase_id

review_attachments_delete

confirm_attachment_id

screenshots_delete_set, screenshots_delete_preview_set

confirm_set_id

screenshots_delete

confirm_screenshot_id

screenshots_delete_preview

confirm_preview_id

当提供 state 时,ppo_update_experiment 也需要 confirm_experiment_id。仅更新名称或流量比例的调用保持不变。在 unknown 或 committed_unverified 变更结果之后,请先使用返回的检查操作,然后再重试。

从现有的营销和评论附件调用中移除未记录的顶层参数。版本 4 在任何网络请求之前拒绝未知键,而不是静默忽略它们。

配置

凭据

快速开始中显示的默认 ~/.config/asc-mcp/companies.json 文件是推荐方案,因为它对终端和 GUI 客户端都一致有效,无需在每个客户端配置中重复密钥。

对于多个公司,添加更多条目:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "XXXXXXXXXX",
      "issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8",
      "vendor_number": "YOUR_VENDOR_NUMBER"
    },
    {
      "id": "client-company",
      "name": "Client Company",
      "key_id": "YYYYYYYYYY",
      "issuer_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
      "key_path": "/Users/you/.keys/AuthKey_YYYYYYYYYY.p8"
    }
  ]
}

vendor_number 仅对 analytics_sales_report、analytics_financial_report 和 analytics_app_summary 是必需的。可在 App Store Connect → 销售和趋势 → 报告 中找到。

环境变量对自动化很有用,但从 Finder 启动的 GUI 应用可能不会继承您的 shell 环境。上述基于文件的设置对大多数用户更简单。

单一公司:

export ASC_KEY_ID=XXXXXXXXXX
export ASC_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_PRIVATE_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8
export ASC_COMPANY_NAME="My Company"                 # optional
export ASC_VENDOR_NUMBER=YOUR_VENDOR_NUMBER          # optional, analytics only

多家公司:

export ASC_COMPANY_1_NAME="My Company"
export ASC_COMPANY_1_KEY_ID=XXXXXXXXXX
export ASC_COMPANY_1_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_COMPANY_1_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8

export ASC_COMPANY_2_NAME="Client Company"
export ASC_COMPANY_2_KEY_ID=YYYYYYYYYY
export ASC_COMPANY_2_ISSUER_ID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
export ASC_COMPANY_2_KEY_PATH=/Users/you/.keys/AuthKey_YYYYYYYYYY.p8

编号从 1 开始。每个连续的条目必须同时提供 ASC_COMPANY_{N}_KEY_ID 和 ASC_COMPANY_{N}_ISSUER_ID;扫描在第一个缺失的配对处停止。

服务器按以下顺序解析凭据:

  1. --companies /absolute/path/to/companies.json

  2. 用于编程式嵌入的构造函数参数

  3. ASC_MCP_COMPANIES=/absolute/path/to/companies.json

  4. 默认配置文件位置,包括 ~/.config/asc-mcp/companies.json

  5. ASC_COMPANY_1_KEY_ID 和其他编号的多公司变量

  6. ASC_KEY_ID、ASC_ISSUER_ID 以及用于单一公司的私钥变量

MCP 客户端设置

以下所有示例均假设使用 Mint 安装和推荐的 companies.json 凭据文件。将 /Users/you 替换为您的实际主目录路径。GUI 客户端通常需要绝对可执行文件路径。

客户端

配置范围

备注

Codex

通过 CLI 的用户配置;可选的受信任项目配置

同一台 Mac 上的本地 Codex 客户端共享

Claude Code

user、local 或 project 范围

对于个人 App Store 工具,user 最简单

Claude Desktop

用户级桌面配置

编辑后重启

Gemini CLI

用户设置

本地 stdio 服务器

VS Code with GitHub Copilot

用户配置文件或 .vscode/mcp.json

首次启动时确认服务器信任

Continue

工作区 .continue/mcpServers/

与 VS Code 原生 MCP 配置分开

Cursor

用户或项目 mcp.json

使用绝对命令路径

Devin Desktop(原名 Windsurf)

用户 MCP 配置

保持不超过 100 个活动工具

推荐的 CLI 注册:

codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list
codex mcp get asc-mcp --json

同一台 Mac 上的 Codex 客户端共享相同的本地 MCP 配置。用户配置位于 $CODEX_HOME/config.toml,默认为 ~/.codex/config.toml:

[mcp_servers.asc-mcp]
command = "/Users/you/.mint/bin/asc-mcp"
startup_timeout_sec = 20
tool_timeout_sec = 60
enabled = true

对于特定项目的设置,请将相同的表放在 .codex/config.toml 中;Codex 仅在项目受信任后才加载项目配置。如果你使用 shell 凭据而不是 companies.json,请显式转发它们:

env_vars = ["ASC_KEY_ID", "ASC_ISSUER_ID", "ASC_PRIVATE_KEY_PATH"]

更改配置后重启 GUI 客户端,然后使用其 MCP 视图或 /mcp 确认 asc-mcp 已激活。请参阅官方 Codex MCP 文档。

为所有本地项目注册一次:

claude mcp add \
  --transport stdio \
  --scope user \
  asc-mcp \
  -- ~/.mint/bin/asc-mcp

claude mcp get asc-mcp
claude mcp list

仅对当前项目使用 --scope local,或使用 --scope project 创建共享的 .mcp.json。项目服务器需要信任批准。切勿将原始 App Store Connect 凭据放入已提交的 .mcp.json 中。

Claude 将 user 和 local MCP 条目存储在 ~/.claude.json 中;.claude/settings.json 不是全局 MCP 注册表。在 Claude Code 中使用 /mcp 检查或重新连接服务器。请参阅官方 Claude Code MCP 文档。

将服务器添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

保存文件后退出并重新打开 Claude Desktop。

将服务器添加到 ~/.gemini/settings.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

有意保留 Gemini MCP 的默认超时时间。请参阅官方 Gemini CLI MCP 文档。

从命令面板运行 MCP: Add Server,并为个人设置选择用户配置文件。对于工作区设置,创建 .vscode/mcp.json:

{
  "servers": {
    "asc-mcp": {
      "type": "stdio",
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

当 VS Code 首次启动本地服务器时,确认你信任该服务器。不要在共享工作区文件中提交特定于用户的路径或机密。请参阅官方 VS Code MCP 文档。

Continue 不使用 .vscode/mcp.json。在工作区中创建 .continue/mcpServers/asc-mcp.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

MCP 工具在 Continue 代理模式下可用。请参阅官方 Continue MCP 文档。

对所有项目使用 ~/.cursor/mcp.json,或对单个项目使用 .cursor/mcp.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

编辑文件后,从 Cursor 设置中重启或刷新 MCP 服务器。请参阅官方 Cursor MCP 文档。

将服务器添加到 ~/.codeium/windsurf/mcp_config.json。此示例启用了 72 个工具的发布子集,低于 Cascade 的 100 个工具限制:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp",
      "args": [
        "--workers",
        "apps,builds,export_compliance,versions,reviews"
      ]
    }
  }
}

你也可以在客户端中禁用单个工具。建议使用服务器端 worker 过滤,因为它能保持活动目录可预测。请参阅官方 Devin Desktop MCP 文档。

[!IMPORTANT] command 必须指向真实的可执行文件。GUI 客户端通常不会继承 shell 别名、PATH 更改或环境变量。请使用绝对路径,并优先使用默认的 companies.json 凭据文件。

Worker 过滤

服务器在 33 个 App Store 工具域 + 2 个核心域中公开 502 个工具。某些 MCP 客户端有工具数量限制;Devin Desktop 中的 Cascade 目前允许 100 个活动工具。使用 35 个 --workers 过滤键仅启用你需要的 worker:

# Only load apps, builds, and version lifecycle tools
asc-mcp --workers apps,builds,versions

# App Store release preparation subset (99 tools, including always-on and build sub-workers)
asc-mcp --workers apps,accessibility,builds,export_compliance,versions,app_info,screenshots

# TestFlight review helpers can be loaded separately (49 tools)
asc-mcp --workers apps,builds,beta_app,pre_release

# Monetization focus
asc-mcp --workers apps,iap,subscriptions,pricing,promoted,review_submissions

无论过滤条件如何,company 和 auth worker 始终启用(它们提供核心的多账户和身份验证功能)。

启用 builds 时,它会自动包含 build_processing 和 build_beta 子 worker。

只读模式

当你希望在不修改 App Store Connect 的情况下进行安全检查时,请使用 --read-only:

asc-mcp --read-only
asc-mcp --read-only --workers apps,builds,reviews,analytics

在此模式下,读取工具(如 *_list、*_get、*_search、*_status、*_verify、*_parse、*_triage、auth_*、分析和指标)仍然可用。可以创建、更新、上传、提交、发布、删除、撤销、清除、取消或以其他方式修改 App Store Connect 的工具会在其 worker 处理程序运行之前被阻止。company_switch 仍然可用,因为它只更改本地活动公司上下文。

OpenAPI 契约与漂移工具

使用 operation-contract 命令将实际的免凭据 WorkerManager 目录与语义清单及固定的 Apple App Store Connect OpenAPI 规范进行比较。生产清单记录精确的 Apple operationId、HTTP 方法、路径、调用范围内的输入绑定、类型化固定值、响应谱系、本地工作流、实现状态、已弃用的别名以及有意推迟的操作。该命令不会加载 App Store Connect 凭据或启动 MCP 服务器。

rm -rf /tmp/asc-openapi
mkdir -p /tmp/asc-openapi
curl -L --fail -o /tmp/asc-openapi/spec.zip \
  https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip
spec_entry="$(unzip -Z1 /tmp/asc-openapi/spec.zip | grep -E '(^|/)openapi\.oas[^/]*\.json$')"
test "$(echo "$spec_entry" | grep -c .)" -eq 1
unzip -p /tmp/asc-openapi/spec.zip "$spec_entry" > /tmp/asc-openapi/openapi.oas.json

swift run asc-mcp openapi-contract-check \
  --spec /tmp/asc-openapi/openapi.oas.json \
  --json-output /tmp/asc-openapi/operation-contract.json \
  --markdown-output /tmp/asc-openapi/operation-contract.md \
  --strict

清单通过版本、SHA-256、路径数和操作数固定到 Apple API 4.4.1。它当前映射 476 个 Apple 操作,显式推迟 424 个,并将 363 个排除在范围之外,覆盖全部 1,263 个操作且无重叠。当 Apple 文档更改、映射的操作移动或消失、公共工具或 worker 偏离清单、输入字段失去绑定、响应谱系变得无效或推迟的决策过期时,CI 会失败。未公开的可选 Apple 参数会作为警告,以便它们保留在生成的待办事项中。

Manifest schema v2 还将每个可选的 Apple 查询和请求体输入归类为公开绑定、内部受控、经审查原因后有意省略或仍未分类。已检入的 optionalInputCoveragePin 记录确切的当前总数以及排序后的输入标识和处置的 SHA-256 摘要;--strict 会拒绝缺失的 pin 或任何计数级或标识级的漂移。该 pin 使分阶段修复可审计且防回归,但并不意味着每个可选的 Apple 输入都已经是公开的。v4.1.3 pin 总计 2,905 个:1,122 个已绑定,40 个内部受控,1,743 个有意省略,0 个未分类。其标识 SHA-256 为 c975f4e4eebb62ec87864a73fbf72bb8841f644108e54e6ffb25168bcf2a2766。

--strict 是合并和打标签时的发布门禁。每个声明的 target 或 broken 工具在报告中仍然是错误,并且回归测试固定其确切状态。当前基线没有 target 或 broken 实现,也没有实现漂移,因此任何偏离 asBuilt 的实现、任何结构性契约错误或任何可选输入覆盖漂移都会阻止合并和发布。--structural-strict 仅保留用于本地分阶段修复工作。

该门禁证明操作标识、顶级 MCP 字段所有权、必需的 Apple 输入、类型化内部值以及响应来源/指针谱系。完整的 MCP 类型/枚举/范围一致性和完整的类型化响应模式仍是单独的优化阶段;当前映射状态为 469 个部分和 33 个已弃用。

较旧的 openapi-coverage 命令仍可用于 ASC-OPENAPI-COVERAGE-GENERATED.md 中的高级域报告。操作契约是权威的发布门禁。

可用的 worker 名称:

Worker

Prefix

Tools

描述

company

company_

3

多账户管理

auth

auth_

4

JWT 令牌工具

apps

apps_

10

应用列表、元数据、本地化、搜索关键词 ID

accessibility

accessibility_

6

App Store 辅助功能声明

webhooks

webhooks_

11

Webhook 通知、投递诊断和接收器辅助工具

xcode_cloud

xcode_cloud_

42

Xcode Cloud 产品、工作流管理、构建运行、构件、问题、测试结果和 SCM

builds

builds_

4

构建管理

build_uploads

build_uploads_

10

构建上传父项、文件、安全传输和恢复

build_processing

builds_get_processing_*, builds_update_encryption, builds_check_readiness

4

构建状态、加密

export_compliance

export_compliance_

11

加密声明、文档上传、构建关联、就绪状态

build_beta

builds_*_beta_*, individual tester build tools

11

TestFlight 本地化、通知

versions

app_versions_

17

版本生命周期、年龄分级、提交、发布

reviews

reviews_

8

客户评论与回复

beta_groups

beta_groups_

15

TestFlight 群组和公开链接招募条件

beta_feedback

beta_feedback_

8

TestFlight 反馈截图、崩溃提交、崩溃日志

beta_testers

beta_testers_

12

测试员管理

iap

iap_

59

应用内购买、版本化元数据、定价、可用性、优惠代码、审核资源

subscriptions

subscriptions_

99

订阅和群组版本、定价、方案可用性、优惠、资源

sandbox

sandbox_

3

沙盒测试员

beta_app

beta_app_

10

Beta 应用本地化和审核

pre_release

pre_release_

3

预发布版本

beta_license

beta_license_

3

Beta 许可协议

provisioning

provisioning_

17

Bundle ID、设备、证书

app_info

app_info_

10

应用信息、类别、EULA

pricing

pricing_

9

地区、定价

users

users_

10

团队成员、角色

app_events

app_events_

9

应用内活动、本地化

analytics

analytics_

11

销售/财务报告、分析

screenshots

screenshots_

19

截图、预览、集合和已验证排序

custom_pages

custom_pages_

17

自定义产品页面、版本、本地化和搜索关键词

ppo

ppo_

15

产品页面优化实验、处理方案和本地化

promoted

promoted_

10

推广的应用内购买和已验证排序

review_attachments

review_attachments_

4

App Store 审核附件

review_submissions

review_submissions_

9

通用 App Store 审核提交和提交项

metrics

metrics_

9

性能指标、诊断信息和 TestFlight 使用指标

工具目录大小

当 MCP 客户端急切加载每个工具定义时,近似 schema 占用空间为:

配置

工具

~Token 数

所有 worker(默认)

502

~60,000

发布工作流:apps,builds,export_compliance,versions,reviews

~72

~8,900

变现:apps,iap,subscriptions,pricing

184

~21,100

TestFlight:apps,builds,beta_groups,beta_testers

~63

~7,100

营销:apps,screenshots,custom_pages,ppo,promoted

~78

~8,800

--workers apps

17

~2,100

最重的 worker: Subscriptions(99 个工具)、InAppPurchases(59 个工具)、Xcode Cloud(42 个工具)、Screenshots(19 个工具)、Provisioning(17 个工具)。

确切成本取决于 MCP 主机的序列化、分词器和工具发现策略。现代客户端可能会延迟加载 schema,直到需要时才获取。当客户端强制限制工具数量,或者您希望获得更小、更聚焦的目录时,请使用 --workers。

可用工具

502 个工具,分布在 33 个 App Store 工具域 + 2 个核心域(使用 35 个 --workers 过滤键 — 请参阅 Worker 过滤):

工具

描述

company_list

列出所有已配置的公司

company_switch

切换用于 API 操作的活动公司

company_current

获取当前活动公司信息

工具

描述

auth_generate_token

生成用于 API 访问的 JWT 令牌

auth_validate_token

在本地验证标准团队密钥 JWT:ES256 签名、已配置的 kid/iss、App Store Connect 受众、签发时间和过期声明,以及 20 分钟的最长有效期。此操作不会调用任何 Apple API,也不证明服务器已接受该令牌。

auth_refresh_token

强制刷新 JWT 令牌

auth_token_status

获取 JWT 令牌缓存状态

工具

描述

apps_list

列出所有应用并支持筛选

apps_get_details

获取应用的详细信息

apps_search

按名称或 Bundle ID 搜索应用

apps_list_versions

列出所有版本及其状态

apps_get_metadata

获取版本的本地化元数据

apps_list_search_keywords

列出用于自定义页面定向的 App Store 规范搜索关键词 ID

apps_update_metadata

更新元数据(新内容、描述等)

apps_list_localizations

列出本地化及其内容状态

apps_create_localization

为版本创建新的本地化

apps_delete_localization

从版本中删除本地化

工具

描述

accessibility_list

列出应用的辅助功能声明

accessibility_get

获取一条辅助功能声明

accessibility_create

为设备系列创建声明

accessibility_update

更新支持标志或发布声明

accessibility_delete

删除声明

accessibility_list_relationships

列出应用的声明关系 ID

工具

描述

webhooks_list

列出应用的 webhook

webhooks_get

按 ID 获取 webhook

webhooks_create

创建 webhook 配置

webhooks_update

更新 webhook 字段

webhooks_delete

删除 webhook

webhooks_list_deliveries

列出投递尝试

webhooks_redeliver

重新投递现有的投递记录

webhooks_ping

发送测试 ping

webhooks_verify_signature

根据确切的原始负载正文验证 x-apple-signature

webhooks_parse_payload

解析并规范化原始 webhook 通知负载

webhooks_triage_event

为 webhook 事件或投递失败生成可操作的分类处理计划

工具

描述

xcode_cloud_products_list

列出 Xcode Cloud 产品

xcode_cloud_products_get

获取 Xcode Cloud 产品

xcode_cloud_products_delete

预览或永久删除 Xcode Cloud 产品(带确认保护)

xcode_cloud_app_product_get

获取与应用关联的 Xcode Cloud 产品

xcode_cloud_product_app_get

获取与 Xcode Cloud 产品关联的应用

xcode_cloud_product_primary_repositories_list

列出附加到产品的主仓库

xcode_cloud_product_additional_repositories_list

列出附加到产品的其他仓库

xcode_cloud_product_workflows_list

列出产品的工作流程

xcode_cloud_product_build_runs_list

列出产品的构建运行

xcode_cloud_workflows_get

获取工作流程

xcode_cloud_workflows_create

创建 Xcode Cloud 工作流程

xcode_cloud_workflows_update

更新 Xcode Cloud 工作流程

xcode_cloud_workflows_delete

预览或永久删除工作流程(带确认保护)

xcode_cloud_workflow_repository_get

获取工作流程使用的仓库

xcode_cloud_workflow_build_runs_list

列出工作流程的构建运行

xcode_cloud_build_runs_get

获取构建运行

xcode_cloud_build_runs_start

启动或重新构建 Xcode Cloud 构建

xcode_cloud_build_run_actions_list

列出构建运行的操作

xcode_cloud_build_run_builds_list

列出由构建运行创建的 App Store Connect 构建

xcode_cloud_actions_get

获取构建操作

xcode_cloud_action_build_run_get

获取拥有构建操作的构建运行

xcode_cloud_action_artifacts_list

列出操作的构建产物

xcode_cloud_action_issues_list

列出操作的问题

xcode_cloud_action_test_results_list

列出操作的测试结果

xcode_cloud_artifacts_get

获取构建产物

xcode_cloud_issues_get

获取问题

xcode_cloud_test_results_get

获取测试结果

xcode_cloud_xcode_versions_list

列出可用的 Xcode 版本

xcode_cloud_xcode_versions_get

获取 Xcode 版本

xcode_cloud_xcode_version_macos_versions_list

列出与 Xcode 版本兼容的 macOS 版本

xcode_cloud_macos_versions_list

列出可用的 macOS 版本

xcode_cloud_macos_versions_get

获取 macOS 版本

xcode_cloud_macos_version_xcode_versions_list

列出与 macOS 版本兼容的 Xcode 版本

xcode_cloud_scm_providers_list

列出 SCM 提供商

xcode_cloud_scm_providers_get

获取 SCM 提供商

xcode_cloud_scm_provider_repositories_list

列出 SCM 提供商的仓库

xcode_cloud_scm_repositories_list

列出 SCM 仓库

xcode_cloud_scm_repositories_get

获取 SCM 仓库

xcode_cloud_scm_repository_git_references_list

列出仓库的 git 引用

xcode_cloud_scm_repository_pull_requests_list

列出仓库的拉取请求

xcode_cloud_scm_git_references_get

获取 git 引用

xcode_cloud_scm_pull_requests_get

获取拉取请求

工具

描述

beta_feedback_list_crashes

列出 beta 崩溃反馈提交

beta_feedback_get_crash

获取一条 beta 崩溃反馈提交

beta_feedback_get_crash_log

读取提交的崩溃日志

beta_feedback_get_crash_log_by_id

按崩溃日志 ID 读取崩溃日志

beta_feedback_delete_crash

删除 beta 崩溃反馈提交

beta_feedback_list_screenshots

列出 beta 截图反馈提交

beta_feedback_get_screenshot

获取一条 beta 截图反馈提交

beta_feedback_delete_screenshot

删除 beta 截图反馈提交

工具

描述

builds_list

列出构建及其处理状态

builds_get

获取构建的详细信息

builds_find_by_number

按版本号查找构建

builds_list_for_version

获取特定应用版本的构建

Tool

Description

build_uploads_list

列出应用的构建上传父对象,支持筛选、稀疏字段、包含关系和严格分页

build_uploads_get

获取单个构建上传,包含处理诊断信息和可选的包含资源

build_uploads_create

创建构建上传父对象,不重放不明确的 POST 请求

build_uploads_delete

在精确确认 ID 后删除构建上传父对象

build_uploads_list_files

列出单个构建上传下的文件预留,使用严格分页

build_uploads_get_file

获取单个构建上传文件及其投递状态

build_uploads_reserve_file

预留一个精确文件,不重放不明确的 POST 请求

build_uploads_commit_file

提交校验和或上传状态变更,分别保留省略和 null 值

build_uploads_upload_file

从不可变的本地快照传输新的或现有的预留

build_uploads_upload

执行父对象创建、预留、传输、提交和处理对账

复合上传从预留到恢复都保留相同的小写 MD5 指纹。显式恢复和恢复续传指令携带 expected_md5;下一次调用会在任何 Apple 请求或传输之前,用新的不可变快照对其进行验证。只有当 Apple 的 sourceFileChecksums.file MD5 与该快照匹配时,才会接受已标记为 UPLOAD_COMPLETE 或 COMPLETE 的现有预留;缺失、不支持或不匹配的证据会保留以供检查,而不会再次传输、提交或删除。预签名操作仅在其方法为 PUT 时重试;重定向、POST 和未知方法不会重放。如果某个不明确的创建被唯一恢复,工作流会停止并返回其资源 ID 以进行显式续传。传输凭据保持脱敏,除非在直接读取时显式启用 include_sensitive_details。

Tool

Description

builds_get_processing_state

获取当前处理状态

builds_update_encryption

设置加密合规性

builds_get_processing_status

获取详细处理状态

builds_check_readiness

检查构建是否可提交

Tool

Description

export_compliance_list_declarations

列出应用的加密声明,使用严格分页

export_compliance_get_declaration

获取单个声明,不包含已弃用的文档 URL 字段

export_compliance_create_declaration

为应用创建加密声明问卷

export_compliance_create_document

从单个不可变本地快照预留、传输、提交并轮询文档

export_compliance_get_document

获取安全的投递元数据,不包含签名 URL、令牌或上传头

export_compliance_update_document

应用低层可空校验和或上传状态补丁

export_compliance_upload_document

使用精确字节及其小写 MD5 回执恢复 AWAITING_UPLOAD 预留

export_compliance_inspect_document

检查文档存在性并分类其投递状态

export_compliance_get_build_declaration

获取当前附加到构建的声明

export_compliance_attach_build_declaration

附加已批准的声明并验证关系

export_compliance_check_release_readiness

仅评估构建的出口合规发布门禁

Tool

Description

builds_get_beta_detail

获取构建的 TestFlight 配置

builds_update_beta_detail

更新 TestFlight 设置

builds_set_beta_localization

设置 TestFlight 的“新内容”

builds_list_beta_localizations

列出所有 TestFlight 本地化

builds_get_beta_groups

获取构建的 Beta 群组

builds_get_beta_testers

获取构建的单个测试员

builds_send_beta_notification

向 Beta 测试员发送通知

builds_add_to_beta_groups

将构建添加到 Beta 群组

builds_add_individual_testers

将单个测试员添加到构建

builds_remove_individual_testers

从构建中移除单个测试员

builds_list_individual_testers

列出分配给构建的单个测试员

Tool

Description

beta_groups_list

列出应用的 TestFlight Beta 群组

beta_groups_create

创建新的 Beta 群组

beta_groups_update

更新 Beta 群组设置

beta_groups_delete

删除 Beta 群组

beta_groups_add_testers

将测试员添加到 Beta 群组

beta_groups_remove_testers

从 Beta 群组移除测试员

beta_groups_list_testers

列出 Beta 群组中的测试员

beta_groups_add_builds

将构建添加到 Beta 群组

beta_groups_remove_builds

从 Beta 群组移除构建

beta_groups_get_recruitment_criteria

获取附加到 Beta 群组的公开链接招募标准

beta_groups_create_recruitment_criteria

创建设备家族和操作系统版本招募标准

beta_groups_update_recruitment_criteria

替换或显式清除招募筛选条件

beta_groups_delete_recruitment_criteria

在精确确认标准 ID 后删除招募标准

beta_groups_list_recruitment_options

列出 Apple 当前允许的设备家族和操作系统版本

beta_groups_check_recruitment_compatibility

检查群组是否具有与其标准兼容的构建

包含测试员的列表/搜索/获取/创建/删除、应用关系、邀请、Beta 群组分配、构建分配和应用移除工具。

Tool

Description

app_versions_create

创建新的 App 版本

app_versions_list

列出版本并支持状态筛选

app_versions_get

获取详细的版本信息

app_versions_get_age_rating_declaration

读取 App 信息年龄分级问卷

app_versions_list_territory_age_ratings

按地区列出计算出的年龄分级

app_versions_update

更新版本属性

app_versions_attach_build

将构建附加到版本

app_versions_submit_for_review

提交以进行 App Store 审核

app_versions_cancel_review

取消进行中的审核

app_versions_release

发布已批准的版本

app_versions_create_phased_release

创建分阶段发布

app_versions_get_phased_release

获取分阶段发布信息和 ID

app_versions_update_phased_release

暂停/恢复/完成发布

app_versions_delete_phased_release

删除符合条件的计划分阶段发布,需精确确认 ID 并确保未知结果安全

app_versions_set_review_details

设置审核联系信息

app_versions_update_age_rating

配置年龄分级声明

app_versions_delete

删除可编辑的 App 版本,需精确确认 ID 并确保未知结果安全

工具

描述

reviews_list

获取带筛选和分页的评论

reviews_get

获取特定评论详情

reviews_list_for_version

获取特定版本的评论

reviews_stats

聚合评论统计

reviews_create_response

回复客户评论

reviews_delete_response

删除回复

reviews_get_response

获取评论的回复

reviews_summarizations

总结评论主题和评分

工具

描述

iap_list

列出应用的应用内购买项目

iap_get

获取 IAP 详情

iap_create

创建新的 IAP

iap_update

更新 IAP 属性

iap_delete

删除 IAP

iap_list_localizations

列出 IAP 本地化

iap_create_localization

创建 IAP 本地化

iap_update_localization

更新 IAP 本地化

iap_delete_localization

删除 IAP 本地化

iap_submit_for_review

提交 IAP 审核

iap_list_subscriptions

列出订阅组

iap_get_subscription_group

获取订阅组详情

iap_inventory

面向 AI 的应用 IAP 清单

iap_list_price_points

列出按地区划分的价格点

iap_list_price_point_equalizations

列出价格点均衡

iap_get_price_schedule

获取价格计划

iap_set_price_schedule

设置价格计划

iap_pricing_summary

总结当前和计划中的价格

iap_prepare_offer_prices

查找优惠的价格点候选

iap_set_availability

设置地区可用性

iap_get_availability

按 IAP 或可用性 ID 获取可用性

iap_list_available_territories

列出可用地区

iap_get_promoted_purchase

获取推广购买状态

iap_list_offer_codes

列出 IAP 优惠代码

iap_get_offer_code

获取 IAP 优惠代码

iap_create_offer_code

创建 IAP 优惠代码

iap_update_offer_code

更新 IAP 优惠代码

iap_deactivate_offer_code

停用 IAP 优惠代码

iap_list_offer_code_prices

列出按地区划分的优惠价格

iap_generate_one_time_codes

生成一次性优惠代码

iap_list_one_time_codes

列出一次性代码批次

iap_get_one_time_code

获取一次性代码批次

iap_update_one_time_code

更新一次性代码批次

iap_deactivate_one_time_code

停用一次性代码批次

iap_get_one_time_code_values

获取生成的一次性代码值

iap_create_custom_code

创建自定义优惠代码

iap_get_custom_code

获取自定义代码详情

iap_update_custom_code

更新自定义代码

iap_deactivate_custom_code

停用自定义代码

iap_get_review_screenshot

获取审核截图

iap_upload_review_screenshot

上传审核截图

iap_delete_review_screenshot

删除审核截图

iap_upload_image

上传推广图片

iap_get_image

获取推广图片

iap_delete_image

删除推广图片

iap_list_images

列出推广图片

iap_create_version

创建可审核的 IAP 元数据版本

iap_get_version

获取 IAP 版本及其审核状态

iap_list_versions

列出 IAP 的可审核版本

iap_list_version_localizations

列出 IAP 版本拥有的本地化

iap_create_version_localization

为 IAP 版本创建本地化

iap_get_version_localization

获取 IAP 版本本地化

iap_update_version_localization

更新 IAP 版本本地化上的可空文本

iap_delete_version_localization

删除 IAP 版本本地化

iap_get_version_image

获取与 IAP 版本相关的单一图片

iap_list_version_images

列出 IAP 版本拥有的所有图片资源,支持严格续传

iap_upload_version_image

上传、提交并协调不可变的 IAP 版本图片

iap_get_version_image_resource

获取版本范围的 IAP 图片资源

iap_delete_version_image

删除版本范围的 IAP 图片

旧版产品范围的本地化、提交和图片工具仍可调用以保持兼容性。Apple 4.4.1 弃用了 iap_list_localizations、iap_create_localization、iap_update_localization、iap_delete_localization、iap_submit_for_review、iap_upload_image、iap_get_image、iap_delete_image 和 iap_list_images;成功响应会标识对应的版本化替代工具。对于本地化创建、推广图片上传和审核提交,请先使用 iap_list_versions,仅在需要新元数据版本时调用 iap_create_version,并将该版本 ID 传递给下游的版本化工具。这些兼容性调用绝不会自动创建或选择版本。

如果 Apple 可能已接受版本或版本本地化的创建请求,但响应丢失或无法解码,工具将返回 write_outcome: not_confirmed 和 retrySafe: false,并附带请求的身份信息以及 list/get 检查步骤。重试前请先检查,以避免重复的元数据资源。

包括订阅和组的元数据版本、版本拥有的本地化和图片、按计划类型划分的可用性、按地区划分的价格、价格点和调整后的均衡、推广购买读取、清单/定价辅助工具、介绍性优惠、促销优惠、优惠代码、一次性/自定义代码、赢回优惠和审核截图。所有以前的公开 offer_codes_*、intro_offers_*、promo_offers_* 和 winback_* 功能均通过 subscriptions_* 提供。

Apple 4.4.1 还弃用了旧版产品或组范围的本地化、图片和提交工具。它们仍可调用以保持兼容性,成功时返回明确的替代指引,并且绝不会自动创建或选择元数据版本。新的集成应使用 subscriptions_create_version 或 subscriptions_create_group_version、相应的版本本地化/图片工具,以及通用的 review_submissions_* 工作流。

订阅版本、组版本、本地化和计划可用性的创建使用相同的非幂等恢复契约:模糊的 Apple 写入返回 write_outcome: not_confirmed、retrySafe: false、请求的指纹,以及确定性的 collection/get 检查指引。

以下名称仍可用于兼容性,但 Apple 4.4.1 弃用了其旧版 subscriptionAvailability 资源,转而使用按计划类型划分的 subscriptionPlanAvailabilities:

工具

兼容性状态

subscriptions_get_availability

已弃用的旧版可用性读取

subscriptions_set_availability

已弃用的旧版可用性写入

subscriptions_list_available_territories

已弃用的旧版地区列表

subscriptions_inventory

已弃用的辅助工具;可省略首个包含的关系页面之外的订阅,并非权威的完整清单

工具

描述

sandbox_list

列出沙盒测试员

sandbox_update

更新沙盒测试员设置

sandbox_clear_purchase_history

清除沙盒测试员的购买历史

工具

描述

beta_app_list_localizations

列出 Beta 应用本地化

beta_app_create_localization

创建 Beta 应用本地化

beta_app_get_localization

获取 Beta 应用本地化

beta_app_update_localization

更新 Beta 应用本地化

beta_app_delete_localization

删除 Beta 应用本地化

beta_app_submit_for_review

提交构建以进行 Beta 审核

beta_app_list_submissions

列出 Beta 审核提交

beta_app_get_submission

获取 Beta 审核提交

beta_app_get_review_details

获取 Beta 应用审核详情

beta_app_update_review_details

更新 Beta 应用审核详情

包含预发布版本的列表、详情及相关构建。

包含 Beta 许可协议的列表、获取和更新。

工具

描述

provisioning_list_bundle_ids

列出已注册的 Bundle ID

provisioning_get_bundle_id

获取 Bundle ID 详情

provisioning_create_bundle_id

注册新的 Bundle ID

provisioning_delete_bundle_id

删除 Bundle ID

provisioning_list_devices

列出已注册的设备

provisioning_register_device

注册新设备 (UDID)

provisioning_update_device

更新设备名称或状态

provisioning_list_certificates

列出签名证书

provisioning_get_certificate

获取证书详情

provisioning_revoke_certificate

撤销证书

provisioning_list_profiles

列出描述文件

provisioning_get_profile

获取描述文件详情

provisioning_delete_profile

删除描述文件

provisioning_create_profile

创建描述文件

provisioning_list_capabilities

列出 Bundle ID 功能

provisioning_enable_capability

启用某项功能

provisioning_disable_capability

禁用某项功能

包含 App 信息的列表/获取/更新、App 信息本地化,以及 EULA 的获取/创建/更新工具。

包含地区、可用性、价格点、价格计划,以及 App Store availability v2 工具。

包含团队成员列表/获取/更新/移除、邀请、可见 App,以及可见 App 关系更新。

包含 App 内事件的增删改查,以及事件本地化的列表/创建/更新/删除。

包含销售、财务、App 摘要、分析报告请求、报告、实例、快照和细分工具。

工具

描述

screenshots_list_sets

列出截图集

screenshots_get_set

按 ID 获取截图集

screenshots_create_set

创建截图集

screenshots_delete_set

删除截图集

screenshots_list

列出截图集中的截图

screenshots_upload

上传截图

screenshots_get

获取截图详情

screenshots_delete

删除截图

screenshots_reorder

重新排序截图集中的截图

screenshots_list_preview_sets

列出 App 预览集

screenshots_get_preview_set

按 ID 获取 App 预览集

screenshots_create_preview_set

创建预览集

screenshots_delete_preview_set

删除预览集

screenshots_upload_preview

上传 App 预览

screenshots_get_preview

获取预览详情

screenshots_list_previews

列出预览集中的预览

screenshots_reorder_previews

重新排序集中的每个预览,并包含成员资格和事后验证

screenshots_upload_batch

批量上传截图

screenshots_delete_preview

删除预览

工具

描述

custom_pages_list

列出自定义产品页面

custom_pages_get

获取页面详情

custom_pages_create

创建自定义页面

custom_pages_update

更新自定义页面

custom_pages_delete

删除自定义页面

custom_pages_list_versions

列出页面版本

custom_pages_get_version

按 ID 获取页面版本

custom_pages_create_version

创建页面版本

custom_pages_update_version

更新页面版本

custom_pages_list_localizations

列出版本本地化

custom_pages_get_localization

按 ID 获取本地化

custom_pages_create_localization

创建本地化

custom_pages_update_localization

更新本地化

custom_pages_delete_localization

在精确确认后删除本地化

custom_pages_list_search_keywords

列出分配给本地化的搜索关键词 ID

custom_pages_add_search_keywords

添加搜索关键词关系

custom_pages_remove_search_keywords

在精确确认后移除搜索关键词关系

工具

描述

ppo_list_experiments

列出 A/B 测试实验

ppo_list_version_experiments

列出某个 App Store 版本的 V2 实验

ppo_get_experiment

获取实验详情

ppo_create_experiment

创建实验

ppo_update_experiment

更新/开始/停止实验

ppo_delete_experiment

删除实验

ppo_list_treatments

列出实验变体

ppo_get_treatment

按 ID 获取变体

ppo_create_treatment

创建变体

ppo_update_treatment

更新变体

ppo_delete_treatment

在精确确认后删除变体

ppo_list_treatment_localizations

列出变体本地化

ppo_get_treatment_localization

按 ID 获取变体本地化

ppo_create_treatment_localization

创建变体本地化

ppo_delete_treatment_localization

在精确确认后删除变体本地化

工具

描述

promoted_list

列出应用的推广购买项

promoted_get

获取推广详情

promoted_create

创建推广

promoted_update

更新推广的可见性或启用状态

promoted_delete

删除推广

promoted_reorder

替换并验证应用的完整推广购买项顺序

promoted_upload_image

已弃用:返回迁移指南;该端点不在固定的 Apple OpenAPI 4.4.1 中

promoted_get_image

已弃用:返回迁移指南;该端点不在固定的 Apple OpenAPI 4.4.1 中

promoted_delete_image

已弃用:返回迁移指南;该端点不在固定的 Apple OpenAPI 4.4.1 中

promoted_get_image_for_purchase

已弃用:返回迁移指南;该关系不在固定的 Apple OpenAPI 4.4.1 中

包括 App Store 审核附件的上传、获取、删除和列表工具。

工具

描述

review_submissions_list

列出应用的通用审核提交

review_submissions_get

获取单个通用审核提交

review_submissions_create

为应用和平台创建通用审核提交

review_submissions_list_items

列出附加到审核提交的项目

review_submissions_add_item

将可审核资源版本附加到提交

review_submissions_update_item

更新已提交项目上可空的 resolved 或 removed 状态

review_submissions_remove_item

从提交中移除项目

review_submissions_submit

提交所有附加项目以供审核

review_submissions_cancel

取消已提交的通用审核提交

review_submissions_add_item 仅在 Apple 的响应确认有效的项目 ID 以及完全匹配的请求关系名称、JSON:API 类型和资源 ID 时报告成功。任何不匹配都会作为未确认的写入返回,并附带提交和项目列表恢复步骤。

工具

描述

metrics_app_perf

获取应用性能/功耗指标

metrics_build_perf

获取构建性能指标

metrics_build_diagnostics

列出构建的诊断信息

metrics_get_diagnostic_logs

获取诊断日志

metrics_app_beta_tester_usage

按 Beta 测试员获取应用的 TestFlight 崩溃、会话和反馈指标

metrics_group_beta_tester_usage

按 Beta 测试员获取 Beta 组的 TestFlight 崩溃、会话和反馈指标

metrics_group_public_link_usage

获取公开链接的浏览量、接受结果、标准失败和调查比例

metrics_tester_usage

获取单个测试员在应用内的 TestFlight 使用指标

metrics_build_beta_usage

获取构建的 TestFlight 崩溃、安装、会话、反馈和邀请指标

使用示例

完整发布工作流

You: "Release version 2.2.0 of my app with build 456"

Claude will:
1. app_versions_create(app_id, platform: "IOS", version_string: "2.2.0")
2. app_versions_attach_build(version_id, build_id)
3. app_versions_set_review_details(version_id, contact_email: "...")
4. app_versions_submit_for_review(version_id)
5. app_versions_create_phased_release(version_id)  # after approval

TestFlight 分发

You: "Create a beta group 'External Testers' and distribute the latest build"

Claude will:
1. beta_groups_create(app_id, name: "External Testers")
2. builds_list(app_id, limit: 1)  # find latest
3. builds_set_beta_localization(build_id, locale: "en-US", whats_new: "...")
4. beta_groups_add_testers(group_id, tester_ids: [...])

审核管理

You: "Show me all 1-star reviews from the last week and draft responses"

Claude will:
1. reviews_list(app_id, rating: 1, sort: "-createdDate", limit: 50)
2. reviews_create_response(review_id, response_body: "...")  # for each

多公司工作流

You: "Switch to ClientCorp and check their latest build status"

Claude will:
1. company_switch(company: "ClientCorp")
2. apps_list(limit: 5)
3. builds_list(app_id, limit: 1)
4. builds_get_processing_state(build_id)

API 约束

约束

详情

无表情符号

元数据字段(新内容、描述、关键词)不得包含表情符号字符

版本状态

App Store Connect 会验证元数据更新的可编辑状态。被拒绝和元数据被拒绝的版本可以编辑以重新提交;已发布或审核中的版本可能会被 Apple 拒绝。

JWT 过期

令牌在 20 分钟后过期 — 服务器会自动刷新它们

速率限制

Apple 强制执行按账户的速率限制(文档)

区域格式

使用标准代码:en-US、ru、de-DE、ja、zh-Hans

架构

Sources/asc-mcp/
├── EntryPoint.swift                # Entry point, --workers filtering
├── Core/
│   ├── Application.swift           #   MCP server setup & initialization
│   └── ASCError.swift              #   Custom error types
├── Helpers/                        # JSON formatting, pagination, safe helpers
├── Models/                         # API request/response models
│   ├── AppStoreConnect/            #   Apps, versions, localizations
│   ├── Builds/                     #   Builds, beta details, beta groups
│   ├── AppLifecycle/               #   Version lifecycle models
│   ├── InAppPurchases/             #   IAP models
│   ├── Subscriptions/              #   Subscriptions, offer codes, win-back
│   ├── Marketing/                  #   Screenshots, custom pages, PPO, promoted
│   ├── Metrics/                    #   Performance metrics, diagnostics
│   ├── Analytics/                  #   Sales/financial reports
│   ├── Provisioning/               #   Bundle IDs, devices, certificates
│   ├── Shared/                     #   Shared upload/image types
│   └── ...                         #   AppEvents, AppInfo, Pricing, Users
├── Services/
│   ├── HTTPClient.swift            #   Actor-based HTTP with retry logic
│   ├── JWTService.swift            #   ES256 JWT token generation
│   └── CompaniesManager.swift      #   Multi-account management
└── Workers/                        # MCP tool implementations (39 Swift worker classes + MainWorker router)
    ├── MainWorker/WorkerManager    #   Central tool registry & routing
    ├── CompaniesWorker/            #   company_* tools
    ├── AuthWorker/                 #   auth_* tools
    ├── AppsWorker/                 #   apps_* tools
    ├── AccessibilityWorker/        #   accessibility_* tools
    ├── WebhooksWorker/             #   webhooks_* tools
    ├── XcodeCloudWorker/           #   xcode_cloud_* tools
    ├── BuildsWorker/               #   builds_* tools
    ├── BuildUploadsWorker/         #   build_uploads_* tools
    ├── BuildProcessingWorker/      #   builds_*_processing tools
    ├── ExportComplianceWorker/     #   export_compliance_* tools
    ├── BuildBetaDetailsWorker/     #   builds_*_beta_* tools
    ├── AppLifecycleWorker/         #   app_versions_* tools
    ├── ReviewsWorker/              #   reviews_* tools
    ├── BetaGroupsWorker/           #   beta_groups_* tools
    ├── BetaFeedbackWorker/         #   beta_feedback_* tools
    ├── BetaTestersWorker/          #   beta_testers_* tools
    ├── InAppPurchasesWorker/       #   iap_* tools
    ├── SubscriptionsWorker/        #   subscriptions_* tools
    ├── OfferCodesWorker/           #   subscriptions offer-code tools
    ├── IntroductoryOffersWorker/   #   subscriptions intro-offer tools
    ├── PromotionalOffersWorker/    #   subscriptions promotional-offer tools
    ├── WinBackOffersWorker/        #   subscriptions win-back tools
    ├── SandboxTestersWorker/       #   sandbox_* tools
    ├── BetaAppWorker/              #   beta_app_* tools
    ├── PreReleaseVersionsWorker/   #   pre_release_* tools
    ├── BetaLicenseAgreementsWorker/ #  beta_license_* tools
    ├── ProvisioningWorker/         #   provisioning_* tools
    ├── AppInfoWorker/              #   app_info_* tools
    ├── PricingWorker/              #   pricing_* tools
    ├── UsersWorker/                #   users_* tools
    ├── AppEventsWorker/            #   app_events_* tools
    ├── AnalyticsWorker/            #   analytics_* tools
    ├── ScreenshotsWorker/          #   screenshots_* tools
    ├── CustomProductPagesWorker/   #   custom_pages_* tools
    ├── ProductPageOptimizationWorker/ # ppo_* tools
    ├── PromotedPurchasesWorker/    #   promoted_* tools
    ├── ReviewAttachmentsWorker/    #   review_attachments_* tools
    ├── ReviewSubmissionsWorker/    #   review_submissions_* tools
    └── MetricsWorker/              #   metrics_* tools

设计原则

  • Swift 6 严格并发 — 所有 worker 和服务都是 Sendable,具有正确的 actor 隔离

  • 基于 Actor 的 HTTP 客户端 — 线程安全,具有指数退避和重试逻辑

  • 基于前缀的路由 — WorkerManager 按名称前缀路由工具调用(零配置)

  • 最小依赖 — 仅使用 MCP Swift SDK

故障排除

  1. 运行 ~/.mint/bin/asc-mcp --version 以独立于 MCP 客户端验证安装。

  2. 验证 MCP 客户端使用已安装可执行文件的绝对路径。

  3. 对于 Codex,运行 codex mcp list 和 codex mcp get asc-mcp --json。

  4. 对于 Claude Code,运行 claude mcp get asc-mcp 和 claude mcp list。

  5. 检查配置的 companies.json 文件或所选设置使用的环境变量。

  6. 确保每个 .p8 密钥路径都是绝对的且文件存在。

  7. 更改 MCP 配置后重启 GUI 客户端,然后检查客户端的 MCP 输出日志。

  1. 验证您的密钥 ID 和签发者 ID 与 App Store Connect 中显示的一致

  2. 确保 .p8 文件是原始下载(未被修改)

  3. 检查 API 密钥是否已被撤销

  4. JWT 令牌会自动刷新,但如果密钥无效,所有请求都将失败

apps_update_metadata 在本地文本、区域和 URL 验证后将元数据 PATCH 发送到 App Store Connect。Apple 决定当前版本状态是否可编辑。被拒绝和元数据被拒绝的版本可以编辑并重新提交;已发布、审核中或其他锁定版本可能会返回 Apple API 错误。

使用 builds_get_processing_status 检查当前处理状态,使用 builds_check_readiness 验证 App Store/TestFlight 就绪状态。Apple 的构建处理通常需要 5-30 分钟,但在高峰时段可能更长。

HTTP 客户端会在收到 429 响应时自动以指数退避重试。如果您持续达到限制,请降低 API 调用频率或使用较小的分页大小进行分页。

获取帮助

在提交报告之前,请搜索现有问题。如果问题是新出现的,请打开一个问题并包含:

  • macOS 版本和安装方法;

  • MCP 客户端名称和版本;

  • 所选的 --workers 值(如有);

  • 确切的错误消息和最小可复现请求。

在发布日志之前,请从日志中移除密钥 ID、签发者 ID、私钥、签名 URL、令牌和账户数据。请按照 SECURITY.md 私下报告安全漏洞。有关代码贡献,请参阅 CONTRIBUTING.md。

开发

构建

swift build              # Debug build
swift build -c release   # Release build (optimized)
swift package clean      # Clean build artifacts

测试模式

.build/debug/asc-mcp --test    # Runs built-in integration tests

添加新工具

  1. 在相应的 Worker+Handlers.swift 中创建处理程序方法

  2. 在 Worker+ToolDefinitions.swift 中添加工具定义

  3. 在 worker 的 getTools() 方法中注册

  4. 在 worker 的 handleTool() switch 中添加路由 case

  5. WorkerManager 按前缀自动路由 — 无需更改

添加新 Worker

  1. 创建目录:Workers/MyWorker/

  2. 创建 3 个文件:MyWorker.swift、MyWorker+ToolDefinitions.swift、MyWorker+Handlers.swift

  3. 在 WorkerManager.swift 中添加 worker 属性和初始化

  4. 在 WorkerManager.registerWorkers() 中添加路由规则

  5. 添加 getMyTools() 辅助方法

贡献

我们欢迎贡献!有关详细信息,请参阅贡献指南。

许可证

本项目根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。

致谢


这是一个非官方的社区维护工具,与 Apple Inc. 无关联,也未获得其认可。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that connects Cursor, Claude Desktop, and other MCP clients to the official App Store Connect API—so you can manage iOS/macOS apps, TestFlight, in-app subscriptions, and store metadata via chat or automated tool calls.
    69
    51 npm
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An opinionated MCP server for App Store Connect that provides 13 curated tools, slash-command workflows, and a Claude Skill to manage apps, reviews, sales, and pre-submission audits via natural language.
    41
    263 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that exposes the entire Apple App Store Connect API (1,200+ operations) as MCP tools, enabling AI assistants to query apps, manage builds, handle submissions, read analytics, and more.
    6 npm
    MIT