使用说明
Apple App Store Connect API和App Store Server API的MCP服务器
通过模型上下文协议,让克劳德和其他人工智能助手完全访问您的iOS应用程序。
这是什么?
mcp-apple-store 是一个 模型上下文协议(MCP)服务器 它将像克劳德这样的人工智能助手直接连接到苹果的开发者API。配置后,您可以使用纯英语管理iOS和macOS应用程序,无需脚本或手动API调用。
它包含两个官方的Apple API:
- 应用商店连接API --管理应用程序、TestFlight构建、配置文件、应用内购买、评论、分析和提交。
- 应用商店服务器API(StoreKit 2) --验证交易、检查订阅状态、查找订单和检索退款历史。
这两个API都公开为 69+MCP工具,每个都可以被任何兼容MCP的客户端发现和调用。
特性
- 69+MCP工具 涵盖完整的App Store Connect和App Store Server API表面
- 交易和订阅管理 --验证购买、检查活动订阅、检索退款历史记录
- 完整的应用生命周期控制 --创建版本、附加构建、提交审查、管理分阶段发布
- 试飞自动化 --列出构建,管理beta测试人员和beta组
- 资源调配管理 --证书、配置文件、捆绑包ID和设备注册
- 应用内购买管理 --创建和管理IAP、订阅组和订阅
- 客户审核处理 --列出、回复和更新审核回复
- 销售和财务报告 --每日销售、订阅报告和财务数据
- 应用内事件 --创建、更新和发布时间敏感事件
- 安装向导 --交互式CLI,可在几分钟内配置凭据
- 内置速率限制 -遵守苹果API的限制,自动重试和指数退避
- 类型安全 --对所有输入进行Zod验证的完整TypeScript
支持的API和工具
应用商店服务器API(StoreKit 2)
| 工具 | 说明 |
|---|---|
get_subscription_status |
获取交易的订阅状态 |
check_active_subscription |
检查用户是否有活动订阅 |
get_subscription_by_product |
按产品ID获取订阅 |
get_transaction_history |
获取用户的完整交易历史记录 |
get_transaction_info |
获取特定交易的详细信息 |
lookup_order |
按订单ID查找订单 |
get_refund_history |
获取用户的退款历史记录 |
verify_transaction |
验证交易的真实性 |
send_consumption_info |
将消费数据发送到Apple |
request_test_notification |
触发测试服务器通知 |
应用商店连接API
Apps (6 tools)
| 工具 | 说明 |
|---|---|
connect_list_apps |
列出您帐户中的所有应用程序 |
connect_get_app |
获取应用程序详细信息 |
connect_list_app_versions |
列出应用程序版本 |
connect_get_app_info |
通过本地化获取应用程序信息 |
connect_create_app |
创建新应用程序 |
connect_update_app |
更新应用程序设置 |
TestFlight (5 tools)
| 工具 | 说明 |
|---|---|
connect_list_builds |
列表构建 |
connect_get_build |
获取构建详细信息 |
connect_list_beta_testers |
列出测试人员 |
connect_add_beta_tester |
添加测试人员 |
connect_list_beta_groups |
列出测试组 |
Provisioning (7 tools)
| 工具 | 说明 |
|---|---|
connect_list_certificates |
列出签名证书 |
connect_list_profiles |
列出配置配置文件 |
connect_list_bundle_ids |
列出捆绑包ID |
connect_list_devices |
列出已注册的设备 |
connect_register_device |
注册新设备 |
connect_create_bundle_id |
创建捆绑包ID |
connect_enable_capability |
启用应用程序功能 |
In-App Purchases (11 tools)
| 工具 | 说明 |
|---|---|
connect_list_iap |
列出应用内购买 |
connect_get_iap |
获取IAP详细信息 |
connect_create_iap |
创建应用内购买 |
connect_delete_iap |
删除应用内购买 |
connect_list_subscription_groups |
列出订阅组 |
connect_get_subscription_group |
获取订阅组详细信息 |
connect_create_subscription_group |
创建订阅组 |
connect_delete_subscription_group |
删除订阅组 |
connect_create_subscription |
创建订阅 |
connect_delete_subscription |
删除订阅 |
connect_create_iap_localization |
创建IAP本地化 |
Customer Reviews (7 tools)
| 工具 | 说明 |
|---|---|
connect_list_reviews |
列出客户评论 |
connect_get_review |
获取评论详细信息 |
connect_get_review_summary |
获取评论摘要 |
connect_get_unanswered_reviews |
获取未回复的评论 |
connect_respond_to_review |
回复评论 |
connect_update_review_response |
更新审核回复 |
connect_delete_review_response |
删除评论回复 |
Analytics (4 tools)
| 工具 | 说明 |
|---|---|
connect_get_sales_report |
获取销售报告 |
connect_get_daily_sales |
获取每日销售数据 |
connect_get_subscription_report |
获取订阅报告 |
connect_get_finance_report |
获取财务报告 |
In-App Events (8 tools)
| 工具 | 说明 |
|---|---|
connect_list_events |
列出应用内事件 |
connect_get_event |
获取活动详细信息 |
connect_create_event |
创建应用内事件 |
connect_update_event |
更新事件 |
connect_delete_event |
删除事件 |
connect_create_event_localization |
创建事件本地化 |
connect_get_active_events |
获取活动事件 |
connect_get_draft_events |
获取活动草稿 |
App Submission (13 tools)
| 工具 | 说明 |
|---|---|
connect_list_versions |
列出应用程序版本 |
connect_get_version |
获取版本详细信息 |
connect_create_version |
创建新版本 |
connect_update_version |
更新版本 |
connect_delete_version |
删除版本 |
connect_submit_for_review |
提交App Store审核 |
connect_cancel_submission |
取消提交 |
connect_attach_build |
将内部版本附加到版本 |
connect_update_version_localization |
更新版本本地化 |
connect_set_review_info |
设置审核信息 |
connect_create_phased_release |
创建分阶段发布 |
connect_update_phased_release |
更新分阶段发布 |
connect_get_submission_status |
获取提交状态 |
需求
- Node.js 18+
- Apple 开发者计划 会员资格
- App Store Connect API密钥 (具有适当的角色权限)
API密钥权限
| 权限 | 需要 |
|---|---|
| 应用程序管理器 | 应用程序、版本、提交 |
| 开发人员 | TestFlight,构建 |
| 管理员 | 用户,配置 |
| 财务 | 销售报告、财务报告 |
安装
# Clone the repository
git clone https://github.com/cristianoaredes/mcp-apple-store.git
cd mcp-apple-store
# Install dependencies
npm install
# Run the interactive setup wizard
npm run setup
# Build the project
npm run build
设置向导将引导您在App Store Connect中创建API密钥,并编写 .env 并自动配置Claude Desktop或Claude Code。
手动配置
如果您想跳过向导,请创建一个 .env 项目根目录中的文件:
# App Store Connect API credentials (required)
APP_STORE_ISSUER_ID=your-issuer-id
APP_STORE_KEY_ID=your-key-id
APP_STORE_PRIVATE_KEY_PATH=./keys/AuthKey_XXXXXXXX.p8
# Your app identifiers (required)
APP_BUNDLE_ID=com.yourcompany.yourapp
APP_APPLE_ID=1234567890
# Environment: Production or Sandbox (optional, defaults to Sandbox)
APP_STORE_ENVIRONMENT=Sandbox
MCP客户端配置
克劳德桌面
将以下内容添加到您的 claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"apple-store": {
"command": "node",
"args": ["/path/to/mcp-apple-store/dist/index.js"],
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "/path/to/AuthKey.p8",
"APP_BUNDLE_ID": "com.yourcompany.yourapp",
"APP_APPLE_ID": "1234567890",
"APP_STORE_ENVIRONMENT": "Sandbox"
}
}
}
}
克劳德代码(CLI)
{
"mcpServers": {
"apple-store": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/mcp-apple-store",
"env": {
"APP_STORE_ISSUER_ID": "your-issuer-id",
"APP_STORE_KEY_ID": "your-key-id",
"APP_STORE_PRIVATE_KEY_PATH": "./keys/AuthKey.p8",
"APP_BUNDLE_ID": "com.yourcompany.yourapp",
"APP_APPLE_ID": "1234567890"
}
}
}
}
用法示例
一旦MCP服务器运行并连接到您的AI客户端,您就可以使用简单的英语与Apple的API进行交互。
列出您的应用程序:
List all my apps in App Store Connect
检查订阅状态:
Check if the subscription with transaction ID 1000000123456789 is active
创建订阅组:
Create a subscription group called "Premium" for app 6755709202
创建订阅:
Create a monthly subscription called "Premium Monthly" with product ID
"com.app.premium_monthly" in subscription group 21841364
获取销售报告:
Get the sales report for the last 7 days
注册测试设备:
Register my iPhone with UDID 00008101-001234567890001E as "Dev iPhone 15"
回复评论:
List unanswered reviews for my app and respond to the most recent one-star review
提交审核:
Submit version 2.1.0 of my app for App Store review
安全
- 永远不要提交API密钥 --the
keys/目录为gitignored。 - 使用环境变量 --the
.env文件也被gitignored。 - 最小特权 -只使用您实际需要的角色创建API密钥。
- 定期旋转按键尤其是在生产中。
发展
# Type checking
npm run typecheck
# Run tests
npm test
npm run test:run
npm run test:coverage
# Lint
npm run lint
# Watch mode
npm run dev
故障排除
“指定的资源不存在” 这通常意味着API URL格式错误。请确保运行的是最新版本。
应用创建时“403禁止” 苹果限制了某些帐户的程序化应用程序创建。首先在app Store Connect中手动创建应用程序,然后将此服务器用于其他所有操作。
速率限制 服务器包含内置的速率限制(Connect API每小时3600次请求)。超过此阈值的请求将以指数回退自动重试。
JWT错误
- 验证您的发卡机构ID(App Store Connect>用户和访问>集成>密钥)
- 确认您的密钥ID与下载的密钥ID匹配
.p8文件 - 检查一下
APP_STORE_PRIVATE_KEY_PATH指向可读文件
贡献
欢迎捐款。请阅读 贡献.md 作为指导方针。
- 分叉存储库
- 创建要素分支:
git checkout -b feature/my-feature - 提交您的更改:
git commit -m "add my feature" - 推到分支:
git push origin feature/my-feature - 打开拉取请求
看 ROADMAP.md 对于计划中的功能和良好的首次贡献。
许可证
麻省理工学院——见 许可证 了解详情。
专为苹果开发者社区打造。
通过 克里斯蒂亚诺·阿雷德斯
