mcpField
A
app-store-connect-mcp

app-store-connect-mcp

本地服务
github.com/gjeltep开发工具143 周前更新

关于 app-store-connect-mcp

这是用于查询 App Store Connect 数据和管理 Xcode Cloud 构建的 MCP 服务。模块化工具覆盖评论、TestFlight 崩溃、分析报告及构建结果,并依据 Apple 的 OpenAPI 规范生成模型。

主要功能

  1. 01列出、搜索和查看评论
  2. 02查询 TestFlight 崩溃及日志
  3. 03获取分析报告并下载数据
  4. 04管理 Xcode Cloud 构建和测试结果
  5. 05根据 OpenAPI 生成 API 模型

适用场景

  1. 01按评分或版本查看客户反馈
  2. 02检查测试版崩溃报告和日志
  3. 03将应用分析数据下载为 TSV
  4. 04启动构建并检查结果

MCP 相关

通过 stdio 向兼容 MCP 的客户端提供 App Store Connect 和 Xcode Cloud 操作工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"gjeltep-app-store-connect": {
"command": "uvx",
"args": [
"app-store-connect-mcp"
],
"env": {
"APP_STORE_KEY_ID": "<APP_STORE_KEY_ID>",
"APP_STORE_ISSUER_ID": "<APP_STORE_ISSUER_ID>",
"APP_STORE_PRIVATE_KEY_PATH": "<APP_STORE_PRIVATE_KEY_PATH>",
"APP_STORE_APP_ID": "<APP_STORE_APP_ID>",
"APP_STORE_KEY_TYPE": "<APP_STORE_KEY_TYPE>",
"APP_STORE_SCOPE": "<APP_STORE_SCOPE>",
"APP_STORE_SUBJECT": "<APP_STORE_SUBJECT>"
}
}
}
}
启动命令uvx app-store-connect-mcp
需要配置的环境变量
APP_STORE_KEY_ID密钥App Store Connect API Key ID
APP_STORE_ISSUER_ID密钥App Store Connect Issuer ID
APP_STORE_PRIVATE_KEY_PATH密钥Path to the .p8 private key file for App Store Connect authentication
APP_STORE_APP_IDDefault App ID for operations (optional)
APP_STORE_KEY_TYPE密钥Key type: 'team' or 'individual' (defaults to 'team')
APP_STORE_SCOPEComma-separated list of OAuth scopes (optional)
APP_STORE_SUBJECTSubject for individual keys (optional)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiapp-store-connect-mcp0.3.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

App Store Connect MCP 服务

Test PyPI Python Version MCP Registry

与 App Store Connect 交流,管理你的应用。采用模块化工具、异步 I/O 和 OpenAPI 驱动的类型定义,让你的 Agent 随着 Apple 的发展始终保持准确。

有何不同
  • 感知规范:字段和枚举在运行时根据 Apple 的 OpenAPI 规范生成,减少规范偏差和意外中断。
  • 默认快速:异步 httpx 客户端、服务端筛选和智能分页,让负载保持精简。
  • 智能筛选:支持服务端和客户端筛选,并提供可链式调用的筛选引擎,以处理复杂查询。
  • 模块化领域:工具架构和处理程序清晰分离;无需修改核心即可添加新领域;针对大模型的发现和使用进行了优化
  • 原生支持 MCP:Stdio 传输、能力声明和工具连接方式均符合官方 SDK python‑sdk README。
安装
从 PyPI 安装
pip install app-store-connect-mcp
从源码安装
git clone https://github.com/gjeltep/app-store-connect-mcp.git
cd app-store-connect-mcp
uv pip install -e ".[dev]"
配置

设置以下环境变量:

# Required
export APP_STORE_KEY_ID="YOUR_KEY_ID"
export APP_STORE_ISSUER_ID="YOUR_ISSUER_ID"
export APP_STORE_PRIVATE_KEY_PATH="/path/to/AuthKey_XXXXX.p8"

# Optional
export APP_STORE_APP_ID="YOUR_APP_ID"
export APP_STORE_KEY_TYPE="team"  # or "individual"
使用

设置环境变量后运行(推荐):

app-store-connect-mcp

也可以在开发期间使用 .env 文件:

# Copy and configure .env file
cp .env.example .env
# Edit .env with your credentials

# Run with --env-file flag
app-store-connect-mcp-dev --env-file .env

# Validate configuration without starting server
app-store-connect-mcp-dev --env-file .env --validate-only

可与任何兼容 MCP 的客户端配合使用;服务会公布工具,并通过 stdio 处理调用。

生成或更新 API 模型

模型由 Apple 官方 OpenAPI 规范生成(自动从 Apple 的开发者网站获取)。 你可以使用 APP_STORE_CONNECT_OPENAPI_URL 指定本地 JSON 文件,覆盖默认来源。

uv pip install -e .[dev]
python scripts/generate_models.py
开发

有关开发环境设置、测试和贡献指南,请参阅 CONTRIBUTING.md。

工具

工具采用以资源为优先的命名约定(resource.verb),并附带类别标签以便发现。

应用工具
  • reviews.list:使用筛选条件(rating、territory、appStoreVersion)列出客户评价。
  • reviews.search:高级搜索,支持评分范围、地区匹配、日期范围和内容搜索。
  • reviews.get:获取评价的详细信息。
