App Store Connect MCP Server
App Store Connect MCP Server
Полный API App Store Connect в виде MCP-сервера. 1 263 операции, сгенерированные напрямую из официальной спецификации OpenAPI от Apple, доступные в Claude Code, Claude Desktop, Cursor и любом другом клиенте Model Context Protocol через всего 4 эффективных по токенам инструмента.
Что такое App Store Connect MCP server?
app-store-connect-mcp — это open source сервер Model Context Protocol (MCP) для API App Store Connect. Установите его один раз, и ваш ИИ-агент сможет читать и записывать всё, что Apple предоставляет для ваших приложений и вашего аккаунта разработчика:
Листинги и метаданные App Store · сборки TestFlight, бета-группы и тестировщики · покупки внутри приложения · автоматически продлеваемые подписки, предложения и win-back предложения · таблицы лидеров Game Center, достижения и подбор соперников · рабочие процессы и сборки Xcode Cloud · профили подготовки, сертификаты, bundle ID и устройства · отправки на ревью App Review и детали ревью · отзывы клиентов и ответы на них · цены, доступность и территории · отчёты о продажах, финансах и аналитике · пользователи, роли и приглашения · App Clips, фоновые ресурсы и альтернативное распространение.
Большинство MCP-серверов App Store Connect вручную оборачивают два-три десятка конечных точек, а затем устаревают. Этот сервер сгенерирован из опубликованной спецификации OpenAPI от Apple, поэтому покрытие охватывает всю документированную поверхность, и он остаётся актуальным одной командой bun run generate.
В этом репозитории нет учётных данных. Вы предоставляете свой собственный ключ API App Store Connect во время выполнения через переменные окружения. Ничего не встраивается, не логируется и не передаётся никуда, кроме Apple.
Содержание
Related MCP server: App Store Connect MCP
Краткий обзор
Что это | MCP-сервер для полного API App Store Connect |
Версия API | App Store Connect API 4.4.1 (OpenAPI 3.0.1) |
Операций в каталоге | 1 263 — по одной на путь + метод |
Путей API | 966 |
Тегов ресурсов | 195 |
Зарегистрировано MCP-инструментов | 4 мета-инструмента: |
Разбивка по методам | 797 |
Источник истины | ZIP-файл OpenAPI от Apple, включённый в репозиторий по адресу |
Аутентификация | ES256 JWT, создаваемый во время выполнения из Issuer ID + Key ID + приватного ключа |
Базовый URL |
|
Транспорт | stdio |
Среда выполнения | Bun 1.1+ и |
Лицензия | MIT |
Почему 4 инструмента вместо 1 263
Регистрация каждой операции OpenAPI как отдельного MCP-инструмента выгружает 1 263 полных JSON-схемы в контекстное окно модели. Это порядка сотен тысяч токенов, сожжённых до того, как агент выполнит какую-либо реальную работу — а многие клиенты просто отказываются принимать или обрезают такой большой список инструментов.
Этот сервер держит полный каталог внутренним и предоставляет поверх него небольшой стабильный интерфейс:
asc_search → find operations (names, methods, paths, tags — no schemas)
asc_schema → describe one operation (full input JSON Schema + call hint)
asc_call → execute one operation (real request, or _dryRun)
asc_tags → list resource tags (with operation counts, to narrow search)Агент платит ровно за ту схему, которую собирается использовать, и ни за что больше. Типичный трёхшаговый процесс стоит несколько тысяч токенов вместо нескольких сотен тысяч.
Запасной выход (только для отладки)
export ASC_EXPOSE_ALL_TOOLS=1 # also register all 1,263 operations as individual MCP toolsОставьте эту переменную неустановленной при обычном использовании. Она существует для отладки спецификации и чрезвычайно дорога по контексту.
Четыре MCP-инструмента
asc_search — найдите нужную операцию
Полнотекстовый поиск по operationId, имени, пути, тегам, методу и описанию. Возвращает ранжированные результаты без JSON-схем.
Параметр | Тип | Обязательный | Описание |
| string | необязательный* | Свободный текст, например |
| string | необязательный* | Точный фильтр по тегу OpenAPI, например |
| string | необязательный |
|
| integer | необязательный | Максимум результатов, по умолчанию |
* Как минимум один из query, tag или method.
{ "query": "list apps", "method": "GET", "limit": 5 }asc_schema — опишите одну операцию
Возвращает полную входную JSON-схему операции, список её параметров пути, список параметров запроса и callHint, показывающий, как её вызвать.
Параметр | Тип | Обязательный | Описание |
| string | да | OperationId или сгенерированное имя инструмента, например |
asc_call — выполните операцию
Параметр | Тип | Обязательный | Описание |
| string | да | OperationId или сгенерированное имя инструмента |
| object | необязательный | Параметры пути, параметры запроса, |
| boolean | необязательный | Разрешить метод/путь/запрос/тело без обращения к Apple |
Поля пути и запроса работают как вложенные внутри args, так и как ключи верхнего уровня рядом с operation. Записи JSON:API помещаются в body.
// read
{ "operation": "apps_getCollection", "args": { "limit": 10, "fields[apps]": "name,bundleId,sku" } }
// dry run — no network call, shows the resolved request
{ "operation": "apps_getCollection", "_dryRun": true, "args": { "limit": 10 } }
// write (JSON:API document)
{
"operation": "betaGroups_createInstance",
"args": {
"body": {
"data": {
"type": "betaGroups",
"attributes": { "name": "Internal QA" },
"relationships": { "app": { "data": { "type": "apps", "id": "1234567890" } } }
}
}
}
}asc_tags — ориентируйтесь внутри API
Параметр | Тип | Обязательный | Описание |
| integer | необязательный | Максимум тегов, по умолчанию все 195, отсортированы по количеству операций |
Обработка ответов
JSON-ответы возвращаются в разобранном виде.
Ответы CSV, XML и text возвращаются как текст.
Gzip и бинарные загрузки (финансовые отчёты, отчёты о продажах) возвращаются в base64 с
encoding,contentType,byteLengthи примечанием о декодировании.Ответы длиной более ~120 000 символов обрезаются с подсказкой сузить
filter[…],fields[…]илиlimit.HTTP 4xx/5xx отображаются как ошибки MCP с сохранением тела ошибки Apple, чтобы агент мог прочитать строку
detailот Apple и самостоятельно исправиться.
Покрытие: каждый ресурс App Store Connect
Все 1 263 операции по 195 тегам ресурсов. Количество указано как операции на тег.
Приложения, листинги и метаданные App Store — ~250 операций
Apps (86) · AppStoreVersions (30) · AppInfos (20) · AppCustomProductPageLocalizations (12) · AppStoreVersionExperiments (12) · AppStoreVersionLocalizations (12) · AppEncryptionDeclarations (8) · AppEventLocalizations (8) · AppStoreVersionExperimentTreatmentLocalizations (7) · AppCategories (6) · AppCustomProductPages (6) · AppEvents (6) · AppPreviewSets (6) · AppScreenshotSets (6) · AppStoreVersionExperimentTreatments (6) · EndUserLicenseAgreements (6) · AppCustomProductPageVersions (5) · AppInfoLocalizations (4) · AppPreviews (4) · AppScreenshots (4) · AppEventScreenshots (4) · AppEventVideoClips (4) · AccessibilityDeclarations (4) · AndroidToIosAppMappingDetails (4) · AppTags (3) · AppStoreVersionPhasedReleases (3) · AgeRatingDeclarations (1) · AppStoreVersionPromotions (1) · AppStoreVersionReleaseRequests (1) · RoutingAppCoverages (4)
TestFlight и бета-тестирование — ~90 операций
BetaGroups (21) · BetaTesters (16) · BetaAppLocalizations (7) · BetaBuildLocalizations (7) · PreReleaseVersions (6) · BetaAppReviewDetails (5) · BetaAppReviewSubmissions (5) · BetaLicenseAgreements (5) · BuildBetaDetails (5) · BetaAppClipInvocations (4) · BetaFeedbackCrashSubmissions (4) · BetaRecruitmentCriteria (3) · BetaAppClipInvocationLocalizations (3) · BetaFeedbackScreenshotSubmissions (2) · BetaCrashLogs (1) · BetaRecruitmentCriterionOptions (1) · BetaTesterInvitations (1) · BuildBetaNotifications (1)
Сборки и загрузка — ~50 операций
Builds (30) · BuildBundles (8) · BuildUploads (5) · BuildUploadFiles (3) · DiagnosticSignatures (1)
Покупки и подписки внутри приложения — ~200 операций
Subscriptions (32) · InAppPurchases (25) · SubscriptionGroups (10) · InAppPurchaseOfferCodes (9) · SubscriptionOfferCodes (9) · InAppPurchaseImages (8) · InAppPurchaseLocalizations (8) · InAppPurchasePriceSchedules (8) · InAppPurchaseVersions (8) · SubscriptionGroupLocalizations (8) · SubscriptionImages (8) · SubscriptionLocalizations (8) · SubscriptionVersions (8) · SubscriptionPlanAvailabilities (6) · SubscriptionPromotionalOffers (6) · WinBackOffers (6) · InAppPurchaseAppStoreReviewScreenshots (4) · InAppPurchaseAvailabilities (4) · InAppPurchaseOfferCodeOneTimeUseCodes (4) · SubscriptionAppStoreReviewScreenshots (4) · SubscriptionAvailabilities (4) · SubscriptionGroupVersions (4) · SubscriptionOfferCodeOneTimeUseCodes (4) · SubscriptionPricePoints (4) · InAppPurchaseOfferCodeCustomCodes (3) · SubscriptionIntroductoryOffers (3) · SubscriptionOfferCodeCustomCodes (3) · PromotedPurchases (4) · InAppPurchasePricePoints (2) · SubscriptionGracePeriods (2) · SubscriptionPrices (2) · InAppPurchaseContents (1) · InAppPurchaseSubmissions (1) · SubscriptionGroupSubmissions (1) · SubscriptionSubmissions (1) · SandboxTesters (2) · SandboxTestersClearPurchaseHistoryRequest (1)
Game Center — ~330 операций
GameCenterDetails (42) · GameCenterGroups (29) · GameCenterLeaderboardSets (27) · GameCenterLeaderboards (21) · GameCenterAchievements (19) · GameCenterAchievementLocalizations (14) · GameCenterActivities (14) · GameCenterLeaderboardLocalizations (12) · GameCenterLeaderboardSetLocalizations (12) · GameCenterMatchmakingRuleSets (11) · GameCenterMatchmakingQueues (10) · GameCenterAppVersions (9) · GameCenterAchievementImages (8) · GameCenterChallenges (8) · GameCenterLeaderboardImages (8) · GameCenterLeaderboardSetImages (8) · GameCenterLeaderboardSetMemberLocalizations (8) · GameCenterActivityVersions (7) · GameCenterActivityLocalizations (6) · GameCenterChallengeLocalizations (6) · GameCenterChallengeVersions (6) · GameCenterMatchmakingRules (6) · GameCenterEnabledVersions (5) · плюс версии достижений/таблиц лидеров/активностей/испытаний, изображения, релизы, команды подбора игроков, тесты наборов правил, отправки записей и отправки достижений игроков
Xcode Cloud (непрерывная интеграция) — ~50 операций
CiProducts (13) · CiBuildActions (9) · CiWorkflows (8) · CiBuildRuns (6) · ScmRepositories (6) · CiMacOsVersions (4) · CiXcodeVersions (4) · ScmProviders (4) · CiArtifacts (1) · CiIssues (1) · CiTestResults (1) · ScmGitReferences (1) · ScmPullRequests (1)
Сертификаты, идентификаторы и профили — ~45 операций
BundleIds (11) · Profiles (10) · Certificates (7) · MerchantIds (7) · PassTypeIds (7) · Devices (4) · BundleIdCapabilities (3)
App Review и отправки — ~20 операций
ReviewSubmissions (6) · AppStoreReviewDetails (5) · AppStoreReviewAttachments (4) · ReviewSubmissionItems (3) · AppStoreVersionSubmissions (1)
Ценообразование, доступность и территории — ~25 операций
AppPriceSchedules (8) · AppAvailabilities (4) · AppPricePoints (3) · Nominations (5) · Territories (1) · TerritoryAvailabilities (1) · EndAppAvailabilityPreOrders (1)
Отчёты и аналитика — ~15 операций
AnalyticsReportRequests (5) · AnalyticsReportInstances (3) · AnalyticsReports (3) · AnalyticsReportSegments (1) · SalesReports (1) · FinanceReports (1)
Отзывы покупателей — 6 операций
CustomerReviews (3) · CustomerReviewResponses (3)
Пользователи и доступ — ~15 операций
Users (9) · UserInvitations (6) · Actors (2)
App Clips — ~30 операций
AppClipDefaultExperiences (11) · AppClipDefaultExperienceLocalizations (6) · AppClips (5) · AppClipHeaderImages (4) · AppClipAdvancedExperienceImages (3) · AppClipAdvancedExperiences (3) · AppClipAppStoreReviewDetails (3)
Фоновые ресурсы — ~15 операций
BackgroundAssets (5) · BackgroundAssetVersions (4) · BackgroundAssetUploadFiles (3) · плюс конечные точки релизов App Store, внутреннего и внешнего бета-тестирования
Альтернативное распространение (DMA в ЕС) — ~15 операций
AlternativeDistributionPackageVersions (5) · AlternativeDistributionDomains (4) · AlternativeDistributionKeys (4) · AlternativeDistributionPackages (4) · MarketplaceWebhooks (4) · MarketplaceSearchDetails (3) · AlternativeDistributionPackageDeltas (1) · AlternativeDistributionPackageVariants (1)
Вебхуки — 8 операций
Webhooks (6) · WebhookDeliveries (1) · WebhookPings (1)
Запустите asc_tags в любой момент, чтобы получить актуальный точный список.
Требования
Bun версии 1.1 или новее
Ключ API App Store Connect: Issuer ID, Key ID и файл закрытого ключа
.p8MCP-клиент, поддерживающий stdio: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code с MCP-расширением, Zed или ваш собственный агент
Получите ключ API App Store Connect
Войдите в App Store Connect.
Перейдите в Users and Access → Integrations → App Store Connect API.
Нажмите +, чтобы сгенерировать ключ. Выберите наименьшую роль, покрывающую ваш сценарий использования (
Developer,App ManagerилиAdminдля управления пользователями).Скопируйте Issuer ID (UUID, отображается один раз в верхней части страницы).
Скопируйте Key ID (10 символов).
Скачайте файл закрытого ключа
.p8. Apple позволяет скачать его только один раз. Храните его вне вашего репозитория, например~/.appstoreconnect/AuthKey_XXXXXXXXXX.p8, и выполнитеchmod 600для него.
Пошаговая инструкция от Apple: Creating API keys for App Store Connect API.
Установка в Claude Code
git clone https://github.com/imfaisii/asc-mcp.git
cd asc-mcp
bun install
bun run smoke # offline catalog check + server boot — no credentials neededЗарегистрируйте сервер глобально:
claude mcp add app-store-connect \
-s user \
-t stdio \
-e ASC_ISSUER_ID=your-issuer-uuid \
-e ASC_KEY_ID=your-key-id \
-e ASC_PRIVATE_KEY_PATH=$HOME/.appstoreconnect/AuthKey_XXXXXXXXXX.p8 \
-- bun run /ABS/PATH/to/asc-mcp/src/index.tsПроверьте и перезапустите:
claude mcp get app-store-connect
claude mcp listНачните новую сессию Claude Code. Инструменты появятся как mcp__app-store-connect__asc_search, …asc_schema, …asc_call и …asc_tags.
Установка в Claude Desktop
Добавьте это в claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"app-store-connect": {
"command": "bun",
"args": ["run", "/ABS/PATH/to/asc-mcp/src/index.ts"],
"env": {
"ASC_ISSUER_ID": "your-issuer-uuid",
"ASC_KEY_ID": "your-key-id",
"ASC_PRIVATE_KEY_PATH": "/ABS/PATH/to/AuthKey_XXXXXXXXXX.p8"
}
}
}
}Перезапустите Claude Desktop.
Установка в Cursor, Windsurf, VS Code и другие MCP-клиенты
Подойдёт любой клиент, запускающий stdio MCP-сервер. Формат всегда одинаков — mcp.example.json в этом репозитории — готовый шаблон для копирования.
Cursor — ~/.cursor/mcp.json (глобально) или .cursor/mcp.json (для проекта):
{
"mcpServers": {
"app-store-connect": {
"command": "bun",
"args": ["run", "/ABS/PATH/to/asc-mcp/src/index.ts"],
"env": {
"ASC_ISSUER_ID": "your-issuer-uuid",
"ASC_KEY_ID": "your-key-id",
"ASC_PRIVATE_KEY_PATH": "/ABS/PATH/to/AuthKey_XXXXXXXXXX.p8"
}
}
}
}Windsurf — ~/.codeium/windsurf/mcp_config.json, тот же блок mcpServers.
VS Code — .vscode/mcp.json с блоком servers, использующим те же command, args и env.
Ваш собственный агент — запустите bun run src/index.ts и общайтесь по MCP через stdio. Будет выглядеть, будто он завис в обычном терминале; это stdio-сервер, ожидающий клиента, и это нормально.
Переменные окружения
Переменная | Обязательная | Назначение |
| да | Issuer ID (UUID) из App Store Connect |
| да | Key ID (10 символов) |
| да* | Абсолютный путь к файлу закрытого ключа |
| да* | Содержимое PEM в одну строку, вместо пути к файлу (удобно в CI) |
| нет | По умолчанию |
| нет |
|
* Укажите ровно одну из переменных ASC_PRIVATE_KEY_PATH или ASC_PRIVATE_KEY.
Эти псевдонимы также принимаются: APP_STORE_CONNECT_ISSUER_ID, APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_PRIVATE_KEY_PATH, APP_STORE_CONNECT_PRIVATE_KEY.
Скопируйте .env.example в .env для локальных оболочек. .env* и *.p8 уже находятся в .gitignore.
Как агент использует сервер
1. asc_tags # optional: orient inside 195 resource tags
2. asc_search { query: "list apps" } # find candidate operations
3. asc_schema { operation: "apps_getCollection" } # read the exact input schema
4. asc_call { operation: "apps_getCollection", args: { limit: 10 } }Для любых операций записи сначала выполните пробный запуск:
{ "operation": "appStoreVersions_updateInstance", "_dryRun": true, "args": { "id": "…", "body": { } } }_dryRun возвращает разрешённый метод, путь, параметры пути, запрос и тело без обращения к Apple, чтобы агент мог проверить собственный запрос до его отправки.
Примеры запросов
После подключения сервера всё это работает на обычном языке:
«Список моих приложений с их bundle ID и SKU.»
«Покажи последние 5 сборок TestFlight для MyApp и кому они были распространены.»
«Создай группу бета-тестирования TestFlight под названием Internal QA для MyApp и добавь этих трёх тестировщиков.»
«Какая текущая версия MyApp в App Store в каждой локализации и в каких отсутствует описание?»
«Загрузи отчёт о продажах за этот месяц и сведи количество единиц по территориям.»
«Перечисли все автообновляемые подписки в моей группе подписок с их ценовыми точками.»
«Какие профили подготовки истекают в ближайшие 30 дней?»
«Покажи мою последнюю отправку на App Review и причину отклонения.»
«Получи последние отзывы покупателей с 1 или 2 звёздами и подготовь ответы.»
«Запусти рабочий процесс Xcode Cloud под названием Release и сообщи статус сборки.»
«Каким из моих покупок внутри приложения не хватает скриншота для ревью?»
«Добавь UDID этого устройства в мой аккаунт и перегенерируй профиль разработки.»
Скрипты
Команда | Назначение |
| Установить зависимости |
| Пересобрать |
| Запустить stdio MCP-сервер |
| Сгенерировать, проверить инвентаризацию каталога, запустить сервер. Выполняет живой |
|
|
| Проверка учётных данных в реальном времени через |
Обновление спецификации OpenAPI от Apple
Apple поставляет zip-архив. Включите JSON в проект, перегенерируйте, проверьте:
curl -fsSL -o /tmp/asc-openapi.zip \
"https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip"
unzip -p /tmp/asc-openapi.zip '*.json' > openapi/app-store-connect.openapi.json
bun run generate
bun run smokegenerated/ — это результат сборки. Никогда не редактируйте его вручную — вместо этого перегенерируйте.
Примечание о покрытии: «полная поверхность» означает каждую операцию в опубликованном Apple zip-архиве OpenAPI для включённой версии. Если конечная точка описана в документации Apple для людей, но отсутствует в zip-архиве, она появится здесь после того, как Apple обновит zip-архив, и вы перегенерируете.
Структура проекта
asc-mcp/
├── openapi/
│ └── app-store-connect.openapi.json # Apple's spec, vendored (source of truth)
├── generated/
│ ├── tools.json # 1263-operation catalog (build output)
│ └── manifest.json # counts, tags, spec version
├── src/
│ ├── index.ts # MCP stdio server, 4 meta-tools
│ ├── catalog.ts # search / resolve over the catalog
│ ├── client.ts # fetch wrapper, response shaping
│ ├── auth.ts # ES256 JWT, in-memory cache
│ └── types.ts
├── scripts/
│ ├── generate-tools.ts # OpenAPI → catalog
│ ├── smoke.ts # offline inventory + boot check
│ └── live-check.ts # live GET /v1/apps
├── assets/ # README graphics
├── mcp.example.json
├── .env.example
└── package.jsonМодель безопасности
В этом репозитории не хранится ничего секретного. Учётные данные берутся только из переменных окружения.
.gitignoreисключает*.p8,AuthKey_*.p8и.env*.JWT подписываются по алгоритму ES256 локально вашим
.p8, имеют аудиториюappstoreconnect-v1, действительны 20 минут (максимум, установленный Apple), кэшируются только в памяти и обновляются за 60 секунд до истечения срока действия.Результаты, которые инструменты возвращают модели, никогда не содержат учётные данные.
Единственный сетевой адрес —
ASC_BASE_URL, который по умолчанию указывает на API-хост Apple.Если вы когда-нибудь случайно закоммитите
.p8, немедленно отзовите этот ключ в App Store Connect и создайте новый.
О том, как сообщить об уязвимости, см. SECURITY.md.
Устранение неполадок
Missing credentials / ASC_ISSUER_ID not set
MCP-клиент не передал переменные окружения. Поместите переменные в блок env клиента, а не в профиль вашей оболочки — GUI-приложения, такие как Claude Desktop и Cursor, не наследуют окружение вашей оболочки.
HTTP 401 NOT_AUTHORIZED
Issuer ID, Key ID и .p8 должны относиться к одному и тому же ключу. Убедитесь, что Key ID совпадает с именем файла (AuthKey_<KeyID>.p8) и что ключ не отозван.
HTTP 403 FORBIDDEN_ERROR
Роль ключа слишком узкая для этой операции. Для управления пользователями и финансовых отчётов требуются роли выше Developer.
HTTP 409 со строкой detail в формате JSON:API
Apple отклоняет структуру документа. Выполните тот же вызов с _dryRun: true, сравните с выводом asc_schema и исправьте body.
Сервер «зависает» при запуске bun run start
Так и должно быть. stdio MCP-сервер блокируется в ожидании клиента на stdin. Если нужна проверка, которая завершается, используйте bun run smoke.
Инструменты не отображаются в моём клиенте
Перезапустите клиент после изменения его MCP-конфигурации и используйте абсолютный путь к src/index.ts. Убедитесь, что bun находится в PATH, который видит клиент (which bun), либо укажите абсолютный путь к бинарному файлу bun в качестве command.
Ответы обрезаются
Полезная нагрузка более ~120 000 символов обрезается. Сузьте выборку с помощью fields[…], filter[…] и limit, а не выгружайте целые коллекции.
FAQ
Это официальный продукт Apple? Нет. Это независимый проект с открытым исходным кодом. «App Store Connect», «TestFlight», «Xcode» и «Game Center» — товарные знаки Apple Inc.
Сколько инструментов предоставляет этот MCP-сервер?
По умолчанию четыре — asc_search, asc_schema, asc_call и asc_tags — на базе внутреннего каталога из 1 263 операций App Store Connect API. Установка ASC_EXPOSE_ALL_TOOLS=1 регистрирует каждый из 1 263 инструментов по отдельности, что полезно только для отладки.
Поддерживает ли он TestFlight? Да. Примерно 90 операций охватывают бета-группы, бета-тестеров, приглашения, локализации бета-сборок, подачу бета-приложений на ревью, отчёты о сбоях и критерии набора.
Может ли агент отправить моё приложение на ревью?
Да. ReviewSubmissions, ReviewSubmissionItems, AppStoreVersionSubmissions и ресурсы с деталями ревью — всё это есть в каталоге. Сначала используйте _dryRun и держите человека в цикле для всего, что попадает в App Store.
Работает ли он с Cursor, Windsurf и VS Code? Да. Это обычный stdio MCP-сервер, поэтому его может запустить любой клиент Model Context Protocol.
Хранит ли он или передаёт мой ключ App Store Connect API? Нет. Ключ читается из окружения в момент вызова, используется для локальной подписи кратковременного JWT, и сам JWT уходит только на API-хост Apple.
Чем этот сервер отличается от других App Store Connect MCP-серверов? Большинство из них — написанные вручную обёртки вокруг небольшого подмножества эндпоинтов. Этот же генерирует каталог из официальной OpenAPI-спецификации Apple, поэтому покрытие — вся опубликованная поверхность API, а обновление — одна команда вместо переписывания.
Почему бы просто не дать модели 1 263 инструмента? Полные JSON-схемы для 1 263 операций стоят сотни тысяч контекстных токенов, а многие клиенты обрезают или отклоняют такие длинные списки. Подход «поиск → схема → вызов» стоит несколько тысяч токенов на задачу.
Можно ли использовать его в CI?
Да. Укажите ASC_PRIVATE_KEY в виде встроенного PEM вместо пути к файлу, чтобы ни один .p8 не попал на диск раннера.
Справляется ли он с ограничениями частоты запросов App Store Connect API? Он не повторяет запросы за вас. Ответы и заголовки об ограничении частоты от Apple передаются без изменений, чтобы агент (или ваш код) мог решить, как снизить частоту.
Какая версия App Store Connect API включена в комплект?
4.4.1, OpenAPI 3.0.1. Чтобы перейти на новую версию, замените спецификацию на более новую и выполните bun run generate.
Участие в разработке
Приветствуются issues и pull requests. См. CONTRIBUTING.md. Важнее всего два правила: generated/ перегенерируется, а не редактируется вручную, и никакие учётные данные никогда не появляются в pull request.
Лицензия
MIT © imfaisii
Не аффилирован с Apple Inc. и не одобрен ею.
Ключевые слова: App Store Connect MCP · MCP-сервер для App Store Connect API · MCP-сервер для App Store Connect · Model Context Protocol Apple · TestFlight MCP · Xcode Cloud MCP · MCP для покупок внутри приложения · автоматизация App Store · Claude Code App Store Connect · Cursor MCP App Store Connect · автоматизация релизов iOS с помощью ИИ-агентов
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Apple App Store Connect operations including app management, TestFlight, analytics, reviews, subscriptions, and more through 54 tools.612511MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseNot gradedqualityAmaintenanceA 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.21MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Apple App Store Connect resources like apps, builds, TestFlight, and reviews through natural language.2018MIT
Related MCP Connectors
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/imfaisii/asc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server