使用说明
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实施。付费等级需要按地区查找价格点。
许可证
麻省理工学院