TestFlight 工具
  • crashes.list:使用筛选条件(device_model、os_version、app_platform、device_platform、build_id、tester_id)列出测试者提交的崩溃报告。
  • crashes.search:高级搜索,支持:
    • 服务端筛选(appPlatform、deviceModel、osVersion)
    • 后置筛选:操作系统版本范围(最小值/最大值)、设备型号子字符串(例如“iPhone 15”)和日期范围(created_since_days、created_after、created_before)。
  • crashes.get_by_id:获取特定崩溃报告的详细信息。
  • crashes.get_log:获取特定提交的原始崩溃日志文本。
分析工具

请求:

  • analytics_report_requests.list:列出应用的分析报告请求,支持按 access_type 筛选。
  • report_requests.create:为指定指标和时间范围创建新的分析报告请求。
  • report_requests.get:获取特定分析报告请求的详细信息。

报告:

  • report_requests.list_reports:列出请求中的可用报告,支持按 name、category 筛选。
  • reports.get:获取特定分析报告的信息。
  • reports.list_instances:列出报告实例,支持按 granularity、processing_date 筛选。
  • report_instances.get:获取特定报告实例的详细信息。

分段:

  • report_instances.list_segments:列出报告实例的数据分段。
  • report_segments.get:获取分段下载信息(校验和、URL、大小)。
  • report_instances.download_data:将分析报告数据下载为 TSV 文件。
Xcode Cloud 工具

产品和工作流:

  • products.list:列出所有 Xcode Cloud 产品,支持按 product_type 筛选。
  • products.get:获取特定产品的详细信息。
  • workflows.list:列出产品的工作流,支持按 is_enabled 筛选。
  • workflows.get:获取工作流的详细信息(注意:出于安全考虑,不支持创建、更新和删除操作)。

构建:

  • builds.list:列出产品或工作流的构建,支持按 execution_progress、completion_status、is_pull_request_build 筛选。
  • builds.get:获取构建的详细信息,包括状态、耗时和问题数量。
  • builds.start:为工作流启动新构建,可选指定分支/标签或拉取请求。

构建产物和结果:

  • artifacts.list:列出构建中可下载的产物。
  • issues.list:列出构建或工作流中的问题(错误、警告)。
  • test_results.list:列出测试结果,包括状态、耗时和失败消息。

SCM 集成:

  • scm_providers.list:列出已配置的 SCM 提供商(GitHub、GitLab、Bitbucket)。
  • repositories.list:列出 SCM 提供商的 Git 仓库。
  • pull_requests.list:列出仓库的拉取请求。
  • git_references.list:列出仓库的分支和标签。
架构
graph TD
    %% Entry Point
    subgraph "Entry Point"
        SERVER[server.py<br/>MCP stdio server]
    end

    %% Domain Implementations
    subgraph "Domain Handlers"
        TESTFLIGHT[testflight/handlers.py<br/>TestFlight crash<br/>management]
        APP[app/handlers.py<br/>App Store review<br/>management]
        ANALYTICS[analytics/handlers.py<br/>Analytics report<br/>management]
        XCODE_CLOUD[xcode_cloud/handlers.py<br/>Xcode Cloud CI/CD<br/>management]
    end

    %% Core Architecture
    subgraph "Core Components"
        subgraph "Core Framework"
            PROTOCOLS[protocols.py<br/>Abstract interfaces]
            BASE_HANDLER[base_handler.py<br/>Abstract base class]
            QUERY_BUILDER[query_builder.py<br/>Fluent query construction]
            FILTERS[filters.py<br/>Chainable filter engine]
            RESPONSE_HANDLER[response_handler.py<br/>API response processing]
            CONTAINER[container.py<br/>Dependency injection]
            ERRORS[errors.py<br/>Structured error handling]
        end

        subgraph "API Layer"
            ASC_CLIENT[app_store_connect.py<br/>App Store Connect client<br/>with JWT auth]
            HTTP_CLIENT[http_client.py<br/>Base HTTP client]
            MODELS[app_store_connect_models.py<br/>Auto-generated Pydantic<br/>models from OpenAPI spec]
        end

        subgraph "Data & Tools"
            OPENAPI[app_store_connect_api_openapi.json<br/>Apple's OpenAPI spec]
            GENERATE_SCRIPT[scripts/generate_models.py<br/>Model generation script]
        end
    end

    %% Vertical Stack Relationships
    SERVER -->|"routes to"| ANALYTICS
    ANALYTICS -->|"uses"| ASC_CLIENT

    %% Styling
    classDef entry fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    classDef core fill:#fff3e0,stroke:#e65100,stroke-width:2px
    classDef domain fill:#fce4ec,stroke:#880e4f,stroke-width:2px

    class SERVER entry
    class PROTOCOLS,BASE_HANDLER,QUERY_BUILDER,FILTERS,RESPONSE_HANDLER,CONTAINER,ERRORS,ASC_CLIENT,HTTP_CLIENT,MODELS,OPENAPI,GENERATE_SCRIPT core
    class TESTFLIGHT,APP,ANALYTICS,XCODE_CLOUD domain
致谢

基于官方 Model Context Protocol Python SDK 构建——请参阅 python‑sdk README 中的文档和示例。


如需参与,请参阅 CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。