Skip to main content
Glama

Обзор

asc-mcp — это MCP-сервер на Swift, который подключает локальный macOS MCP-клиент к App Store Connect API. Он предоставляет 502 инструмента в 33 доменах инструментов App Store + 2 основных доменах, что позволяет автоматизировать процессы релизов iOS и macOS с помощью естественного языка.

Примеры конфигурации включены для Codex, Claude Code, Claude Desktop, Gemini CLI, VS Code с GitHub Copilot, Continue, Cursor и Devin Desktop (ранее Windsurf). Конфигурация клиентов документирована; CI релиза проверяет установку, инициализацию MCP и обнаружение инструментов на macOS, а не запускает каждый сторонний клиент.

Впервые здесь? Следуйте разделу Быстрый старт. Остальные разделы — справочный материал по расширенной конфигурации, выбору инструментов и для контрибьюторов.

Ключевые возможности

  • Релиз и метаданные — версии, локализации, сборки, отправка на ревью, поэтапное развертывание и Xcode Cloud

  • TestFlight и загрузки — бета-группы, тестировщики, обратная связь, рекрутинг, доставка сборок, обработка и соответствие экспортным требованиям

  • Монетизация — покупки внутри приложения, подписки, цены, доступность, коды предложений и промо-предложения

  • Маркетинг — скриншоты, превью, кастомные страницы продукта, оптимизация страницы продукта и продвигаемые покупки

  • Аккаунты и провижининг — несколько команд App Store Connect, пользователи, Bundle ID, устройства, сертификаты, профили и возможности

  • Обратная связь и операции — отзывы клиентов, вебхуки, декларации доступности, аналитика, метрики и диагностика

  • Безопасная автоматизация — режим только для чтения, защитные подтверждения, строгая пагинация и рекомендации по восстановлению после мутаций

  • Проверяемое покрытие API — версионируемый контракт Apple OpenAPI и проверки расхождений во время релиза

Related MCP server: App Store Connect MCP

Поддержка платформ

asc-mcp — это локальный stdio-сервер: MCP-клиент запускает его на том же компьютере. Наличие клиента для Linux или Windows не делает этот Swift-сервер кроссплатформенным.

Окружение

Статус

Примечания

macOS 15.6+ с Xcode 26.x

Рекомендуется

CI релиза использует runner macOS 15 от GitHub с Xcode 26.2

macOS 14.0-15.5

Только заявленный deployment target

Сборка и выполнение не проверены; может потребоваться отдельно установленный инструментарий Swift 6.2+

Linux

Пока не поддерживается

Работа по переносу и Linux CI не завершены

Windows

Не поддерживается

Текущие зависимости исходного кода и транспорт Swift MCP stdio несовместимы с Windows

См. системные требования Apple к Xcode для версий macOS, поддерживаемых каждым выпуском Xcode.

Веб- и облачные сессии не наследуют автоматически локальную конфигурацию MCP. Запускайте MCP-клиент локально на совместимом Mac или используйте функцию клиента, которая явно сохраняет выполнение на этом Mac.

Быстрый старт

Рекомендуемая настройка сохраняет учетные данные App Store Connect один раз в приватном локальном файле. После этого MCP-клиентам нужен только путь к исполняемому файлу asc-mcp.

1. Установите asc-mcp

brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6
~/.mint/bin/asc-mcp --version

2. Создайте ключ API App Store Connect

  1. Откройте App Store Connect → Пользователи и доступ → Интеграции → Ключи команд.

  2. Создайте ключ с ролью с минимальными привилегиями, которая покрывает ваш процесс. Роль App Manager или Admin нужна только тогда, когда соответствующие операции этого требуют.

  3. Скачайте файл .p8. Apple позволяет скачать его только один раз.

  4. Скопируйте Key ID и Issuer ID.

3. Сохраните учетные данные локально

Создайте приватные каталоги конфигурации, затем переместите скачанный файл .p8 в ~/.keys/. Замените исходный путь и имя файла во второй команде:

mkdir -p ~/.config/asc-mcp ~/.keys
chmod 700 ~/.config/asc-mcp ~/.keys
mv /path/to/downloaded/AuthKey_XXXXXXXXXX.p8 ~/.keys/

Создайте ~/.config/asc-mcp/companies.json:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "XXXXXXXXXX",
      "issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8"
    }
  ]
}

Замените /Users/you на фактический путь к вашему домашнему каталогу. Храните оба файла вне репозитория и ограничьте доступ:

chmod 600 ~/.config/asc-mcp/companies.json
chmod 600 /Users/you/.keys/AuthKey_XXXXXXXXXX.p8

[!CAUTION] Никогда не коммитьте companies.json, ключ .p8 или сырые учетные данные в Git. Немедленно отзовите ключ App Store Connect, если он был раскрыт.

4. Подключите ваш MCP-клиент

Выберите один клиент. Вам не нужно настраивать каждый клиент.

Codex

codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list

Claude Code

claude mcp add \
  --transport stdio \
  --scope user \
  asc-mcp \
  -- ~/.mint/bin/asc-mcp

claude mcp get asc-mcp
claude mcp list

Для Claude Desktop, Gemini CLI, VS Code, Continue, Cursor и Devin Desktop используйте готовые примеры в разделе Настройка MCP-клиента.

5. Попробуйте

Перезапустите GUI-клиент после изменения его конфигурации, откройте список его MCP-инструментов и спросите:

List my App Store Connect apps.

Если подключение или запрос не удается, см. раздел Устранение неполадок.

Установка

Mint на macOS (рекомендуется)

Mint устанавливает закрепленный релиз из исходного кода и сохраняет исполняемый файл в ~/.mint/bin/asc-mcp.

brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6

Обновите или переустановите закрепленный релиз:

mint install zelentsov-dev/asc-mcp@v4.1.6 --force

Пользователям стабильных версий следует устанавливать тег версии. Установка main или develop предназначена только для мейнтейнеров и предрелизного тестирования.

Сборка из исходного кода

Используйте Xcode 26.x на совместимой версии macOS или установите отдельный инструментарий Swift 6.2+.

git clone https://github.com/zelentsov-dev/asc-mcp.git
cd asc-mcp
swift build -c release

Исполняемый файл — .build/release/asc-mcp. Если вы копируете его в другое место, также скопируйте соседний ресурсный бандл:

cp .build/release/asc-mcp /usr/local/bin/asc-mcp
cp -R .build/release/asc-mcp_asc-mcp.bundle /usr/local/bin/

Бандл содержит версионируемый контракт операций OpenAPI, используемый проверками релиза.

Обновление с более старой версии

Версия 4.1 сохраняет все существующие имена инструментов, обязательные входные данные, ключи проекции и форму массивов. Инструменты чтения Xcode Cloud теперь отклоняют недокументированные аргументы и более строго проверяют возвращаемые ссылки, пагинацию, происхождение связей и включенные ресурсы. Новые поля проекции *Present различают массивы, опущенные Apple, и присутствующие пустые массивы, в то время как устаревшие поля массивов остаются массивами. Недавно добавленные вложенные входные параметры *_limit должны использоваться вместе с соответствующим значением include, а последующие вызовы должны повторять исходную область запроса без изменений. Новые инструменты удаления продуктов и процессов по умолчанию используют безопасный предпросмотр и требуют последней квитанции предпросмотра и точного подтверждения инвентаря перед окончательным удалением.

Версия 4 сохраняет все существующие имена инструментов и фильтры воркеров, но деструктивные вызовы Marketing и вложений к обзорам теперь требуют точный ID подтверждения перед любым запросом к Apple:

Существующий инструмент

Новое обязательное подтверждение

custom_pages_delete

confirm_page_id

ppo_delete_experiment

confirm_experiment_id

promoted_delete

confirm_promoted_purchase_id

review_attachments_delete

confirm_attachment_id

screenshots_delete_set, screenshots_delete_preview_set

confirm_set_id

screenshots_delete

confirm_screenshot_id

screenshots_delete_preview

confirm_preview_id

ppo_update_experiment также требует confirm_experiment_id, если указан state. Вызовы, обновляющие только имя или долю трафика, остаются без изменений. После результата мутации unknown или committed_unverified используйте возвращенное действие проверки перед повторной попыткой.

