App Store Connect MCP服务器

一个基于模型上下文协议(MCP)的服务器,用于与App Store Connect API交互,提供应用管理、Beta测试、设备管理和分析报告等功能。

  • by JoshuaRileyDev
  • TypeScript
  • 本地部署
  • 331 星标
  • 更新于
在 GitHub 查看 JoshuaRileyDev/app-store-connect-mcp-server

使用说明

App Store连接MCP服务器

模型上下文协议(MCP)服务器,用于与应用商店连接API交互。此服务器提供用于管理app Store Connect中的应用程序、测试人员、捆绑ID、设备、应用程序元数据和功能的工具。

概述

App Store Connect MCP服务器是一个全面的工具,弥合了人工智能和苹果App Store Connect生态系统之间的差距。该服务器基于模型上下文协议(MCP)构建,使开发人员能够通过对话式人工智能直接与他们的App Store Connect数据进行交互,使应用管理、测试和分析比以往任何时候都更容易访问。

主要优势:

  • 🤖 AI驱动的应用程序管理:使用自然语言管理您的iOS和macOS应用程序
  • 📊 综合分析:访问详细的应用程序性能、销售和用户参与度数据
  • 👥 简化Beta测试:高效管理测试组和测试人员
  • 🌍 本地化管理:更新所有语言的应用程序描述、关键字和元数据
  • 🔧 开发人员工具集成:列出Xcode项目方案并与开发工作流集成
  • 🔐 安全认证:使用官方App Store Connect API和JWT身份验证
  • 🚀 实时数据:直接从Apple的系统访问最新信息

这是给谁的:

  • iOS/macOS开发人员在App Store Connect中管理应用程序
  • 开发团队协调beta测试项目
  • 产品经理分析应用程序性能和用户参与度
  • 管理应用元数据和本地化的营销团队
  • DevOps工程师自动化应用商店工作流程
  • 任何希望简化苹果开发者体验的人

此服务器将复杂的App Store Connect操作转换为简单的对话命令,无论您是在检查应用程序分析、管理beta测试人员、更新应用程序描述,还是探索您的开发管道。

特性

  • 应用程序管理

    • 列出所有应用程序
    • 获取详细的应用程序信息
    • 查看应用元数据和关系
  • Beta Testing

    • 列出测试组
    • 列出测试人员
    • 在组中添加/删除测试人员
    • 管理beta测试配置
    • 查看带有屏幕截图和设备信息的测试版反馈
  • 应用商店版本本地化 ✨ 新

    • 使用发布计划创建新的应用商店版本
    • 列出应用程序的所有应用商店版本
    • 列出应用程序版本的所有本地化
    • 获取特定的本地化详细信息
    • 更新应用程序描述、关键字和促销文本
    • 管理营销和支持URL
    • 更新发布的“最新动态”文本
  • 捆绑ID管理

    • 列出捆绑包ID
    • 创建新的捆绑包ID
    • 获取捆绑包ID详细信息
    • 启用/禁用功能
  • 设备管理

    • 列出已注册的设备
    • 按设备类型、平台、状态筛选
    • 查看设备详细信息
  • 用户管理

    • 列出团队成员
    • 查看用户角色和权限
    • 按角色和访问权限筛选用户
  • 分析和报告

    • 为应用程序创建分析报告请求
    • 下载App Store参与度、商务和使用分析
    • 访问性能和框架使用情况报告
    • 下载销售和趋势报告(每日、每周、每月、每年)
    • 按地区下载财务报告
  • Xcode开发工具

    • 列出Xcode项目和工作区中的可用方案
    • 与开发工作流程和CI/CD管道集成

安装

使用Smithery

要自动安装Claude Desktop的App Store Connect服务器,请执行以下操作:

npx @smithery/cli install appstore-connect-mcp-server --client claude

手动安装

npm install @joshuarileydev/app-store-connect-mcp-server

配置

将以下内容添加到您的Claude Desktop配置文件中:

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

视窗

%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": [
        "-y",
        "appstore-connect-mcp-server"
      ],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_P8_PATH": "/path/to/your/auth-key.p8",
        "APP_STORE_CONNECT_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER_OPTIONAL"
      }
    }
  }
}

