MCP应用商店连接
](https://www.npmjs.com/package/mcp-appstore-connect) 
用于苹果应用商店连接API的MCP(模型上下文协议)服务器。此服务器使AI助手能够管理iOS/macOS应用程序、TestFlight、分析、评论、订阅等。
54工具 可用于全面的App Store Connect自动化。
特性
- 应用管理:列出应用程序、获取应用程序详细信息、查看应用程序版本
- TestFlight:管理版本、beta测试人员和beta组
- 客户评价:列出评论,回复评论
- 分析:访问销售报告、财务报告和分析数据
- 版本管理:创建版本、更新元数据、提交审核
- 订阅和IAP:管理订阅组、应用内购买和定价
- 元数据管理:更新应用程序描述、关键字、最新动态、应用程序名称、副标题、隐私政策
- 构建管理:设置版本构建,提交测试版审核,管理测试版本地化
- 应用评论:配置审核详细信息、年龄评级和分阶段发布
- 定价和可用性:设置应用程序定价、类别和区域可用性
先决条件
- 苹果开发者账户 具有App Store Connect访问权限
- API密钥 来自App Store Connect:
- 首选 App Store Connect - 导航至 用户和访问>集成>App Store Connect API - 点击 生成API密钥 (需要管理员角色) - 选择 管理员 或 应用程序管理器 访问 - 下载 .p8 私钥文件(您只能下载一次!) - 记下你的 发行者ID 和 密钥ID
所需的环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
APP_STORE_ISSUER_ID | 您在App Store Connect中的发卡机构ID(位于“用户和访问”>“集成”中) | 是 |
APP_STORE_KEY_ID | API密钥的密钥ID | 是 |
APP_STORE_PRIVATE_KEY | .p8文件的内容,换行符为 \n | 其中之一 |
APP_STORE_PRIVATE_KEY_PATH | .p8私钥文件的绝对路径 | 其中之一 |
安装和设置
克劳德代码
添加到您的Claude Code MCP设置中:
通过CLI:
claude mcp add-json appstore-connect '{
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}'或手动编辑 ~/.claude/settings.json:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}光标
添加到光标MCP设置(~/.cursor/mcp.json):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}帆板运动
添加到您的Windsurf MCP配置(~/.windsurf/mcp.json):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}克劳德桌面版
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}使用私钥内容而不是路径
如果您更喜欢直接使用密钥内容(适用于CI/CD或没有文件访问权限的环境):
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "mcp-appstore-connect"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\nMIGT...your-key-content...\n-----END PRIVATE KEY-----"
}
}
}
}从源码安装
git clone https://github.com/ahmetsina/mcp-appstore-connect.git
cd mcp-appstore-connect
npm install
npm run build然后使用MCP配置中的本地路径:
{
"mcpServers": {
"appstore-connect": {
"command": "node",
"args": ["/path/to/mcp-appstore-connect/dist/index.js"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXXX.p8"
}
}
}
}可用工具
应用程序(3个工具)
| 工具 | 说明 |
|---|---|
list_apps | 列出您帐户中的所有应用程序 |
get_app | 获取详细的应用程序信息 |
get_app_versions | 列出应用程序版本 |
试飞(6个工具)
| 工具 | 说明 |
|---|---|
list_builds | 列出试飞版本 |
get_build | 获取构建详细信息 |
list_beta_testers | 列出测试人员 |
add_beta_tester | 将测试人员添加到测试组 |
remove_beta_tester | 删除beta测试程序 |
list_beta_groups | 列出测试组 |
评论(4工具)
| 工具 | 说明 |
|---|---|
list_reviews | 获取客户评价 |
get_review | 获取具体评论 |
respond_to_review | 对评论的回复 |
delete_review_response | 删除响应 |
分析(5个工具)
| 工具 | 说明 |
|---|---|
list_analytics_report_requests | 列出分析请求 |
create_analytics_report_request | 创建分析请求 |
list_analytics_reports | 列出可用报告 |
get_sales_reports_info | 销售报告信息 |
get_finance_reports_info | 财务报告信息 |
版本(5个工具)
| 工具 | 说明 |
|---|---|
create_app_version | 创建新版本 |
update_app_version | 更新版本元数据 |
submit_for_review | 提交App Store审核 |
get_app_store_state | 检查审核状态 |
get_version_localization | 获取本地化信息 |
订阅和IAP(6个工具)
| 工具 | 说明 |
|---|---|
list_subscription_groups | 列出订阅组 |
list_subscriptions | 列出订阅 |
get_subscription | 获取订阅详细信息 |
list_in_app_purchases | 列出IAP |
get_in_app_purchase | 获取IAP详细信息 |
get_subscription_prices | 获取定价信息 |
元数据(6个工具)
| 工具 | 说明 |
|---|---|
update_version_localization | 更新描述、关键字、最新动态、促销文本、网址 |
create_version_localization | 为新语言创建本地化 |
get_app_info | 获取应用程序级别本地化的应用程序信息ID |
list_app_info_localizations | 列出本地化信息(姓名、副标题、隐私政策) |
update_app_info_localization | 更新应用程序名称、副标题、隐私政策 |
create_app_info_localization | 为新语言创建应用信息本地化 |
构建管理(9个工具)
| 工具 | 说明 |
|---|---|
update_build | 更新构建属性(导出合规性) |
set_build_for_version | 将构建与App Store版本相关联 |
submit_build_for_beta_review | 提交构建以供TestFlight测试版审查 |
get_beta_review_status | 获取测试版应用的评论提交状态 |
list_beta_build_localizations | 列出“测试内容”注释 |
update_beta_build_localization | 更新“测试内容”注释 |
create_beta_build_localization | 为新区域设置创建“要测试的内容” |
add_build_to_beta_group | 将构建添加到TestFlight组 |
remove_build_from_beta_group | 从测试组中删除内部版本 |
应用程序审查和提交(9个工具)
| 工具 | 说明 |
|---|---|
get_app_store_review_detail | 获取评论详细信息(联系方式、模拟账户、备注) |
update_app_store_review_detail | 更新审核详细信息以供提交 |
create_app_store_review_detail | 创建版本的审核详细信息 |
get_age_rating_declaration | 获取年龄分级设置 |
update_age_rating_declaration | 更新年龄分级内容声明 |
get_phased_release | 获取分阶段发布状态 |
create_phased_release | 创建分阶段发布(逐步推出) |
update_phased_release | 暂停、恢复或完成分阶段发布 |
delete_phased_release | 删除分阶段发布配置 |
定价和类别(8个工具)
| 工具 | 说明 |
|---|---|
list_app_categories | 列出可用的App Store类别 |
update_app_categories | 更新应用程序的主要/次要类别 |
list_territories | 列出所有有货币代码的地区 |
list_app_price_points | 列出某个地区应用程序的价格点 |
get_app_price_schedule | 获取当前价格表 |
set_app_price_schedule | 设置应用定价 |
get_app_availability | 获取应用可用的地区 |
set_app_availability | 按地区设置应用程序可用性 |
资源
服务器还公开MCP资源:
appstore://apps-所有应用程序列表appstore://apps/{appId}-特定应用程序详细信息appstore://apps/{appId}/reviews-应用程序评论
速率限制
App Store Connect API有费率限制:
- 每小时约3600个请求
- 每分钟约300个请求
服务器通过以下方式自动处理速率限制:
- 速率限制标头解析
- 429个错误的指数回退
- 接近极限时的警告日志
错误处理
服务器为以下对象提供详细的错误消息:
- 身份验证失败(凭据无效)
- 请求频率超限
- 无效请求(400个错误)
- 服务器错误(5xx,重试)
发展
# Run in development mode
npm run dev
# Type check
npm run typecheck
# Run tests
npm test
# Lint
npm run lint
# Build for production
npm run build故障排除
“缺少APP_STORE_ISSUER_ID”错误
确保在MCP配置中设置了所有必需的环境变量。通往你的道路 .p8 文件必须是 绝对路径.
“身份验证失败”错误
- 验证您的发卡机构ID和密钥ID是否正确
- 确保您的API密钥具有所需的权限(管理员或应用程序管理器)
- 检查你的
.p8文件有效,未被修改
“超出速率限制”错误
服务器将自动以指数回退方式重试。如果您一直达到速率限制,请减少请求的频率。
许可证
麻省理工学院
作者
Ahmet Sina Ustem(@阿赫梅茨纳)