Удалите недокументированные аргументы верхнего уровня из существующих вызовов Marketing и вложений к обзорам. Версия 4 отклоняет неизвестные ключи до любого сетевого запроса, а не молча игнорирует их.

Конфигурация

Учетные данные

Рекомендуется использовать файл ~/.config/asc-mcp/companies.json по умолчанию, показанный в разделе «Быстрый старт», поскольку он одинаково работает для терминальных и GUI-клиентов без дублирования секретов в каждой конфигурации клиента.

Для нескольких компаний добавьте дополнительные записи:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "XXXXXXXXXX",
      "issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8",
      "vendor_number": "YOUR_VENDOR_NUMBER"
    },
    {
      "id": "client-company",
      "name": "Client Company",
      "key_id": "YYYYYYYYYY",
      "issuer_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
      "key_path": "/Users/you/.keys/AuthKey_YYYYYYYYYY.p8"
    }
  ]
}

vendor_number требуется только для analytics_sales_report, analytics_financial_report и analytics_app_summary. Его можно найти в App Store Connect → Продажи и тенденции → Отчеты.

Переменные окружения полезны для автоматизации, но GUI-приложения, запущенные из Finder, могут не наследовать окружение вашей оболочки. Описанная выше настройка на основе файла проще для большинства пользователей.

Одна компания:

export ASC_KEY_ID=XXXXXXXXXX
export ASC_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_PRIVATE_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8
export ASC_COMPANY_NAME="My Company"                 # optional
export ASC_VENDOR_NUMBER=YOUR_VENDOR_NUMBER          # optional, analytics only

Несколько компаний:

export ASC_COMPANY_1_NAME="My Company"
export ASC_COMPANY_1_KEY_ID=XXXXXXXXXX
export ASC_COMPANY_1_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_COMPANY_1_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8

export ASC_COMPANY_2_NAME="Client Company"
export ASC_COMPANY_2_KEY_ID=YYYYYYYYYY
export ASC_COMPANY_2_ISSUER_ID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
export ASC_COMPANY_2_KEY_PATH=/Users/you/.keys/AuthKey_YYYYYYYYYY.p8

Нумерация начинается с 1. Каждая последовательная запись должна содержать и ASC_COMPANY_{N}_KEY_ID, и ASC_COMPANY_{N}_ISSUER_ID; сканирование останавливается на первой отсутствующей паре.

Сервер определяет учетные данные в следующем порядке:

  1. --companies /absolute/path/to/companies.json

  2. Параметр конструктора для программного встраивания

  3. ASC_MCP_COMPANIES=/absolute/path/to/companies.json

  4. Стандартные расположения файлов конфигурации, включая ~/.config/asc-mcp/companies.json

  5. ASC_COMPANY_1_KEY_ID и другие нумерованные переменные для нескольких компаний

  6. ASC_KEY_ID, ASC_ISSUER_ID и переменная закрытого ключа для одной компании

Настройка MCP-клиента

Все примеры ниже предполагают установку через Mint и рекомендуемый файл учетных данных companies.json. Замените /Users/you на фактический путь к вашему домашнему каталогу. GUI-клиентам, как правило, требуется абсолютный путь к исполняемому файлу.

Клиент

Область конфигурации

Примечания

Codex

Конфигурация пользователя через CLI; опционально конфигурация доверенного проекта

Общая для локальных клиентов Codex на одном Mac

Claude Code

Область user, local или project

user — самый простой вариант для личной утилиты App Store

Claude Desktop

Конфигурация рабочего стола на уровне пользователя

Перезапустите после редактирования

Gemini CLI

Пользовательские настройки

Локальный stdio-сервер

VS Code with GitHub Copilot

Профиль пользователя или .vscode/mcp.json

Подтвердите доверие к серверу при первом запуске

Continue

Рабочая область .continue/mcpServers/

Отдельно от встроенной конфигурации MCP в VS Code

Cursor

Пользовательский или проектный mcp.json

Используйте абсолютный путь к команде

Devin Desktop (formerly Windsurf)

Пользовательская конфигурация MCP

Держите не более 100 активных инструментов

Рекомендуемая регистрация в CLI:

codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list
codex mcp get asc-mcp --json

Одна и та же локальная конфигурация MCP используется всеми клиентами Codex на этом Mac. Пользовательская конфигурация находится в $CODEX_HOME/config.toml, по умолчанию — ~/.codex/config.toml:

[mcp_servers.asc-mcp]
command = "/Users/you/.mint/bin/asc-mcp"
startup_timeout_sec = 20
tool_timeout_sec = 60
enabled = true

Для настройки в рамках проекта поместите ту же таблицу в .codex/config.toml; Codex загружает конфигурацию проекта только после того, как проекту доверяют. Если вы используете учётные данные оболочки вместо companies.json, явно передайте их:

env_vars = ["ASC_KEY_ID", "ASC_ISSUER_ID", "ASC_PRIVATE_KEY_PATH"]

Перезапустите GUI-клиент после изменения конфигурации, затем используйте его представление MCP или /mcp, чтобы убедиться, что asc-mcp активен. См. официальную документацию Codex MCP.

Зарегистрируйте один раз для всех локальных проектов:

claude mcp add \
  --transport stdio \
  --scope user \
  asc-mcp \
  -- ~/.mint/bin/asc-mcp

claude mcp get asc-mcp
claude mcp list

Используйте --scope local только для текущего проекта или --scope project, чтобы создать общий .mcp.json. Серверы проекта требуют подтверждения доверия. Никогда не помещайте необработанные учётные данные App Store Connect в коммитимый .mcp.json.

Claude хранит записи MCP user и local в ~/.claude.json; .claude/settings.json не является глобальным реестром MCP. Используйте /mcp внутри Claude Code для проверки или переподключения сервера. См. официальную документацию Claude Code MCP.

Добавьте сервер в ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Завершите работу и снова откройте Claude Desktop после сохранения файла.

Добавьте сервер в ~/.gemini/settings.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Тайм-аут MCP по умолчанию для Gemini намеренно сохранён. См. официальную документацию Gemini CLI MCP.

Выполните MCP: Add Server из палитры команд и выберите профиль пользователя для личной настройки. Для настройки рабочей области создайте .vscode/mcp.json:

{
  "servers": {
    "asc-mcp": {
      "type": "stdio",
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Подтвердите, что доверяете локальному серверу, когда VS Code запустит его впервые. Не коммитьте пользовательские пути или секреты в общий файл рабочей области. См. официальную документацию VS Code MCP.

Continue не использует .vscode/mcp.json. Создайте .continue/mcpServers/asc-mcp.json в рабочей области:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Инструменты MCP доступны в режиме агента Continue. См. официальную документацию Continue MCP.

Используйте ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json для одного проекта:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Перезапустите или обновите MCP-сервер в настройках Cursor после редактирования файла. См. официальную документацию Cursor MCP.

Добавьте сервер в ~/.codeium/windsurf/mcp_config.json. Этот пример включает подмножество релиза из 72 инструментов, что ниже лимита Cascade в 100 инструментов:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp",
      "args": [
        "--workers",
        "apps,builds,export_compliance,versions,reviews"
      ]
    }
  }
}

Вы также можете отключить отдельные инструменты в клиенте. Рекомендуется фильтрация воркеров на стороне сервера, поскольку она сохраняет активный каталог предсказуемым. См. официальную документацию Devin Desktop MCP.

[!IMPORTANT] command должен указывать на реальный исполняемый файл. GUI-клиенты часто не наследуют алиасы оболочки, изменения PATH или переменные окружения. Используйте абсолютный путь и предпочитайте файл учётных данных companies.json по умолчанию.

Фильтрация воркеров

Сервер предоставляет 502 инструмента в 33 доменах инструментов App Store + 2 основных доменах. Некоторые MCP-клиенты накладывают ограничение на количество инструментов; Cascade в Devin Desktop в настоящее время допускает 100 активных инструментов. Используйте 35 ключей фильтра --workers, чтобы включить только нужные вам воркеры:

# Only load apps, builds, and version lifecycle tools
asc-mcp --workers apps,builds,versions

# App Store release preparation subset (99 tools, including always-on and build sub-workers)
asc-mcp --workers apps,accessibility,builds,export_compliance,versions,app_info,screenshots