认证

所需配置

  1. 从生成App Store Connect API密钥 应用商店连接
  2. 下载.p8私钥文件
  3. 记下您的密钥ID和发卡机构ID
  4. 在配置中设置所需的环境变量:
    • APP_STORE_CONNECT_KEY_ID:您的API密钥ID
    • APP_STORE_CONNECT_ISSUER_ID:您的发卡机构ID
    • APP_STORE_CONNECT_P8_PATH:.p8私钥文件的路径

销售和财务报告的可选配置

要启用销售和财务报告工具,您还需要:

  • APP_STORE_CONNECT_VENDOR_NUMBER:您在App Store Connect上的供应商编号

备注:销售和财务报告工具(download_sales_report, download_finance_report)仅当配置了供应商编号时才可用。您可以在App Store Connect的“销售和趋势”或“付款和财务报告”下找到您的供应商编号。

完整的工具参考

📱 应用管理工具

list_apps

获取App Store Connect中所有应用程序的列表。

参数:

  • limit (可选):要返回的最大应用程序数(默认值:100,最大值:200)
  • bundleId (可选):按捆绑标识符筛选

例子:

"List all my apps"
"Show me apps with bundle ID com.example.myapp"
"Get the first 50 apps"

get_app_info

获取特定应用程序的详细信息。

参数:

  • appId (必填):应用程序的ID
  • include (可选):要包含的相关资源(例如appClips、appInfos、appStoreVersions、betaGroup、内部版本)

例子:

"Get info for app ID 123456789"
"Show me app 123456789 with beta groups and builds"
"Get detailed information about my app including app store versions"

👥 Beta测试工具

list_beta_groups

列出所有测试组(内部和外部)。

参数:

  • limit (可选):返回的最大组数(默认值:100,最大值:200)
  • appId (可选):按应用ID筛选

例子:

"Show all beta groups"
"List beta groups for app 123456789"
"Get the first 20 beta groups"

list_group_testers

列出特定测试组中的测试人员。

参数:

  • groupId (必填):测试组的ID
  • limit (可选):要返回的测试人员的最大数量(默认值:100,最大值:200)

例子:

"List all testers in group ABC123"
"Show me the first 50 testers in beta group ABC123"

add_tester_to_group

将新测试人员添加到测试组。

参数:

  • groupId (必填):测试组的ID
  • email (必填):测试人员的电子邮件地址
  • firstName (可选):测试人员的名字
  • lastName (可选):测试人员的姓氏

例子:

"Add john@example.com to beta group ABC123"
"Add John Smith (john@example.com) to group ABC123"

remove_tester_from_group

从测试组中删除测试人员。

参数:

  • groupId (必填):测试组的ID
  • testerId (必填):测试人员的ID

例子:

"Remove tester XYZ789 from group ABC123"
"Delete tester XYZ789 from beta group ABC123"

list_beta_feedback_screenshots

列出测试版反馈屏幕截图提交。

参数:

  • appId (可选):按应用ID筛选
  • bundleId (可选):按捆绑标识符筛选
  • buildId (可选):按构建ID筛选
  • limit (可选):最大结果(默认值:100)
  • includeBuilds (可选):包括构建信息
  • includeTesters (可选):包括测试仪信息

例子:

"Show beta feedback screenshots for app 123456789"
"List feedback screenshots for bundle ID com.example.app"
"Get feedback with tester info for build XYZ"

get_beta_feedback_screenshot

获取有关特定测试版反馈屏幕截图的详细信息。

参数:

  • feedbackId (必填):反馈的ID
  • includeBuilds (可选):包括构建信息
  • includeTesters (可选):包括测试仪信息
  • downloadScreenshot (可选):下载截图图像(默认值:true)

例子:

"Get feedback screenshot FEEDBACK123"
"Show me feedback FEEDBACK123 with tester details"
"Download screenshot from feedback FEEDBACK123"

🌍 App Store版本本地化工具

create_app_store_version

为应用创建新的应用商店版本。

