App Store Connect API管理工具

用于管理Apple App Store Connect API的MCP服务器,支持iOS/macOS应用、TestFlight、分析、评论、订阅等的自动化管理。

  • by ahmetsina
  • TypeScript
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 ahmetsina/mcp-appstore-connect

使用说明

MCP应用商店连接

用于苹果应用商店连接API的MCP(模型上下文协议)服务器。此服务器使AI助手能够管理iOS/macOS应用程序、TestFlight、分析、评论、订阅等。

54工具 可用于全面的App Store Connect自动化。

特性

  • 应用管理:列出应用程序、获取应用程序详细信息、查看应用程序版本
  • TestFlight:管理版本、beta测试人员和beta组
  • 客户评价:列出评论,回复评论
  • 分析:访问销售报告、财务报告和分析数据
  • 版本管理:创建版本、更新元数据、提交审核
  • 订阅和IAP:管理订阅组、应用内购买和定价
  • 元数据管理:更新应用程序描述、关键字、最新动态、应用程序名称、副标题、隐私政策
  • 构建管理:设置版本构建,提交测试版审核,管理测试版本地化
  • 应用评论:配置审核详细信息、年龄评级和分阶段发布
  • 定价和可用性:设置应用程序定价、类别和区域可用性

先决条件

  1. 苹果开发者账户 具有App Store Connect访问权限
  2. 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(@阿赫梅茨纳)