# TestFlight review helpers can be loaded separately (49 tools)
asc-mcp --workers apps,builds,beta_app,pre_release

# Monetization focus
asc-mcp --workers apps,iap,subscriptions,pricing,promoted,review_submissions

Воркеры company и auth всегда включены независимо от фильтра (они обеспечивают базовую функциональность мультиаккаунта и аутентификации).

Когда включён builds, он автоматически включает подворкеры build_processing и build_beta.

Режим только для чтения

Используйте --read-only, когда нужна безопасная проверка без изменений в App Store Connect:

asc-mcp --read-only
asc-mcp --read-only --workers apps,builds,reviews,analytics

В этом режиме остаются доступными инструменты чтения, такие как *_list, *_get, *_search, *_status, *_verify, *_parse, *_triage, auth_*, аналитика и метрики. Инструменты, которые могут создавать, обновлять, загружать, отправлять, выпускать, удалять, отзывать, очищать, отменять или иным образом изменять App Store Connect, блокируются до запуска их обработчика-воркера. company_switch остаётся доступным, поскольку он изменяет только локальный активный контекст компании.

OpenAPI-контракт и инструменты для отслеживания расхождений

Используйте команду operation-contract, чтобы сравнить фактический каталог WorkerManager без учётных данных с семантическим манифестом и закреплённой спецификацией OpenAPI Apple App Store Connect. Производственный манифест фиксирует точные Apple operationId, HTTP-метод, путь, привязки входных данных в рамках вызова, типизированные фиксированные значения, происхождение ответов, локальные рабочие процессы, состояние реализации, устаревшие алиасы и намеренно отложенные операции. Команда не загружает учётные данные App Store Connect и не запускает MCP-сервер.

rm -rf /tmp/asc-openapi
mkdir -p /tmp/asc-openapi
curl -L --fail -o /tmp/asc-openapi/spec.zip \
  https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip
spec_entry="$(unzip -Z1 /tmp/asc-openapi/spec.zip | grep -E '(^|/)openapi\.oas[^/]*\.json$')"
test "$(echo "$spec_entry" | grep -c .)" -eq 1
unzip -p /tmp/asc-openapi/spec.zip "$spec_entry" > /tmp/asc-openapi/openapi.oas.json

swift run asc-mcp openapi-contract-check \
  --spec /tmp/asc-openapi/openapi.oas.json \
  --json-output /tmp/asc-openapi/operation-contract.json \
  --markdown-output /tmp/asc-openapi/operation-contract.md \
  --strict

Манифест закреплён за Apple API 4.4.1 по версии, SHA-256, количеству путей и количеству операций. В настоящее время он сопоставляет 476 операций Apple, явно откладывает 424 и исключает 363, покрывая все 1 263 операции без пересечений. CI завершается ошибкой, когда изменяется документ Apple, сопоставленная операция перемещается или исчезает, публичный инструмент или воркер отклоняется от манифеста, поле ввода теряет привязку, происхождение ответа становится недействительным или истекает срок отложенного решения. Неоткрытые необязательные параметры Apple являются предупреждениями, поэтому они остаются видимыми в сгенерированном бэклоге.

Схема манифеста v2 также учитывает каждый необязательный входной параметр Apple в запросе и теле запроса как публично привязанный, внутренне контролируемый, намеренно пропущенный с проверенной причиной или всё ещё неклассифицированный. Зафиксированный в репозитории optionalInputCoveragePin записывает точные текущие итоги и SHA-256-дайджест отсортированных идентификаторов и статусов входных данных; --strict отклоняет отсутствующий пин или любое расхождение на уровне количества или идентификаторов. Пин делает поэтапное исправление аудируемым и безопасным с точки зрения регрессий, но это не утверждение, что каждый необязательный входной параметр Apple уже публичен. Пин v4.1.3 составляет 2 905 всего: 1 122 привязанных, 40 внутренне контролируемых, 1 743 намеренно пропущенных и 0 неклассифицированных. Его идентификационный SHA-256: c975f4e4eebb62ec87864a73fbf72bb8841f644108e54e6ffb25168bcf2a2766.

--strict — это шлюз релиза на этапе слияния и тегирования. Каждый объявленный инструмент target или broken остаётся ошибкой в отчётах, а регрессионный тест фиксирует их точное состояние. Текущий базовый уровень не содержит реализаций target или broken и не имеет расхождений реализации, поэтому любая реализация, которая покидает asBuilt, любая структурная ошибка контракта или любое расхождение покрытия необязательных входных данных блокирует как слияния, так и релизы. --structural-strict остаётся доступным только для локальной поэтапной работы по исправлению.

Этот шлюз подтверждает идентичность операции, владение полями верхнего уровня MCP, обязательные входные данные Apple, типизированные внутренние значения и происхождение источника/указателя ответа. Полное соответствие типов/перечислений/диапазонов MCP и полные типизированные схемы ответов остаются отдельными фазами оптимизации; текущий статус сопоставления — 469 частичных и 33 устаревших.

Более старая команда openapi-coverage остаётся доступной для отчёта по доменам высокого уровня в ASC-OPENAPI-COVERAGE-GENERATED.md. Операционный контракт является авторитетным шлюзом релиза.

Доступные имена воркеров:

Worker

Prefix

Tools

Description

company

company_

3

Управление несколькими аккаунтами

auth

auth_

4

Инструменты для JWT-токенов

apps

apps_

10

Списки приложений, метаданные, локализации, ID ключевых слов для поиска

accessibility

accessibility_

6

Декларации доступности App Store

webhooks

webhooks_

11

Уведомления вебхуков, диагностика доставки и вспомогательные инструменты для получателей

xcode_cloud

xcode_cloud_

42

Продукты Xcode Cloud, управление workflow, запуски сборок, артефакты, проблемы, результаты тестов и SCM

builds

builds_

4

Управление сборками

build_uploads

build_uploads_

10

Родительские объекты загрузки сборок, файлы, безопасные передачи и восстановление

build_processing

builds_get_processing_*, builds_update_encryption, builds_check_readiness

4

Состояния сборок, шифрование

export_compliance

export_compliance_

11

Декларации шифрования, загрузка документов, привязка сборок, готовность

build_beta

builds_*_beta_*, отдельные инструменты сборки для тестеров

11

Локализации TestFlight, уведомления

versions

app_versions_

17

Жизненный цикл версий, возрастные рейтинги, отправка, релиз

reviews

reviews_

8

Отзывы клиентов и ответы на них

beta_groups

beta_groups_

15

Группы TestFlight и критерии набора по публичным ссылкам

beta_feedback

beta_feedback_

8

Скриншоты обратной связи TestFlight, отправка отчетов о сбоях, журналы сбоев

beta_testers

beta_testers_

12

Управление тестерами

iap

iap_

59

Внутриигровые покупки, версионируемые метаданные, цены, доступность, коды предложений, материалы для ревью

subscriptions

subscriptions_

99

Версии подписок и групп, цены, доступность планов, предложения, материалы

sandbox

sandbox_

3

Тестеры песочницы

beta_app

beta_app_

10

Локализации бета-приложений и ревью

pre_release

pre_release_

3

Предрелизные версии

beta_license

beta_license_

3

Лицензионные соглашения бета-тестирования

provisioning

provisioning_

17

Bundle ID, устройства, сертификаты

app_info

app_info_

10

Информация о приложении, категории, EULA

pricing

pricing_

9

Территории, цены

users

users_

10

Участники команды, роли

app_events

app_events_

9

События в приложении, локализации

analytics

analytics_

11

Отчеты о продажах/финансовые отчеты, аналитика

screenshots

screenshots_

19

Скриншоты, превью, наборы и проверенный порядок

custom_pages

custom_pages_

17

Кастомные страницы продукта, версии, локализации и ключевые слова для поиска

ppo

ppo_

15

Эксперименты по оптимизации страницы продукта, варианты и локализации

promoted

promoted_

10

Продвигаемые внутриигровые покупки и проверенный порядок

review_attachments

review_attachments_

4

Вложения для ревью App Store

review_submissions

review_submissions_

9

Общие отправки на ревью App Store и элементы отправки

metrics

metrics_

9

Метрики производительности, диагностика и метрики использования TestFlight