参数:

  • appId (必填):应用程序的ID
  • platform (必填):平台(IOS、MAC_OS、TV_OS、VISION_OS)
  • versionString (必填):格式为X.Y或X.Y.Z的版本字符串(例如“1.0”或“1.0.0”)
  • copyright (可选):此版本的版权文本
  • releaseType (可选):应用程序应如何发布(手动、事后批准、计划)
  • earliestReleaseDate (可选):ISO 8601日期字符串(当releaseType为SCHEDULED时需要)
  • buildId (可选):与此版本关联的版本ID

例子:

"Create iOS version 2.0.0 for app 123456789"
"Create macOS version 1.5.0 for app 123456789 with manual release"
"Create scheduled iOS version 2.1.0 for app 123456789 releasing on 2024-02-01"
"Create version 1.2.0 for app 123456789 with build BUILD456 and copyright '2024 My Company'"

list_app_store_versions

获取特定应用的所有应用商店版本。

参数:

  • appId (必填):应用程序的ID
  • limit (可选):要返回的最大版本数(默认值:100,最大值:200)
  • filter (可选):过滤器选项
    • platform:按平台筛选(IOS、MAC_OS、TV_OS)
    • versionString:按版本字符串筛选(例如“1.0.0”)
    • appStoreState:按状态筛选(例如,READY_FOR_SALE、PREPARE_FOR_SUBMISSION)

例子:

"List all versions for app 123456789"
"Show iOS versions for app 123456789"
"Find version 2.0.0 for app 123456789"
"List versions in review for app 123456789"

list_app_store_version_localizations

获取特定应用商店版本的所有本地化。

参数:

  • appStoreVersionId (必填):应用商店版本的ID
  • limit (可选):最大本地化次数(默认值:100,最大值:200)

例子:

"List all localizations for app version VERSION123"
"Show me language versions for app store version VERSION123"

get_app_store_version_localization

获取特定本地化的详细信息。

参数:

  • localizationId (必填):本地化的ID

例子:

"Get localization details for LOCALE123"
"Show me the French localization LOCALE123"

update_app_store_version_localization

更新应用商店版本本地化中的特定字段。

参数:

  • localizationId (必填):本地化的ID
  • field (必填):要更新的字段(描述、关键字、营销URL、促销文本、支持URL、新增内容)
  • value (必填):字段的新值

例子:

"Update description for localization LOCALE123 to 'Amazing new app description'"
"Change keywords for LOCALE123 to 'productivity, tasks, organize'"
"Update what's new text for LOCALE123 to 'Bug fixes and performance improvements'"

🔤 捆绑ID管理工具

create_bundle_id

注册新的捆绑包ID以进行应用程序开发。

参数:

  • identifier (必填):捆绑包ID字符串(例如,“com.example.app”)
  • name (必填):捆绑包ID的名称
  • platform (必填):平台(IOS、MAC_OS或UNIVERSAL)
  • seedId (可选):您团队的种子ID

例子:

"Create bundle ID com.mycompany.newapp for iOS named 'My New App'"
"Register universal bundle ID com.example.app called 'Example App'"

list_bundle_ids

查找并列出注册到您团队的捆绑包ID。

参数:

  • limit (可选):最大结果(默认值:100,最大值:200)
  • sort (可选):排序顺序(名称、-名称、平台、-平台、标识符、-标识符)
  • filter (可选):按标识符、名称、平台或种子ID筛选
  • include (可选):包括相关资源(配置文件、bundleIdCapabilities、应用程序)

例子:

"List all bundle IDs"
"Show iOS bundle IDs sorted by name"
"Find bundle IDs containing 'example'"

get_bundle_id_info

获取特定捆绑包ID的详细信息。

参数:

  • bundleIdId (必填):捆绑ID的ID
  • include (可选):要包括的相关资源
  • fields (可选):要包含的特定字段

例子:

"Get info for bundle ID BUNDLE123"
"Show bundle ID BUNDLE123 with capabilities"

enable_bundle_capability

启用捆绑包ID的功能。

参数:

  • bundleIdId (必填):捆绑ID的ID
  • capabilityType (必填):功能类型(例如,推送通知、ICLOUD、游戏中心)
  • settings (可选):特定功能设置

例子:

"Enable push notifications for bundle ID BUNDLE123"
"Add iCloud capability to bundle BUNDLE123"
"Enable Game Center for bundle ID BUNDLE123"

