# Heimdall

MCP-сервер для работы с App Store Connect и StoreKit 2 прямо из ИИ-агента: релизы, TestFlight, подписки, отзывы, отчёты.

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

## Что делает

Heimdall собран по OpenAPI-спецификации Apple. Внутри 13 профилей, 33 подпрофиля и 928 инструментов — от метаданных приложения и версий до Game Center, Xcode Cloud и финансовых отчётов. Профили подключаются выборочно: можно оставить только нужные, а не тащить всё сразу. Если не помните, где лежит нужный эндпоинт, спросите у агента — сервер сам скажет, в каком профиле он живёт.

Работает локально. Ключ App Store Connect берётся из Keychain, на его основе подписывается короткоживущий токен, и запросы уходят к Apple напрямую. Перед необратимыми действиями — сменой цены, выдачей прав администратора, удалением, отправкой версии на ревью — сервер просит подтверждение и показывает, что именно изменится.

Для запуска нужен Node.js 20.19 или новее и ключ App Store Connect API. Ключу стоит выдать самую узкую роль, которой хватит для задачи: лишние права тут ни к чему. Heimdall не заменяет Fastlane — он закрывает то, что вы обычно делаете руками в веб-интерфейсе.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `ASC_KEY_ID`, `ASC_ISSUER_ID`, `ASC_PRIVATE_KEY`, `ASC_PRIVATE_KEY_PATH`, `ASC_BUNDLE_ID` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

**Командой платформы**
```bash
claude mcp add --env ASC_KEY_ID=<ASC_KEY_ID> --env ASC_ISSUER_ID=<ASC_ISSUER_ID> --env ASC_PRIVATE_KEY=<ASC_PRIVATE_KEY> --env ASC_PRIVATE_KEY_PATH=<ASC_PRIVATE_KEY_PATH> --env ASC_BUNDLE_ID=<ASC_BUNDLE_ID> --transport stdio heimdall -- npx -y @erayendes/asc-mcp
```
Вместо <…> подставьте свои значения

### Codex

**Командой платформы**
```bash
codex mcp add heimdall --env ASC_KEY_ID=<ASC_KEY_ID> --env ASC_ISSUER_ID=<ASC_ISSUER_ID> --env ASC_PRIVATE_KEY=<ASC_PRIVATE_KEY> --env ASC_PRIVATE_KEY_PATH=<ASC_PRIVATE_KEY_PATH> --env ASC_BUNDLE_ID=<ASC_BUNDLE_ID> -- npx -y @erayendes/asc-mcp
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "heimdall": {
            "command": "npx",
            "args": [
                "-y",
                "@erayendes/asc-mcp"
            ],
            "env": {
                "ASC_KEY_ID": "<ASC_KEY_ID>",
                "ASC_ISSUER_ID": "<ASC_ISSUER_ID>",
                "ASC_PRIVATE_KEY": "<ASC_PRIVATE_KEY>",
                "ASC_PRIVATE_KEY_PATH": "<ASC_PRIVATE_KEY_PATH>",
                "ASC_BUNDLE_ID": "<ASC_BUNDLE_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "heimdall": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@erayendes/asc-mcp"
            ],
            "env": {
                "ASC_KEY_ID": "<ASC_KEY_ID>",
                "ASC_ISSUER_ID": "<ASC_ISSUER_ID>",
                "ASC_PRIVATE_KEY": "<ASC_PRIVATE_KEY>",
                "ASC_PRIVATE_KEY_PATH": "<ASC_PRIVATE_KEY_PATH>",
                "ASC_BUNDLE_ID": "<ASC_BUNDLE_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e ASC_KEY_ID=<ASC_KEY_ID> -e ASC_ISSUER_ID=<ASC_ISSUER_ID> -e ASC_PRIVATE_KEY=<ASC_PRIVATE_KEY> -e ASC_PRIVATE_KEY_PATH=<ASC_PRIVATE_KEY_PATH> -e ASC_BUNDLE_ID=<ASC_BUNDLE_ID> heimdall npx -y @erayendes/asc-mcp
```
Вместо <…> подставьте свои значения

## Когда брать
- узнать, какие сборки застряли на ревью
- поднять цену подписки сразу во всех странах
- собрать отзывы за неделю и подготовить ответы
- добавить сборку во внутреннюю и внешнюю группы тестирования
- разобраться, почему упала сборка в Xcode Cloud

## Примеры запросов агенту
- Покажи, какие сборки сейчас на ревью, и что с ними не так
- Подними цену этой подписки во всех странах
- Добавь сборку 42 во внутреннюю и внешнюю группы TestFlight

## Похожие
- [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