Размер каталога инструментов

Конфигурация

Tools

~Tokens

Все воркеры (по умолчанию)

502

~60,000

Релизный workflow: apps,builds,export_compliance,versions,reviews

~72

~8,900

Монетизация: apps,iap,subscriptions,pricing

184

~21,100

TestFlight: apps,builds,beta_groups,beta_testers

~63

~7,100

Маркетинг: apps,screenshots,custom_pages,ppo,promoted

~78

~8,800

--workers apps

17

~2,100

Самые тяжелые воркеры: Subscriptions (99 инструментов), InAppPurchases (59 инструментов), Xcode Cloud (42 инструмента), Screenshots (19 инструментов), Provisioning (17 инструментов).

Точная стоимость зависит от сериализации, токенизатора и стратегии обнаружения инструментов MCP-хоста. Современные клиенты могут откладывать получение схем до тех пор, пока они не понадобятся. Используйте --workers, когда клиент устанавливает лимит на количество инструментов или когда нужен меньший и более сфокусированный каталог.

Доступные инструменты

502 инструмента, организованных в 33 доменах инструментов App Store + 2 основных доменах (используйте 35 ключей фильтра --workers — см. Фильтрация воркеров):

Инструмент

Описание

company_list

Список всех настроенных компаний

company_switch

Переключение активной компании для операций API

company_current

Получить информацию о текущей активной компании

Инструмент

Описание

auth_generate_token

Сгенерировать JWT-токен для доступа к API

auth_validate_token

Локальная проверка стандартного JWT с командным ключом: подпись ES256, настроенные kid/iss, аудитория App Store Connect, утверждения о времени выпуска и истечении срока, а также максимальное время жизни 20 минут. Этот метод не выполняет вызовов к Apple API и не подтверждает принятие сервером.

auth_refresh_token

Принудительно обновить JWT-токен

auth_token_status

Получить статус кэша JWT-токена

Tool

Description

apps_list

Список всех приложений с фильтрацией

apps_get_details

Получение подробной информации о приложении

apps_search

Поиск приложений по имени или Bundle ID

apps_list_versions

Список всех версий с состояниями

apps_get_metadata

Получение локализованных метаданных для версии

apps_list_search_keywords

Список канонических идентификаторов поисковых ключевых слов App Store для таргетинга на пользовательские страницы

apps_update_metadata