disable_bundle_capability

禁用捆绑包ID的功能。

参数:

  • capabilityId (必填):禁用功能的ID

例子:

"Disable capability CAP123"
"Remove capability CAP123 from bundle ID"

📱 设备管理工具

list_devices

获取已注册到您团队的所有设备的列表。

参数:

  • limit (可选):最大结果(默认值:100,最大值:200)
  • sort (可选):排序顺序(名称、平台、状态、udid、deviceClass、型号、addedDate)
  • filter (可选):按名称、平台、状态、udid或deviceClass筛选
  • fields (可选):要包含的特定字段

例子:

"List all devices"
"Show enabled iOS devices"
"Find devices with name containing 'John'"
"List iPhones sorted by date added"

👤 用户管理工具

list_users

获取您的App Store Connect团队中的所有用户列表。

参数:

  • limit (可选):最大结果(默认值:100,最大值:200)
  • sort (可选):排序顺序(用户名、名字、姓氏、角色)
  • filter (可选):按用户名或角色筛选
  • fields (可选):要包含的特定字段
  • include (可选):包括可见应用程序关系

例子:

"List all team members"
"Show users with admin role"
"Find developers sorted by last name"
"List users with their visible apps"

📊 分析和报告工具

create_analytics_report_request

为应用程序创建新的分析报告请求。

参数:

  • appId (必填):应用程序ID
  • accessType (必填):分析类型(ONGOING或ONE_TIME_SNAPSHOT)
  • frequency (可选):正在进行的报告的报告频率(每日、每周、每月)
  • startDate (可选):开始日期(YYYY-MM-DD)
  • endDate (可选):结束日期(YYYY-MM-DD)

例子:

"Create daily analytics report for app 123456789"
"Generate one-time snapshot report for app 123456789 from 2024-01-01 to 2024-01-31"

list_analytics_reports

获取请求的可用分析报告。

参数:

  • reportRequestId (必填):报告请求ID
  • limit (可选):最大结果(默认值:100,最大值:200)
  • filter (可选):按类别、名称或日期筛选

例子:

"List reports for request REQ123"
"Show app usage reports for request REQ123"

list_analytics_report_segments

获取特定分析报告的细分。

参数:

  • reportId (必填):分析报告ID
  • limit (可选):最大结果(默认值:100,最大值:200)

例子:

"List segments for report REPORT123"
"Get download URLs for report REPORT123"

download_analytics_report_segment

从分析报告段下载数据。

参数:

  • url (必填):分段下载URL

例子:

"Download data from https://api.appstoreconnect.apple.com/..."

💰 销售和财务报告工具(需要供应商编号)

download_sales_report

下载销售和趋势报告。

参数:

  • frequency (必填):报告频率(每日、每周、每月、每年)
  • reportDate (必填):日期格式正确
  • reportType (必填):报告类型(销售、订阅、订阅_事件、订阅人、新天地、预购)
  • reportSubType (必填):总结或详细
  • vendorNumber (可选):覆盖默认供应商编号
  • version (可选):报告版本(默认:1_0)

例子:

"Download daily sales summary for 2024-01-15"
"Get monthly subscription detailed report for 2024-01"
"Download yearly sales summary for 2023"

download_finance_report

下载特定地区的财务报告。

参数:

  • reportDate (必填):报告日期(YYYY-MM)
  • regionCode (必填):地区代码(例如,“Z1”代表全球)
  • vendorNumber (可选):覆盖默认供应商编号

例子:

"Download finance report for January 2024 worldwide"
"Get finance report for 2024-01 region Z1"

🔧 Xcode开发工具

list_schemes

列出Xcode项目或工作区中的所有可用方案。

参数:

  • projectPath (必需):.xcodeproj或.xcworkspace文件的路径

例子:

"List schemes in /Users/john/MyApp/MyApp.xcodeproj"
"Show available schemes for MyApp.xcworkspace"

错误处理

服务器为以下对象实现了正确的错误处理:

  • 身份验证无效
  • 缺少必要参数
  • API费率限制
  • 网络问题
  • 无效操作

发展

# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

# Run type checking
npm run type-check

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

相关链接