App Store Connect 管理服务器

一个用于管理和提交iOS应用到App Store Connect的工具,支持Bundle ID注册、元数据上传、TestFlight管理和一键提交等功能。

  • by anupamchugh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 anupamchugh/asc-mcp

使用说明

asc-mcp

App Store连接MCP服务器——注册、测试、发货。

其他ASC MCP都可以列出您的应用程序。这一个 船舶 他们——现在也管理着TestFlight。

一个工具,28个动作。捆绑ID注册、元数据、屏幕截图、年龄评级、TestFlight组+测试人员、复合一次通话发送——所有这些都来自您的AI代理。

为什么存在

现有ASC MCP服务器(JoshuaRileyDev 的 288颗星, SardorbekR 13颗星) 读得重,写得轻。他们可以列出应用程序并管理基本的TestFlight。没有人可以提交审查。没有一个具有复合动作。

我们在推出两款完全来自Claude Code的CLI的iOS应用程序后建立了这一功能,并仅通过发现年龄评级字段类型就燃烧了约15个API调用。这些模式现在已经内置。

它做什么

阅读

行动 什么
schema 返回所有ASC API架构-年龄分级字段、类别、屏幕截图类型。 先叫这个。
list_apps 列出所有应用程序
find_app 按捆绑包ID查找应用程序
get_app 应用程序详细信息+版本
get_version 版本详细信息+本地化
get_builds 最近构建+处理状态+试飞状态
check_submission 检查审核状态
list_beta_groups 列出试飞组(内部+外部)
list_beta_testers 列出应用程序的TestFlight测试人员

写

行动 什么
register_bundle_id 注册新的捆绑包ID(标识符+名称,可选平台)
upload_metadata 描述、关键字、促销文本、支持URL、新增内容
upload_app_info 字幕、隐私URL、类别
set_age_rating 一次调用中的所有22个字段--默认为4+(无/假)
set_copyright 版本上的版权文本
set_content_rights 第三方内容声明
set_encryption 导出合规性(大多数应用程序: uses_non_exempt=false)
set_pricing_free 将价格设置为免费
attach_build 将已处理的内部版本附加到版本
create_review_detail 审阅者联系信息+备注
upload_screenshots 上传截图,自动清理现有集
submit_for_review 完整的3步提交:创建→ 添加版本→ 确认

试飞

行动 什么
create_beta_group 创建内部或外部测试组
add_build_to_group 将构建分配给测试组
add_beta_tester 通过电子邮件添加测试人员(可选择添加到特定组)
set_beta_whats_new 为构建设置“要测试什么”
set_beta_app_info 设置试飞描述+反馈电子邮件

复合材料(一次调用中的多步骤)

行动 什么
testflight_setup 一个电话:设置加密→ 测试版应用信息→ 测试什么→ 创建/查找组→ 添加构建。TestFlight现场直播。
ship_app 一个电话:查找应用程序→ 获取版本→ 获取构建→ 设置加密→ 附加构建→ 年龄分级→ 内容权利。应用程序已准备好元数据+提交。

烘焙的图案

如果你不知道,就会浪费代币:

  • 年龄分级:13个枚举字段(NONE/INFREQUENT_OR_MILD/FREQUENT_OR_INTENSE)+9个布尔字段。所有这些都需要在一次临时通话中完成。
  • 类别:字符串ID,如 TRAVEL, SOCIAL_NETWORKING --不是UUID。
  • 屏幕截图类型: iphone_67 → APP_IPHONE_67 (1290x2796)等。
  • 电话格式:必须是国际性的: +44 844 209 0611
  • 隐私标签:没有API-必须使用ASC web UI(我们提前告诉您,而不是让您浪费发现它的调用)。
  • 应用程序创建:无法通过API完成-必须使用ASC web UI(苹果限制)。

设置

1.获取API密钥

App Store Connect→ 用户与访问→ 集成→ Keys → 生成。

您需要:

  • 密钥ID (从密钥名称。, V82Q36H9CR)
  • 发行者ID (密钥页面顶部的UUID)
  • .p8 密钥文件 (下载一次,保存到 ~/private_keys/)

2.安装

使用 uv (推荐):

cd /path/to/asc-mcp
uv venv && uv pip install fastmcp PyJWT cryptography

或者使用pip:

pip install fastmcp PyJWT cryptography

3.配置

添加到您的 .mcp.json (克劳德代码、光标等):

{
  "mcpServers": {
    "asc": {
      "command": "python3",
      "args": ["/path/to/asc-mcp/server.py"],
      "env": {
        "ASC_KEY_ID": "YOUR_KEY_ID",
        "ASC_ISSUER_ID": "YOUR_ISSUER_ID",
        "ASC_KEY_PATH": "~/private_keys/AuthKey_XXXX.p8"
      }
    }
  }
}

如果你的钥匙在 ~/private_keys/AuthKey_*.p8,密钥ID和路径是自动发现的。你仍然需要 ASC_ISSUER_ID.

示例:发布一个应用程序(8次通话)

asc action=schema
asc action=find_app bundle_id=com.example.myapp
asc action=upload_metadata version_id=XXX description="My app" keywords="app,cool"
asc action=set_age_rating app_id=XXX
asc action=set_pricing_free app_id=XXX
asc action=upload_screenshots version_id=XXX display_type=iphone_67 screenshot_paths=["/path/1.png","/path/2.png"]
asc action=attach_build version_id=XXX build_id=YYY
asc action=submit_for_review app_id=XXX version_id=XXX

示例:发布一个应用程序(2个复合调用)

asc action=ship_app bundle_id=com.example.myapp
asc action=submit_for_review app_id=XXX version_id=XXX

示例:试飞(1次通话)

asc action=testflight_setup app_id=XXX build_id=YYY whats_new="Test the new onboarding flow" beta_description="Beta version of MyApp" feedback_email=dev@example.com

示例:添加测试人员

asc action=add_beta_tester app_id=XXX email_addr=tester@example.com first_name=Jane last_name=Doe

已知限制

  • 隐私营养标签 不能通过ASC API设置。您必须使用 App Store连接web UI.
  • 应用程序创建 不能通过API完成(Apple 403是端点)。在ASC web UI中注册应用程序。
  • IPA上传 通过以下方式完成 xcrun altool,而不是这个MCP(苹果的Transporter处理二进制上传,而不是REST API)。
  • 付费应用:只有 set_pricing_free 实施。付费等级需要按地区查找价格点。

许可证

麻省理工学院