Обновление метаданных (What's New, описание и т. д.)

apps_list_localizations

Список локализаций со статусом контента

apps_create_localization

Создание новой локализации для версии

apps_delete_localization

Удаление локализации из версии

Tool

Description

accessibility_list

Список деклараций доступности для приложения

accessibility_get

Получение одной декларации доступности

accessibility_create

Создание декларации для семейства устройств

accessibility_update

Обновление флагов поддержки или публикация декларации

accessibility_delete

Удаление декларации

accessibility_list_relationships

Список идентификаторов связей декларации для приложения

Tool

Description

webhooks_list

Список вебхуков для приложения

webhooks_get

Получение вебхука по ID

webhooks_create

Создание конфигурации вебхука

webhooks_update

Обновление полей вебхука

webhooks_delete

Удаление вебхука

webhooks_list_deliveries

Список попыток доставки

webhooks_redeliver

Повторная доставка существующей доставки

webhooks_ping

Отправка тестового пинга

webhooks_verify_signature

Проверка x-apple-signature на соответствие точному необработанному телу полезной нагрузки

webhooks_parse_payload

Разбор и нормализация необработанной полезной нагрузки уведомления вебхука

webhooks_triage_event

Формирование практического плана разбора для событий вебхука или сбоев доставки

Tool

Description

xcode_cloud_products_list

Список продуктов Xcode Cloud

xcode_cloud_products_get

Получение продукта Xcode Cloud

xcode_cloud_products_delete

Предпросмотр или окончательное удаление продукта Xcode Cloud с защитными механизмами подтверждения

xcode_cloud_app_product_get

Получение продукта Xcode Cloud, связанного с приложением

xcode_cloud_product_app_get

Получение приложения, связанного с продуктом Xcode Cloud

xcode_cloud_product_primary_repositories_list

Список основных репозиториев, прикрепленных к продукту

xcode_cloud_product_additional_repositories_list

Список дополнительных репозиториев, прикрепленных к продукту

xcode_cloud_product_workflows_list

Список рабочих процессов для продукта

xcode_cloud_product_build_runs_list

Список запусков сборки для продукта

xcode_cloud_workflows_get

Получение рабочего процесса

xcode_cloud_workflows_create

Создание рабочего процесса Xcode Cloud

xcode_cloud_workflows_update

Обновление рабочего процесса Xcode Cloud

xcode_cloud_workflows_delete

Предпросмотр или окончательное удаление рабочего процесса с защитными механизмами подтверждения

xcode_cloud_workflow_repository_get

Получение репозитория, используемого рабочим процессом

xcode_cloud_workflow_build_runs_list

Список запусков сборки для рабочего процесса

xcode_cloud_build_runs_get

Получение запуска сборки

xcode_cloud_build_runs_start

Запуск или пересборка сборки Xcode Cloud

xcode_cloud_build_run_actions_list

Список действий сборки для запуска

xcode_cloud_build_run_builds_list

Список сборок App Store Connect, созданных запуском

xcode_cloud_actions_get

Получение действия сборки

xcode_cloud_action_build_run_get

Получение запуска сборки, которому принадлежит действие сборки

xcode_cloud_action_artifacts_list

Список артефактов для действия

xcode_cloud_action_issues_list

Список проблем для действия

xcode_cloud_action_test_results_list

Список результатов тестов для действия

xcode_cloud_artifacts_get

Получение артефакта

xcode_cloud_issues_get

Получение проблемы

xcode_cloud_test_results_get

Получение результата теста

xcode_cloud_xcode_versions_list

Список доступных версий Xcode

xcode_cloud_xcode_versions_get

Получение версии Xcode

xcode_cloud_xcode_version_macos_versions_list

Список версий macOS, совместимых с версией Xcode

xcode_cloud_macos_versions_list

Список доступных версий macOS

xcode_cloud_macos_versions_get

Получение версии macOS

xcode_cloud_macos_version_xcode_versions_list

Список версий Xcode, совместимых с версией macOS

xcode_cloud_scm_providers_list

Список SCM-провайдеров

xcode_cloud_scm_providers_get

Получение SCM-провайдера

xcode_cloud_scm_provider_repositories_list

Список репозиториев для SCM-провайдера

xcode_cloud_scm_repositories_list

Список SCM-репозиториев

xcode_cloud_scm_repositories_get

Получение SCM-репозитория

xcode_cloud_scm_repository_git_references_list

Список git-ссылок репозитория

xcode_cloud_scm_repository_pull_requests_list

Список pull request'ов репозитория

xcode_cloud_scm_git_references_get

Получение git-ссылки

xcode_cloud_scm_pull_requests_get

Получение pull request'а

Tool

Description

beta_feedback_list_crashes

Список бета-отзывов о сбоях

beta_feedback_get_crash

Получение одного бета-отзыва о сбое

beta_feedback_get_crash_log

Чтение журнала сбоя для отзыва

beta_feedback_get_crash_log_by_id

Чтение журнала сбоя по ID журнала сбоя

beta_feedback_delete_crash

Удаление бета-отзыва о сбое

beta_feedback_list_screenshots

Список бета-отзывов со скриншотами

beta_feedback_get_screenshot

Получение одного бета-отзыва со скриншотом

beta_feedback_delete_screenshot

Удаление бета-отзыва со скриншотом

Tool

Description

builds_list

Список сборок с состояниями обработки

builds_get

Получение подробной информации о сборке

builds_find_by_number

Поиск сборки по номеру версии

builds_list_for_version

Получение сборок для конкретной версии приложения

Инструмент

Описание

build_uploads_list

Список родительских объектов Build Upload приложения с фильтрами, разреженными полями, включениями и строгой пагинацией

build_uploads_get

Получить один Build Upload с диагностикой обработки и опционально включёнными ресурсами

build_uploads_create

Создать родительский объект Build Upload без повторного выполнения неоднозначного POST

build_uploads_delete

Удалить родительский объект Build Upload после точного подтверждения ID

build_uploads_list_files

Список резервирований файлов в рамках одного Build Upload со строгой пагинацией

build_uploads_get_file

Получить один Build Upload File и его состояние доставки

build_uploads_reserve_file

Зарезервировать один конкретный файл без повторного выполнения неоднозначного POST

build_uploads_commit_file

Зафиксировать изменения контрольной суммы или состояния загрузки, сохраняя пропуски и null раздельно

build_uploads_upload_file

Перенести новое или существующее резервирование из неизменяемого локального снимка

build_uploads_upload

Выполнить создание родительского объекта, резервирование, перенос, фиксацию и сверку обработки

Составные загрузки сохраняют один и тот же MD5-отпечаток в нижнем регистре от резервирования до восстановления. Явные инструкции возобновления и продолжения после восстановления содержат expected_md5; следующий вызов сверяет с ним свежий неизменяемый снимок перед любым запросом к Apple или переносом. Существующее резервирование, уже помеченное как UPLOAD_COMPLETE или COMPLETE, принимается только если MD5 поля sourceFileChecksums.file от Apple совпадает с этим снимком; отсутствующие, неподдерживаемые или несовпадающие свидетельства сохраняются для проверки без дополнительного переноса, фиксации или удаления. Предварительно подписанные операции повторяются только если их метод — PUT; перенаправления, POST и неизвестные методы не воспроизводятся повторно. Если неоднозначное создание однозначно восстановлено, рабочий процесс останавливается и возвращает ID ресурса для явного продолжения. Учётные данные для переноса остаются скрытыми, если только include_sensitive_details не включён явно при прямом чтении.

Tool

Description

builds_get_processing_state

Получить текущее состояние обработки

builds_update_encryption

Установить соответствие требованиям шифрования

builds_get_processing_status

Получить подробный статус обработки

builds_check_readiness

Проверить, готова ли сборка к отправке на рассмотрение

Tool

Description

export_compliance_list_declarations

Список деклараций о шифровании приложения со строгой пагинацией

export_compliance_get_declaration

Получить одну декларацию без устаревших полей URL документа

export_compliance_create_declaration

Создать анкету декларации о шифровании для приложения

export_compliance_create_document

Зарезервировать, перенести, зафиксировать и опросить документ из одного неизменяемого локального снимка

export_compliance_get_document

Получить безопасные метаданные доставки без подписанных URL, токенов или заголовков загрузки

export_compliance_update_document

Применить низкоуровневый nullable-патч для контрольной суммы или состояния загрузки

export_compliance_upload_document

Возобновить резервирование AWAITING_UPLOAD с точными байтами и его MD5-квитанцией в нижнем регистре

export_compliance_inspect_document

Проверить наличие документа и классифицировать его состояние доставки

export_compliance_get_build_declaration

Получить декларацию, прикреплённую в данный момент к сборке

export_compliance_attach_build_declaration

Прикрепить одобренную декларацию и проверить связь

export_compliance_check_release_readiness

Оценить только шлюз выпуска сборки по экспортному соответствию

Tool

Description

builds_get_beta_detail

Получить конфигурацию TestFlight для сборки

builds_update_beta_detail

Обновить настройки TestFlight

builds_set_beta_localization

Задать текст «Что нового» для TestFlight

builds_list_beta_localizations

Список всех локализаций TestFlight

builds_get_beta_groups

Получить бета-группы для сборки

builds_get_beta_testers

Получить отдельных тестировщиков для сборки

builds_send_beta_notification

Отправить уведомление бета-тестировщикам

builds_add_to_beta_groups

Добавить сборку в бета-группы

builds_add_individual_testers

Добавить отдельных тестировщиков в сборку

builds_remove_individual_testers

Удалить отдельных тестировщиков из сборки

builds_list_individual_testers

Список отдельных тестировщиков, назначенных на сборку

Tool

Description

beta_groups_list

Список бета-групп TestFlight для приложения

beta_groups_create

Создать новую бета-группу

beta_groups_update

Обновить настройки бета-группы

beta_groups_delete

Удалить бета-группу

beta_groups_add_testers

Добавить тестировщиков в бета-группу

beta_groups_remove_testers

Удалить тестировщиков из бета-группы

beta_groups_list_testers

Список тестировщиков в бета-группе

beta_groups_add_builds

Добавить сборки в бета-группу

beta_groups_remove_builds

Удалить сборки из бета-группы

beta_groups_get_recruitment_criteria

Получить критерии набора по публичной ссылке, прикреплённые к бета-группе

beta_groups_create_recruitment_criteria

Создать критерии набора по семейству устройств и версии ОС

beta_groups_update_recruitment_criteria

Заменить или явно очистить фильтры набора

beta_groups_delete_recruitment_criteria

Удалить критерии набора после точного подтверждения ID критерия

beta_groups_list_recruitment_options

Список семейств устройств и версий ОС, которые Apple в настоящее время разрешает

beta_groups_check_recruitment_compatibility

Проверить, есть ли в группе сборка, совместимая с её критериями

Включает инструменты для списка/поиска/получения/создания/удаления тестировщиков, связей с приложениями, приглашений, назначения бета-групп, назначения сборок и удаления из приложения.

Tool

Description

app_versions_create

Создать новую версию приложения

app_versions_list

Список версий с фильтрацией по состоянию

app_versions_get

Получить подробную информацию о версии

app_versions_get_age_rating_declaration

Прочитать анкету возрастного рейтинга App Info

app_versions_list_territory_age_ratings

Список рассчитанных возрастных рейтингов по территориям

app_versions_update

Обновить атрибуты версии

app_versions_attach_build

Прикрепить сборку к версии

app_versions_submit_for_review

Отправить на рассмотрение в App Store

app_versions_cancel_review

Отменить текущее рассмотрение

app_versions_release

Выпустить одобренную версию

app_versions_create_phased_release

Создать поэтапный выпуск

app_versions_get_phased_release

Получить информацию о поэтапном выпуске и ID

app_versions_update_phased_release

Приостановить/возобновить/завершить развёртывание

app_versions_delete_phased_release

Удалить подходящий запланированный поэтапный выпуск с подтверждением точного ID и защитой от неизвестного исхода

app_versions_set_review_details

Задать контактные данные для рассмотрения

app_versions_update_age_rating

Настроить декларацию возрастного рейтинга

app_versions_delete

Удалить редактируемую версию приложения с подтверждением точного ID и защитой от неизвестного исхода

Инструмент

Описание

reviews_list

Получить отзывы с фильтрацией и постраничной выдачей

reviews_get

Получить сведения о конкретном отзыве

reviews_list_for_version

Получить отзывы для конкретной версии

reviews_stats

Сводная статистика отзывов

reviews_create_response

Ответить на отзыв клиента

reviews_delete_response

Удалить ответ

reviews_get_response

Получить ответ на отзыв

reviews_summarizations

Обобщить темы отзывов и оценки

Инструмент

Описание

iap_list

Список покупок в приложении для приложения

iap_get

Получить сведения об IAP

iap_create

Создать новый IAP

iap_update

Обновить атрибуты IAP

iap_delete

Удалить IAP

iap_list_localizations

Список локализаций IAP

iap_create_localization

Создать локализацию IAP

iap_update_localization

Обновить локализацию IAP

iap_delete_localization

Удалить локализацию IAP

iap_submit_for_review

Отправить IAP на проверку

iap_list_subscriptions

Список групп подписок

iap_get_subscription_group

Получить сведения о группе подписок

iap_inventory

Удобная для ИИ опись IAP для приложения

iap_list_price_points

Список ценовых точек с учётом территорий

iap_list_price_point_equalizations

Список выравниваний ценовых точек

iap_get_price_schedule

Получить график цен

iap_set_price_schedule

Задать график цен

iap_pricing_summary

Сводка текущих и запланированных цен

iap_prepare_offer_prices

Найти кандидатов ценовых точек для предложений

iap_set_availability

Задать доступность по территориям

iap_get_availability

Получить доступность по IAP или идентификатору доступности

iap_list_available_territories

Список доступных территорий

iap_get_promoted_purchase

Получить состояние продвигаемой покупки

iap_list_offer_codes

Список кодов предложений IAP

iap_get_offer_code

Получить код предложения IAP

iap_create_offer_code

Создать код предложения IAP

iap_update_offer_code

Обновить код предложения IAP

iap_deactivate_offer_code

Деактивировать код предложения IAP

iap_list_offer_code_prices

Список цен предложений с учётом территорий

iap_generate_one_time_codes

Сгенерировать одноразовые коды предложений

iap_list_one_time_codes

Список пакетов одноразовых кодов

iap_get_one_time_code

Получить пакет одноразовых кодов

iap_update_one_time_code

Обновить пакет одноразовых кодов

iap_deactivate_one_time_code

Деактивировать пакет одноразовых кодов

iap_get_one_time_code_values

Получить сгенерированные значения одноразовых кодов

iap_create_custom_code

Создать пользовательский код предложения

iap_get_custom_code

Получить сведения о пользовательском коде

iap_update_custom_code

Обновить пользовательский код

iap_deactivate_custom_code

Деактивировать пользовательский код

iap_get_review_screenshot

Получить скриншот для проверки

iap_upload_review_screenshot

Загрузить скриншот для проверки

iap_delete_review_screenshot

Удалить скриншот для проверки

iap_upload_image

Загрузить рекламное изображение

iap_get_image

Получить рекламное изображение

iap_delete_image

Удалить рекламное изображение

iap_list_images

Список рекламных изображений

iap_create_version

Создать проверяемую версию метаданных IAP

iap_get_version

Получить версию IAP и её статус проверки

iap_list_versions

Список проверяемых версий для IAP

iap_list_version_localizations

Список локализаций, принадлежащих версии IAP

iap_create_version_localization

Создать локализацию для версии IAP

iap_get_version_localization

Получить локализацию версии IAP

iap_update_version_localization

Обновить допускающие null текстовые поля в локализации версии IAP

iap_delete_version_localization

Удалить локализацию версии IAP

iap_get_version_image

Получить единственное изображение, связанное с версией IAP

iap_list_version_images

Список всех ресурсов изображений, принадлежащих версии IAP, со строгой поддержкой продолжения

iap_upload_version_image

Загрузить, зафиксировать и согласовать неизменяемое изображение версии IAP

iap_get_version_image_resource

Получить ресурс изображения IAP в рамках версии

iap_delete_version_image

Удалить изображение IAP в рамках версии

Прежние инструменты локализации, отправки на проверку и изображений, привязанные к продукту, остаются доступными для вызова ради совместимости. Apple 4.4.1 объявляет устаревшими iap_list_localizations, iap_create_localization, iap_update_localization, iap_delete_localization, iap_submit_for_review, iap_upload_image, iap_get_image, iap_delete_image и iap_list_images; успешные ответы указывают на заменяющие инструменты, привязанные к версии. Для создания локализации, загрузки рекламного изображения и отправки на проверку сначала используйте iap_list_versions, вызывайте iap_create_version только когда нужна новая версия метаданных, и передавайте этот идентификатор версии последующему инструменту версии. Эти вызовы совместимости никогда не создают и не выбирают версию автоматически.

Если Apple, возможно, приняла создание версии или локализации версии, но ответ утерян или не может быть декодирован, инструмент возвращает write_outcome: not_confirmed и retrySafe: false с запрошенным идентификатором и шагами проверки через list/get. Проверьте перед повторной попыткой, чтобы избежать дублирования ресурсов метаданных.

Включает версии метаданных подписок и групп, локализации и изображения, принадлежащие версиям, доступность с учётом типа плана, цены с учётом территорий, ценовые точки и скорректированные выравнивания, чтение продвигаемых покупок, вспомогательные инструменты инвентаризации и ценообразования, вводные предложения, промо-предложения, коды предложений, одноразовые/пользовательские коды, win-back предложения и скриншоты для проверки. Все прежние публичные функции offer_codes_*, intro_offers_*, promo_offers_* и winback_* доступны через subscriptions_*.

Apple 4.4.1 также объявляет устаревшими прежние инструменты локализации, изображений и отправки на проверку, привязанные к продукту или группе. Они остаются доступными для вызова ради совместимости, при успехе возвращают явные указания по замене и никогда не создают и не выбирают версию метаданных автоматически. Новые интеграции должны использовать subscriptions_create_version или subscriptions_create_group_version, соответствующие инструменты локализации/изображений версии и общий процесс review_submissions_*.

Создание версии подписки, версии группы, локализации и доступности плана использует тот же контракт восстановления без идемпотентности: неоднозначная запись Apple возвращает write_outcome: not_confirmed, retrySafe: false, запрошенный fingerprint и детерминированные указания по проверке через collection/get.

Следующие имена остаются доступными для совместимости, но Apple 4.4.1 объявляет устаревшим их прежний ресурс subscriptionAvailability в пользу учитывающего тип плана ресурса subscriptionPlanAvailabilities:

Tool

Статус совместимости

subscriptions_get_availability

Устаревшее чтение доступности (legacy)

subscriptions_set_availability

Устаревшая запись доступности (legacy)

subscriptions_list_available_territories

Устаревший список территорий (legacy)

subscriptions_inventory

Устаревший вспомогательный инструмент; можно опустить подписки за пределами первой включённой страницы отношений, он не является авторитетной полной описью

Tool

Описание

sandbox_list

Список тестировщиков песочницы

sandbox_update

Обновление настроек тестировщика песочницы

sandbox_clear_purchase_history

Очистка истории покупок для тестировщиков песочницы

Tool

Описание

beta_app_list_localizations

Список локализаций бета-приложения

beta_app_create_localization

Создание локализации бета-приложения

beta_app_get_localization

Получение локализации бета-приложения

beta_app_update_localization

Обновление локализации бета-приложения

beta_app_delete_localization

Удаление локализации бета-приложения

beta_app_submit_for_review

Отправка сборки на бета-ревью

beta_app_list_submissions

Список заявок на бета-ревью

beta_app_get_submission

Получение заявки на бета-ревью

beta_app_get_review_details

Получение сведений о ревью бета-приложения

beta_app_update_review_details

Обновление сведений о ревью бета-приложения

Включает список предрелизных версий, сведения о них и связанные сборки.

Включает список соглашений о бета-лицензиях, получение и обновление.

Tool

Описание

provisioning_list_bundle_ids

Список зарегистрированных идентификаторов пакетов

provisioning_get_bundle_id

Получение сведений об идентификаторе пакета

provisioning_create_bundle_id

Регистрация нового идентификатора пакета

provisioning_delete_bundle_id

Удаление идентификатора пакета

provisioning_list_devices

Список зарегистрированных устройств

provisioning_register_device

Регистрация нового устройства (UDID)

provisioning_update_device

Обновление имени или статуса устройства

provisioning_list_certificates

Список сертификатов подписи

provisioning_get_certificate

Получение сведений о сертификате

provisioning_revoke_certificate

Отзыв сертификата

provisioning_list_profiles

Список профилей подготовки (provisioning profiles)

provisioning_get_profile

Получение сведений о профиле

provisioning_delete_profile

Удаление профиля

provisioning_create_profile

Создание профиля подготовки

provisioning_list_capabilities

Список возможностей идентификатора пакета

provisioning_enable_capability

Включение возможности

provisioning_disable_capability

Отключение возможности

Включает список/получение/обновление информации о приложении, локализации информации о приложении и инструменты получения/создания/обновления EULA.

Включает территории, доступность, ценовые точки, ценовые расписания и инструменты доступности App Store v2.

Включает список/получение/обновление/удаление участников команды, приглашения, видимые приложения и обновления связей видимых приложений.

Включает CRUD для событий в приложении, а также список/создание/обновление/удаление локализаций событий.

Включает инструменты продаж, финансов, сводки по приложению, запроса отчётов аналитики, отчётов, экземпляров, снимков и сегментов.

Tool

Описание

screenshots_list_sets

Список наборов снимков экрана

screenshots_get_set

Получение набора снимков экрана по ID

screenshots_create_set

Создание набора снимков экрана

screenshots_delete_set

Удаление набора снимков экрана

screenshots_list

Список снимков экрана в наборе

screenshots_upload

Загрузка снимка экрана

screenshots_get

Получение сведений о снимке экрана

screenshots_delete

Удаление снимка экрана

screenshots_reorder

Изменение порядка снимков экрана в наборе

screenshots_list_preview_sets

Список наборов превью приложения

screenshots_get_preview_set

Получение набора превью приложения по ID

screenshots_create_preview_set

Создание набора превью

screenshots_delete_preview_set

Удаление набора превью

screenshots_upload_preview

Загрузка превью приложения

screenshots_get_preview

Получение сведений о превью

screenshots_list_previews

Список превью в наборе превью

screenshots_reorder_previews

Изменение порядка всех превью в наборе с проверкой членства и пост-проверкой (postflight)

screenshots_upload_batch

Пакетная загрузка снимков экрана

screenshots_delete_preview

Удаление превью

Tool

Описание

custom_pages_list

Список пользовательских страниц продукта

custom_pages_get

Получение сведений о странице

custom_pages_create

Создание пользовательской страницы

custom_pages_update

Обновление пользовательской страницы

custom_pages_delete

Удаление пользовательской страницы

custom_pages_list_versions

Список версий страницы

custom_pages_get_version

Получение версии страницы по ID

custom_pages_create_version

Создание версии страницы

custom_pages_update_version

Обновление версии страницы

custom_pages_list_localizations

Список локализаций версии

custom_pages_get_localization

Получение локализации по ID

custom_pages_create_localization

Создание локализации

custom_pages_update_localization

Обновление локализации

custom_pages_delete_localization

Удаление локализации после точного подтверждения

custom_pages_list_search_keywords

Список ID поисковых ключевых слов, назначенных локализации

custom_pages_add_search_keywords

Добавление связей поисковых ключевых слов

custom_pages_remove_search_keywords

Удаление связей поисковых ключевых слов после точного подтверждения

Tool

Описание

ppo_list_experiments

Список A/B-экспериментов

ppo_list_version_experiments

Список V2-экспериментов для версии App Store

ppo_get_experiment

Получение сведений об эксперименте

ppo_create_experiment

Создание эксперимента

ppo_update_experiment

Обновление/запуск/остановка эксперимента

ppo_delete_experiment

Удаление эксперимента

ppo_list_treatments

Список вариантов эксперимента

ppo_get_treatment

Получение варианта по ID

ppo_create_treatment

Создание варианта

ppo_update_treatment

Обновление варианта

ppo_delete_treatment

Удаление варианта после точного подтверждения

ppo_list_treatment_localizations

Список локализаций варианта

ppo_get_treatment_localization

Получение локализации варианта по ID

ppo_create_treatment_localization

Создание локализации варианта

ppo_delete_treatment_localization

Удаление локализации варианта после точного подтверждения

Инструмент

Описание

promoted_list

Список продвигаемых покупок для приложения

promoted_get

Получение сведений о продвижении

promoted_create

Создание продвижения

promoted_update

Обновление видимости продвижения или состояния «включено»

promoted_delete

Удаление продвижения

promoted_reorder

Замена и проверка полного порядка продвигаемых покупок для приложения

promoted_upload_image

Устарел: возвращает рекомендации по миграции; конечная точка отсутствует в закреплённой спецификации Apple OpenAPI 4.4.1

promoted_get_image

Устарел: возвращает рекомендации по миграции; конечная точка отсутствует в закреплённой спецификации Apple OpenAPI 4.4.1

promoted_delete_image

Устарел: возвращает рекомендации по миграции; конечная точка отсутствует в закреплённой спецификации Apple OpenAPI 4.4.1

promoted_get_image_for_purchase

Устарел: возвращает рекомендации по миграции; связь отсутствует в закреплённой спецификации Apple OpenAPI 4.4.1

Включает инструменты загрузки, получения, удаления и просмотра вложений для рецензирования App Store.

Инструмент

Описание

review_submissions_list

Список общих отправок на рецензирование для приложения

review_submissions_get

Получение одной общей отправки на рецензирование

review_submissions_create

Создание общей отправки на рецензирование для приложения и платформы

review_submissions_list_items

Список элементов, прикреплённых к отправке на рецензирование

review_submissions_add_item

Прикрепление версии рецензируемого ресурса к отправке

review_submissions_update_item

Обновление nullable-состояния resolved или removed у отправленного элемента

review_submissions_remove_item

Удаление элемента из отправки

review_submissions_submit

Отправка всех прикреплённых элементов на рецензирование

review_submissions_cancel

Отмена поданной общей отправки на рецензирование

review_submissions_add_item сообщает об успехе, только если ответ Apple подтверждает допустимый идентификатор элемента и точное соответствие запрошенному имени связи, типу JSON:API и идентификатору ресурса. Любое несоответствие возвращается как неподтверждённая запись с шагами восстановления отправки и списка элементов.

Инструмент

Описание

metrics_app_perf

Получение метрик производительности/энергопотребления приложения

metrics_build_perf

Получение метрик производительности сборки

metrics_build_diagnostics

Список диагностических данных для сборки

metrics_get_diagnostic_logs

Получение диагностических журналов

metrics_app_beta_tester_usage

Получение метрик TestFlight по сбоям, сеансам и отзывам для приложения в разрезе бета-тестеров

metrics_group_beta_tester_usage

Получение метрик TestFlight по сбоям, сеансам и отзывам для бета-группы в разрезе бета-тестеров

metrics_group_public_link_usage

Получение просмотров публичной ссылки, результатов принятия, несоответствий критериям и долей опросов

metrics_tester_usage

Получение метрик использования TestFlight одним тестером в приложении

metrics_build_beta_usage

Получение метрик TestFlight для сборки: сбои, установки, сеансы, отзывы и приглашения

Примеры использования

Полный рабочий процесс релиза

You: "Release version 2.2.0 of my app with build 456"

Claude will:
1. app_versions_create(app_id, platform: "IOS", version_string: "2.2.0")
2. app_versions_attach_build(version_id, build_id)
3. app_versions_set_review_details(version_id, contact_email: "...")
4. app_versions_submit_for_review(version_id)
5. app_versions_create_phased_release(version_id)  # after approval

Распространение через TestFlight

You: "Create a beta group 'External Testers' and distribute the latest build"

Claude will:
1. beta_groups_create(app_id, name: "External Testers")
2. builds_list(app_id, limit: 1)  # find latest
3. builds_set_beta_localization(build_id, locale: "en-US", whats_new: "...")
4. beta_groups_add_testers(group_id, tester_ids: [...])

Управление рецензированием

You: "Show me all 1-star reviews from the last week and draft responses"

Claude will:
1. reviews_list(app_id, rating: 1, sort: "-createdDate", limit: 50)
2. reviews_create_response(review_id, response_body: "...")  # for each

Рабочий процесс с несколькими компаниями

You: "Switch to ClientCorp and check their latest build status"

Claude will:
1. company_switch(company: "ClientCorp")
2. apps_list(limit: 5)
3. builds_list(app_id, limit: 1)
4. builds_get_processing_state(build_id)

Ограничения API

Ограничение

Сведения

Без эмодзи

Поля метаданных (What's New, Description, Keywords) не должны содержать символы эмодзи

Состояние версии

App Store Connect проверяет доступность состояний для редактирования при обновлении метаданных. Версии со статусами rejected и metadata-rejected можно редактировать и отправлять повторно; опубликованные версии и версии на проверке могут быть отклонены Apple.

Срок действия JWT

Токены истекают через 20 минут — сервер обновляет их автоматически

Лимиты запросов

Apple применяет лимиты запросов на аккаунт (документация)

Формат локали

Используйте стандартные коды: en-US, ru, de-DE, ja, zh-Hans

Архитектура

Sources/asc-mcp/
├── EntryPoint.swift                # Entry point, --workers filtering
├── Core/
│   ├── Application.swift           #   MCP server setup & initialization
│   └── ASCError.swift              #   Custom error types
├── Helpers/                        # JSON formatting, pagination, safe helpers
├── Models/                         # API request/response models
│   ├── AppStoreConnect/            #   Apps, versions, localizations
│   ├── Builds/                     #   Builds, beta details, beta groups
│   ├── AppLifecycle/               #   Version lifecycle models
│   ├── InAppPurchases/             #   IAP models
│   ├── Subscriptions/              #   Subscriptions, offer codes, win-back
│   ├── Marketing/                  #   Screenshots, custom pages, PPO, promoted
│   ├── Metrics/                    #   Performance metrics, diagnostics
│   ├── Analytics/                  #   Sales/financial reports
│   ├── Provisioning/               #   Bundle IDs, devices, certificates
│   ├── Shared/                     #   Shared upload/image types
│   └── ...                         #   AppEvents, AppInfo, Pricing, Users
├── Services/
│   ├── HTTPClient.swift            #   Actor-based HTTP with retry logic
│   ├── JWTService.swift            #   ES256 JWT token generation
│   └── CompaniesManager.swift      #   Multi-account management
└── Workers/                        # MCP tool implementations (39 Swift worker classes + MainWorker router)
    ├── MainWorker/WorkerManager    #   Central tool registry & routing
    ├── CompaniesWorker/            #   company_* tools
    ├── AuthWorker/                 #   auth_* tools
    ├── AppsWorker/                 #   apps_* tools
    ├── AccessibilityWorker/        #   accessibility_* tools
    ├── WebhooksWorker/             #   webhooks_* tools
    ├── XcodeCloudWorker/           #   xcode_cloud_* tools
    ├── BuildsWorker/               #   builds_* tools
    ├── BuildUploadsWorker/         #   build_uploads_* tools
    ├── BuildProcessingWorker/      #   builds_*_processing tools
    ├── ExportComplianceWorker/     #   export_compliance_* tools
    ├── BuildBetaDetailsWorker/     #   builds_*_beta_* tools
    ├── AppLifecycleWorker/         #   app_versions_* tools
    ├── ReviewsWorker/              #   reviews_* tools
    ├── BetaGroupsWorker/           #   beta_groups_* tools
    ├── BetaFeedbackWorker/         #   beta_feedback_* tools
    ├── BetaTestersWorker/          #   beta_testers_* tools
    ├── InAppPurchasesWorker/       #   iap_* tools
    ├── SubscriptionsWorker/        #   subscriptions_* tools
    ├── OfferCodesWorker/           #   subscriptions offer-code tools
    ├── IntroductoryOffersWorker/   #   subscriptions intro-offer tools
    ├── PromotionalOffersWorker/    #   subscriptions promotional-offer tools
    ├── WinBackOffersWorker/        #   subscriptions win-back tools
    ├── SandboxTestersWorker/       #   sandbox_* tools
    ├── BetaAppWorker/              #   beta_app_* tools
    ├── PreReleaseVersionsWorker/   #   pre_release_* tools
    ├── BetaLicenseAgreementsWorker/ #  beta_license_* tools
    ├── ProvisioningWorker/         #   provisioning_* tools
    ├── AppInfoWorker/              #   app_info_* tools
    ├── PricingWorker/              #   pricing_* tools
    ├── UsersWorker/                #   users_* tools
    ├── AppEventsWorker/            #   app_events_* tools
    ├── AnalyticsWorker/            #   analytics_* tools
    ├── ScreenshotsWorker/          #   screenshots_* tools
    ├── CustomProductPagesWorker/   #   custom_pages_* tools
    ├── ProductPageOptimizationWorker/ # ppo_* tools
    ├── PromotedPurchasesWorker/    #   promoted_* tools
    ├── ReviewAttachmentsWorker/    #   review_attachments_* tools
    ├── ReviewSubmissionsWorker/    #   review_submissions_* tools
    └── MetricsWorker/              #   metrics_* tools

Принципы проектирования

  • Строгая конкурентность Swift 6 — все воркеры и сервисы являются Sendable, с корректной изоляцией акторов

  • HTTP-клиент на основе акторов — потокобезопасный, с экспоненциальной задержкой и логикой повторных попыток

  • Маршрутизация по префиксамWorkerManager маршрутизирует вызовы инструментов по префиксу имени (без конфигурации)

  • Минимум зависимостей — только MCP Swift SDK

Устранение неполадок

  1. Выполните ~/.mint/bin/asc-mcp --version, чтобы проверить установку независимо от MCP-клиента.

  2. Убедитесь, что MCP-клиент использует абсолютный путь к установленному исполняемому файлу.

  3. Для Codex выполните codex mcp list и codex mcp get asc-mcp --json.

  4. Для Claude Code выполните claude mcp get asc-mcp и claude mcp list.

  5. Проверьте либо настроенный файл companies.json, либо переменные окружения, используемые выбранной конфигурацией.

  6. Убедитесь, что путь к каждому ключу .p8 является абсолютным и файл существует.

  7. Перезапустите графические клиенты после изменения их MCP-конфигурации, затем просмотрите журнал вывода MCP клиента.

  1. Убедитесь, что Key ID и Issuer ID совпадают с указанными в App Store Connect

  2. Убедитесь, что файл .p8 — это оригинальная загрузка (не изменённая)

  3. Проверьте, что ключ API не был отозван

  4. JWT-токены обновляются автоматически, но если ключ недействителен, все запросы будут завершаться ошибкой

apps_update_metadata отправляет PATCH-запрос с метаданными в App Store Connect после локальной проверки текста, локали и URL. Apple решает, доступно ли текущее состояние версии для редактирования. Версии со статусами rejected и metadata-rejected можно редактировать и отправлять повторно; опубликованные версии, версии на проверке или иным образом заблокированные могут вернуть ошибку Apple API.

Используйте builds_get_processing_status для проверки текущего состояния обработки и builds_check_readiness для проверки готовности к App Store/TestFlight. Обработка сборки Apple обычно занимает 5–30 минут, но в пиковые периоды может быть дольше.

HTTP-клиент автоматически повторяет запросы с экспоненциальной задержкой при ответах 429. Если вы постоянно упираетесь в лимиты, снизьте частоту вызовов API или используйте пагинацию с меньшим размером страниц.

Получение помощи

Прежде чем открывать отчёт, поищите в существующих issue. Если проблема новая, откройте issue и укажите:

  • версию macOS и способ установки;

  • название и версию MCP-клиента;

  • выбранное значение --workers, если оно задано;

  • точный текст ошибки и минимально воспроизводимый запрос.

Перед публикацией удалите из логов Key ID, Issuer ID, закрытые ключи, подписанные URL, токены и данные учётной записи. Сообщайте об уязвимостях безопасности в приватном порядке, следуя SECURITY.md. По вопросам вклада в код см. CONTRIBUTING.md.

Разработка

Сборка

swift build              # Debug build
swift build -c release   # Release build (optimized)
swift package clean      # Clean build artifacts

Тестовый режим

.build/debug/asc-mcp --test    # Runs built-in integration tests

Добавление нового инструмента

  1. Создайте метод-обработчик в соответствующем файле Worker+Handlers.swift

  2. Добавьте определение инструмента в Worker+ToolDefinitions.swift

  3. Зарегистрируйте его в методе getTools() воркера

  4. Добавьте case маршрутизации в switch handleTool() воркера

  5. WorkerManager автоматически маршрутизирует по префиксу — там изменения не нужны

Добавление нового воркера

  1. Создайте каталог: Workers/MyWorker/

  2. Создайте 3 файла: MyWorker.swift, MyWorker+ToolDefinitions.swift, MyWorker+Handlers.swift

  3. Добавьте свойство воркера и его инициализацию в WorkerManager.swift

  4. Добавьте правило маршрутизации в WorkerManager.registerWorkers()

  5. Добавьте вспомогательный метод getMyTools()

Участие в разработке

Мы приветствуем ваш вклад! Подробнее см. в Руководстве по участию.

Лицензия

Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.

Благодарности


Это неофициальный инструмент, поддерживаемый сообществом, не связан с Apple Inc. и не одобрен ею.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server that connects Cursor, Claude Desktop, and other MCP clients to the official App Store Connect API—so you can manage iOS/macOS apps, TestFlight, in-app subscriptions, and store metadata via chat or automated tool calls.
    69
    139
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An opinionated MCP server for App Store Connect that provides 13 curated tools, slash-command workflows, and a Claude Skill to manage apps, reviews, sales, and pre-submission audits via natural language.
    41
    110
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A Model Context Protocol server that exposes the entire Apple App Store Connect API (1,200+ operations) as MCP tools, enabling AI assistants to query apps, manage builds, handle submissions, read analytics, and more.
    30
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zelentsov-dev/asc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server