# appstore-connect-mcp

Подключает ИИ-ассистента к App Store Connect API: сборки TestFlight, отзывы, метаданные и отчёты по продажам прямо в редакторе.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 52
- Автор: ryaker
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/ryaker/appstore-connect-mcp
- Обновлён: 2026-08-28
- HTML: https://affpapa.org/nevibecode/mcp/appstore-connect-mcp

## Что делает

Сервер работает через `npx`, клонировать репозиторий не нужно. Внутри — набор инструментов для App Store Connect API: просмотр приложений и статусов версий, правка локализаций и текста релиза, список сборок TestFlight, управление группами бета-тестеров, чтение отзывов и черновики ответов, выгрузка метрик загрузок и выручки по регионам.

Аутентификация двойная: локальный ключ API или удалённый OAuth 2.0 через Auth0. Для локального варианта понадобятся три переменные — `APPLE_KEY_ID`, `APPLE_ISSUER_ID` и `APPLE_PRIVATE_KEY` с содержимым файла `.p8`. Ключ создаётся в App Store Connect в разделе Users and Access → Integrations → App Store Connect API; роль Admin или App Manager. Без скачанного `.p8` сервер не поднимется, потому что подпись запросов строится на этом ключе.

Переменные `APPLE_BUNDLE_ID` и `APPLE_APP_STORE_ID` необязательны и сужают область работы инструментов до одного приложения. `OAUTH_ENABLED=true` нужен, если сервер разворачивается удалённо.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `APPLE_KEY_ID`, `APPLE_ISSUER_ID`, `APPLE_PRIVATE_KEY`, `APPLE_BUNDLE_ID`, `APPLE_APP_STORE_ID`, `OAUTH_ENABLED`, `OAUTH_ISSUER`, `OAUTH_AUDIENCE`, `OAUTH_JWKS_URI`, `SERVER_URL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env APPLE_KEY_ID=<APPLE_KEY_ID> --env APPLE_ISSUER_ID=<APPLE_ISSUER_ID> --env APPLE_PRIVATE_KEY=<APPLE_PRIVATE_KEY> --env APPLE_BUNDLE_ID=<APPLE_BUNDLE_ID> --env APPLE_APP_STORE_ID=<APPLE_APP_STORE_ID> --transport stdio appstore-connect-mcp -- npx -y @ryaker/appstore-connect-mcp
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add appstore-connect-mcp --env APPLE_KEY_ID=<APPLE_KEY_ID> --env APPLE_ISSUER_ID=<APPLE_ISSUER_ID> --env APPLE_PRIVATE_KEY=<APPLE_PRIVATE_KEY> --env APPLE_BUNDLE_ID=<APPLE_BUNDLE_ID> --env APPLE_APP_STORE_ID=<APPLE_APP_STORE_ID> -- npx -y @ryaker/appstore-connect-mcp
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "appstore-connect-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@ryaker/appstore-connect-mcp"
            ],
            "env": {
                "APPLE_KEY_ID": "<APPLE_KEY_ID>",
                "APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
                "APPLE_PRIVATE_KEY": "<APPLE_PRIVATE_KEY>",
                "APPLE_BUNDLE_ID": "<APPLE_BUNDLE_ID>",
                "APPLE_APP_STORE_ID": "<APPLE_APP_STORE_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "appstore-connect-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@ryaker/appstore-connect-mcp"
            ],
            "env": {
                "APPLE_KEY_ID": "<APPLE_KEY_ID>",
                "APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
                "APPLE_PRIVATE_KEY": "<APPLE_PRIVATE_KEY>",
                "APPLE_BUNDLE_ID": "<APPLE_BUNDLE_ID>",
                "APPLE_APP_STORE_ID": "<APPLE_APP_STORE_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e APPLE_KEY_ID=<APPLE_KEY_ID> -e APPLE_ISSUER_ID=<APPLE_ISSUER_ID> -e APPLE_PRIVATE_KEY=<APPLE_PRIVATE_KEY> -e APPLE_BUNDLE_ID=<APPLE_BUNDLE_ID> -e APPLE_APP_STORE_ID=<APPLE_APP_STORE_ID> appstore-connect-mcp npx -y @ryaker/appstore-connect-mcp
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

## Когда брать
- посмотреть статусы обработки свежих сборок TestFlight
- собрать жалобы из свежих отзывов с одной звездой
- поправить текст релиза для конкретной локали
- добавить тестировщика в бета-группу
- выгрузить динамику загрузок и выручки по регионам

## Примеры запросов агенту
- Покажи последние сборки TestFlight и на каком этапе обработки они сейчас
- Собери свежие отзывы с одной звездой и перечисли основные жалобы
- Обнови текст релиза для версии 1.2.0 в локали English (US)

## Похожие
- [mobile-mcp](https://affpapa.org/nevibecode/mcp/mobile-mcp.md) — MCP-сервер · ★ 9946
- [mobilerun](https://affpapa.org/nevibecode/mcp/mobilerun.md) — MCP-сервер · ★ 9751
- [e2e](https://affpapa.org/nevibecode/mcp/e2e.md) — MCP-сервер · ★ 11912
- [XcodeBuildMCP](https://affpapa.org/nevibecode/mcp/xcodebuildmcp.md) — MCP-сервер · ★ 6505
- [ShipSwift](https://affpapa.org/nevibecode/mcp/shipswift.md) — MCP-сервер · ★ 3244
- [agent-device](https://affpapa.org/nevibecode/mcp/agent-device.md) — MCP-сервер · ★ 5149

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
