Skip to main content
Glama

개요

asc-mcp는 로컬 macOS MCP 클라이언트를 App Store Connect API에 연결하는 Swift 기반 MCP 서버입니다. 33개의 App Store 도구 도메인과 2개의 핵심 도메인에 걸쳐 502개의 도구를 제공하여 자연어를 통해 iOS 및 macOS 릴리스 워크플로를 자동화할 수 있습니다.

Codex, Claude Code, Claude Desktop, Gemini CLI, VS Code with GitHub Copilot, Continue, Cursor 및 Devin Desktop(구 Windsurf)용 구성 예시가 포함되어 있습니다. 클라이언트 구성은 문서화되어 있으며, 릴리스 CI는 모든 타사 클라이언트를 실행하는 대신 macOS에서 설치, MCP 초기화 및 도구 검색을 검증합니다.

처음이신가요? 빠른 시작을 따라 하세요. 나머지 섹션은 고급 구성, 도구 선택 및 기여자를 위한 참고 자료입니다.

주요 기능

  • 릴리스 및 메타데이터 — 버전, 현지화, 빌드, 심사 제출, 단계적 출시 및 Xcode Cloud

  • TestFlight 및 업로드 — 베타 그룹, 테스터, 피드백, 모집, 빌드 전달, 처리 및 수출 규정 준수

  • 수익화 — 인앱 구매, 구독, 가격, 제공 여부, 오퍼 코드 및 프로모션 오퍼

  • 마케팅 — 스크린샷, 프리뷰, 맞춤 제품 페이지, 제품 페이지 최적화 및 프로모션 구매

  • 계정 및 프로비저닝 — 여러 App Store Connect 팀, 사용자, 번들 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는 특히 GitHub의 macOS 15 러너와 Xcode 26.2를 사용합니다.

macOS 14.0-15.5

선언된 배포 대상만 해당

빌드 및 런타임은 검증되지 않았습니다. 별도로 설치된 Swift 6.2+ 툴체인이 필요할 수 있습니다.

Linux

아직 지원되지 않음

포팅 작업 및 Linux CI가 완료되지 않았습니다.

Windows

지원되지 않음

현재 소스 종속성과 Swift MCP stdio 전송은 Windows와 호환되지 않습니다.

각 Xcode 릴리스에서 지원하는 macOS 버전은 Apple의 Xcode 시스템 요구 사항을 참조하세요.

웹 및 클라우드 세션은 로컬 MCP 구성을 자동으로 상속하지 않습니다. 호환되는 Mac에서 MCP 클라이언트를 로컬로 실행하거나, 실행을 해당 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. App Store Connect API 키 생성

  1. App Store Connect → 사용자 및 액세스 → 통합 → 팀 키를 엽니다.

  2. 워크플로를 처리할 수 있는 최소 권한 역할로 키를 생성합니다. App Manager 또는 Admin은 해당 작업에 필요한 경우에만 필요합니다.

  3. .p8 파일을 다운로드합니다. Apple은 이 파일을 한 번만 다운로드할 수 있도록 허용합니다.

  4. 키 ID와 발급자 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.

연결 또는 요청이 실패하면 문제 해결을 참조하세요.

설치

macOS에서 Mint 사용 (권장)

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 설치는 관리자와 사전 릴리스 테스트만을 위한 것입니다.

소스에서 빌드

호환되는 macOS 버전에서 Xcode 26.x를 사용하거나, 독립 실행형 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는 기존의 모든 도구 이름과 작업자 필터를 유지하지만, 파괴적인 마케팅 및 리뷰 첨부 파일 호출은 이제 Apple 요청 전에 정확한 확인 ID가 필요합니다:

기존 도구

새로 필요한 확인

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는 state가 제공될 때 confirm_experiment_id도 필요합니다. 이름이나 트래픽 비율만 업데이트하는 호출은 변경되지 않습니다. unknown 또는 committed_unverified 변경 결과 이후에는 재시도 전에 반환된 검사 작업을 사용하세요.

기존 마케팅 및 리뷰 첨부 파일 호출에서 문서화되지 않은 최상위 인수를 제거하세요. 버전 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 → 판매 및 동향 → 보고서에서 찾을 수 있습니다.

환경 변수는 자동화에 유용하지만, Finder에서 실행된 GUI 앱은 셸 환경을 상속하지 않을 수 있습니다. 위의 파일 기반 설정이 대부분의 사용자에게 더 간단합니다.

단일 회사:

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를 통한 사용자 구성, 선택적 신뢰 프로젝트 구성

동일한 Mac의 로컬 Codex 클라이언트 간 공유

Claude Code

user, local 또는 project 범위

개인 App Store 유틸리티에는 user가 가장 간단함

Claude Desktop

사용자 수준 데스크톱 구성

편집 후 재시작

Gemini CLI

사용자 설정

로컬 stdio 서버

VS Code with GitHub Copilot

사용자 프로필 또는 .vscode/mcp.json

첫 시작 시 서버 신뢰 확인

Continue

작업공간 .continue/mcpServers/

기본 VS Code MCP 구성과 별개

Cursor

사용자 또는 프로젝트 mcp.json

절대 명령 경로 사용

Devin Desktop (이전 Windsurf)

사용자 MCP 구성

활성 도구를 100개 이하로 유지

권장 CLI 등록:

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

동일한 로컬 MCP 구성은 해당 Mac의 Codex 클라이언트 간에 공유됩니다. 사용자 구성은 $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을, 공유 .mcp.json을 만들려면 --scope project를 사용하세요. 프로젝트 서버는 신뢰 승인이 필요합니다. 커밋된 .mcp.json에 원시 App Store Connect 자격 증명을 절대 넣지 마세요.

Claude는 user 및 local MCP 항목을 ~/.claude.json에 저장합니다. .claude/settings.json은 전역 MCP 레지스트리가 아닙니다. Claude Code 내에서 /mcp를 사용하여 서버를 검사하거나 다시 연결하세요. 공식 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"
    }
  }
}

기본 Gemini MCP 타임아웃은 의도적으로 유지됩니다. 공식 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"
    }
  }
}

파일 편집 후 Cursor 설정에서 MCP 서버를 재시작하거나 새로고침하세요. 공식 Cursor MCP 문서를 참조하세요.

서버를 ~/.codeium/windsurf/mcp_config.json에 추가하세요. 이 예시는 Cascade의 100개 도구 제한 미만인 72개 도구 릴리스 하위 집합을 활성화합니다:

{
  "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 자격 증명 파일을 선호하세요.

워커 필터링

서버는 33개 App Store 도구 도메인 + 2개 핵심 도메인에 걸쳐 502개 도구를 노출합니다. 일부 MCP 클라이언트는 도구 제한을 적용합니다. Devin Desktop의 Cascade는 현재 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 하위 워커가 자동으로 포함됩니다.

읽기 전용 모드

App Store Connect 변경 없이 안전하게 검사하려면 --read-only를 사용하세요:

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 카탈로그를 의미론적 매니페스트 및 고정된 Apple App Store Connect OpenAPI 사양과 비교하세요. 프로덕션 매니페스트는 정확한 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

매니페스트는 버전, SHA-256, 경로 수 및 작업 수로 Apple API 4.4.1에 고정되어 있습니다. 현재 476개의 Apple 작업을 매핑하고, 424개를 명시적으로 지연하며, 363개를 범위 외로 처리하여 총 1,263개 작업을 중복 없이 모두 포함합니다. Apple 문서가 변경되거나, 매핑된 작업이 이동하거나 사라지거나, 공개 도구 또는 워커가 매니페스트에서 벗어나거나, 입력 필드의 바인딩이 손실되거나, 응답 계보가 유효하지 않게 되거나, 지연된 결정이 만료되면 CI가 실패합니다. 노출되지 않은 선택적 Apple 매개변수는 생성된 백로그에 계속 표시되도록 경고로 처리됩니다.

매니페스트 스키마 v2는 또한 모든 선택적 Apple 쿼리 및 요청 본문 입력을 공개적으로 바인딩됨, 내부적으로 제어됨, 검토된 사유로 의도적으로 생략됨 또는 아직 미분류로 설명합니다. 체크인된 optionalInputCoveragePin은 정확한 현재 합계와 정렬된 입력 ID 및 처분의 SHA-256 다이제스트를 기록합니다. --strict는 누락된 핀 또는 개수/ID 수준 드리프트를 거부합니다. 핀은 단계적 수정을 감사 가능하고 회귀 안전하게 만들지만 모든 선택적 Apple 입력이 이미 공개되었다는 주장은 아닙니다. v4.1.3 핀은 총 2,905개입니다: 바인딩 1,122개, 내부 제어 40개, 의도적 생략 1,743개, 미분류 0개. ID SHA-256은 c975f4e4eebb62ec87864a73fbf72bb8841f644108e54e6ffb25168bcf2a2766입니다.

--strict는 병합 및 태그 시점의 릴리스 게이트입니다. 선언된 target 또는 broken 도구는 보고서에서 오류로 유지되며 회귀 테스트가 정확한 상태를 고정합니다. 현재 기준선에는 target 또는 broken 구현이 없고 구현 드리프트도 없으므로 asBuilt를 벗어나는 구현, 구조적 계약 오류 또는 선택적 입력 커버리지 드리프트는 병합과 릴리스를 모두 차단합니다. --structural-strict는 로컬 단계적 수정 작업에만 계속 사용할 수 있습니다.

이 게이트는 작업 ID, 최상위 MCP 필드 소유권, 필수 Apple 입력, 유형화된 내부 값 및 응답 소스/포인터 계보를 증명합니다. 전체 MCP 유형/열거형/범위 일치 및 완전한 유형화된 응답 스키마는 별도의 최적화 단계로 남아 있습니다. 현재 매핑 상태는 부분 469개, 더 이상 사용되지 않음 33개입니다.

이전 openapi-coverage 명령은 ASC-OPENAPI-COVERAGE-GENERATED.md의 높은 수준 도메인 보고서에 계속 사용할 수 있습니다. operation contract가 권위 있는 릴리스 게이트입니다.

사용 가능한 워커 이름:

워커

접두사

도구

설명

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 제품, 워크플로 관리, 빌드 실행, 아티팩트, 이슈, 테스트 결과, 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

번들 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 사용량 지표

도구 카탈로그 크기

MCP 클라이언트가 모든 도구 정의를 즉시 로드할 때 대략적인 스키마 크기는 다음과 같습니다:

구성

도구

~토큰

모든 워커(기본값)

502

~60,000

릴리스 워크플로: 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

API 액세스를 위한 JWT 토큰 생성

auth_validate_token

표준 팀 키 JWT를 로컬에서 검증합니다: ES256 서명, 구성된 kid/iss, App Store Connect 대상(audience), 발급 시각 및 만료 클레임, 20분 최대 수명. Apple API를 호출하지 않으며 서버 수락을 증명하지 않습니다.

auth_refresh_token

JWT 토큰 강제 새로고침

auth_token_status

JWT 토큰 캐시 상태 가져오기

도구

설명

apps_list

모든 앱을 필터링하여 나열

apps_get_details

앱 상세 정보 가져오기

apps_search

이름 또는 Bundle ID로 앱 검색

apps_list_versions

모든 버전을 상태와 함께 나열

apps_get_metadata

버전의 지역화된 메타데이터 가져오기

apps_list_search_keywords

맞춤 페이지 타겟팅을 위한 표준 App Store 검색 키워드 ID 나열

apps_update_metadata

메타데이터 업데이트(What's New, 설명 등)

apps_list_localizations

콘텐츠 상태와 함께 지역화 목록 나열

apps_create_localization

버전에 대한 새 지역화 생성

apps_delete_localization

버전에서 지역화 삭제

도구

설명

accessibility_list

앱의 접근성 선언 나열

accessibility_get

접근성 선언 하나 가져오기

accessibility_create

기기 제품군에 대한 선언 생성

accessibility_update

지원 플래그 업데이트 또는 선언 게시

accessibility_delete

선언 삭제

accessibility_list_relationships

앱의 선언 관계 ID 나열

도구

설명

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

웹훅 이벤트 또는 전송 실패에 대한 실행 가능한 트라이지 계획 생성

도구

설명

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

Xcode 버전과 호환되는 macOS 버전 나열

xcode_cloud_macos_versions_list

사용 가능한 macOS 버전 나열

xcode_cloud_macos_versions_get

macOS 버전 가져오기

xcode_cloud_macos_version_xcode_versions_list

macOS 버전과 호환되는 Xcode 버전 나열

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

저장소 풀 리퀘스트 나열

xcode_cloud_scm_git_references_get

git 참조 가져오기

xcode_cloud_scm_pull_requests_get

풀 리퀘스트 가져오기

도구

설명

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

베타 스크린샷 피드백 제출 삭제

도구

설명

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

모호한 POST를 재실행하지 않고 Build Upload 부모를 생성합니다

build_uploads_delete

정확한 ID 확인 후 Build Upload 부모를 삭제합니다

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로 표시된 기존 예약은 Apple의 sourceFileChecksums.file MD5가 해당 스냅샷과 일치하는 경우에만 수락됩니다. 누락되었거나 지원되지 않거나 불일치하는 증거는 추가 전송, 커밋 또는 삭제 없이 검사용으로 보존됩니다. 사전 서명된 작업은 메서드가 PUT인 경우에만 재시도됩니다. 리디렉션, POST 및 알 수 없는 메서드는 재실행되지 않습니다. 모호한 생성이 고유하게 복구되면 워크플로는 중지되고 명시적 연속을 위해 리소스 ID를 반환합니다. 전송 자격 증명은 직접 읽기에서 include_sensitive_details가 명시적으로 활성화되지 않는 한 편집된 상태로 유지됩니다.

도구

설명

builds_get_processing_state

현재 처리 상태를 가져옵니다

builds_update_encryption

암호화 규정 준수를 설정합니다

builds_get_processing_status

상세 처리 상태를 가져옵니다

builds_check_readiness

빌드가 제출 준비가 되었는지 확인합니다

도구

설명

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

정확한 바이트와 소문자 MD5 영수증으로 AWAITING_UPLOAD 예약을 재개합니다

export_compliance_inspect_document

문서 존재 여부를 검사하고 전달 상태를 분류합니다

export_compliance_get_build_declaration

현재 빌드에 연결된 신고를 가져옵니다

export_compliance_attach_build_declaration

승인된 신고를 연결하고 관계를 확인합니다

export_compliance_check_release_readiness

빌드의 수출 규정 준수 릴리스 게이트만 평가합니다

도구

설명

builds_get_beta_detail

빌드에 대한 TestFlight 구성을 가져옵니다

builds_update_beta_detail

TestFlight 설정을 업데이트합니다

builds_set_beta_localization

TestFlight의 What's New를 설정합니다

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

빌드에 할당된 개별 테스터 목록을 나열합니다

도구

설명

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

기기 제품군 및 OS 버전 모집 기준을 생성합니다

beta_groups_update_recruitment_criteria

모집 필터를 교체하거나 명시적으로 지웁니다

beta_groups_delete_recruitment_criteria

정확한 기준 ID 확인 후 모집 기준을 삭제합니다

beta_groups_list_recruitment_options

Apple이 현재 허용하는 기기 제품군 및 OS 버전 목록을 나열합니다

beta_groups_check_recruitment_compatibility

그룹에 기준과 호환되는 빌드가 있는지 확인합니다

테스터 목록/검색/조회/생성/삭제, 앱 관계, 초대, 베타 그룹 할당, 빌드 할당 및 앱 제거 도구를 포함합니다.

도구

설명

app_versions_create

새 앱 버전을 생성합니다

app_versions_list

상태 필터링으로 버전 목록을 나열합니다

app_versions_get

상세 버전 정보를 가져옵니다

app_versions_get_age_rating_declaration

앱 정보 연령 등급 설문을 읽습니다

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

앱용 AI 친화적 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 또는 제공 여부 ID로 제공 여부 가져오기

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

IAP 버전 현지화의 nullable 텍스트 업데이트하기

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를 더 이상 사용하지 않습니다(deprecate). 성공 응답은 버전별 대체 도구를 식별합니다. 현지화 생성, 프로모션 이미지 업로드 및 심사 제출의 경우 먼저 iap_list_versions를 사용하고, 새 메타데이터 버전이 필요한 경우에만 iap_create_version을 호출한 다음 해당 버전 ID를 후속 버전별 도구에 전달하세요. 이러한 호환성 호출은 버전을 자동으로 생성하거나 선택하지 않습니다.

Apple이 버전 또는 버전 현지화 생성을 수락했을 수 있지만 응답이 유실되었거나 디코딩할 수 없는 경우, 도구는 요청된 ID와 목록/가져오기 검사 단계와 함께 write_outcome: not_confirmed 및 retrySafe: false를 반환합니다. 중복 메타데이터 리소스를 방지하려면 재시도 전에 검사하세요.

구독 및 그룹 메타데이터 버전, 버전 소유 현지화 및 이미지, 플랜 유형별 제공 여부, 지역별 가격, 가격 포인트 및 조정된 균등화, 프로모션 구매 읽기, 인벤토리/가격 책정 도우미, 인트로 오퍼, 프로모션 오퍼, 프로모션 코드, 일회용/맞춤 코드, 재유입 오퍼 및 심사용 스크린샷이 포함됩니다. 이전의 공개 offer_codes_*, intro_offers_*, promo_offers_*, winback_* 기능은 모두 subscriptions_*를 통해 제공됩니다.

Apple 4.4.1은 또한 레거시 제품 또는 그룹 범위 현지화, 이미지 및 제출 도구를 더 이상 사용하지 않습니다(deprecate). 이 도구들은 호환성을 위해 계속 호출할 수 있으며, 성공 시 명시적인 대체 지침을 반환하고 메타데이터 버전을 자동으로 생성하거나 선택하지 않습니다. 새 통합은 subscriptions_create_version 또는 subscriptions_create_group_version, 해당 버전 현지화/이미지 도구 및 일반 review_submissions_* 워크플로를 사용해야 합니다.

구독 버전, 그룹 버전, 현지화 및 플랜 제공 여부 생성은 동일한 비멱등(non-idempotent) 복구 계약을 사용합니다. 모호한 Apple 쓰기 요청은 write_outcome: not_confirmed, retrySafe: false, 요청된 지문 및 결정적 컬렉션/가져오기 검사 지침을 반환합니다.

다음 이름은 호환성을 위해 계속 사용할 수 있지만, Apple 4.4.1은 레거시 subscriptionAvailability 리소스를 더 이상 사용하지 않고(deprecate) 플랜 유형별 subscriptionPlanAvailabilities를 사용합니다:

도구

호환성 상태

subscriptions_get_availability

더 이상 사용되지 않는 레거시 가용성 읽기

subscriptions_set_availability

더 이상 사용되지 않는 레거시 가용성 쓰기

subscriptions_list_available_territories

더 이상 사용되지 않는 레거시 지역 목록

subscriptions_inventory

더 이상 사용되지 않는 도우미; 첫 번째 포함된 관계 페이지 이후의 구독은 생략할 수 있으며 권위 있는 전체 목록이 아닙니다.

도구

설명

sandbox_list

샌드박스 테스터 나열

sandbox_update

샌드박스 테스터 설정 업데이트

sandbox_clear_purchase_history

샌드박스 테스터의 구매 기록 지우기

도구

설명

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

베타 앱 검토 세부 정보 업데이트

프리릴리스 버전 목록, 세부 정보 및 관련 빌드를 포함합니다.

베타 라이선스 계약 목록, 가져오기 및 업데이트를 포함합니다.

도구

설명

provisioning_list_bundle_ids

등록된 번들 식별자 나열

provisioning_get_bundle_id

번들 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_get_profile

프로필 세부 정보 가져오기

provisioning_delete_profile

프로필 삭제

provisioning_create_profile

프로비저닝 프로필 생성

provisioning_list_capabilities

번들 ID 기능 나열

provisioning_enable_capability

기능 활성화

provisioning_disable_capability

기능 비활성화

앱 정보 목록/가져오기/업데이트, 앱 정보 현지화, EULA 가져오기/생성/업데이트 도구를 포함합니다.

지역, 가용성, 가격 포인트, 가격 일정 및 App Store 가용성 v2 도구를 포함합니다.

팀원 목록/가져오기/업데이트/제거, 초대, 표시 앱 및 표시 앱 관계 업데이트를 포함합니다.

인앱 이벤트 CRUD 및 이벤트 현지화 목록/생성/업데이트/삭제를 포함합니다.

판매, 재무, 앱 요약, 분석 보고서 요청, 보고서, 인스턴스, 스냅샷 및 세그먼트 도구를 포함합니다.

도구

설명

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

멤버십 및 사후 검증을 통해 세트의 모든 미리보기 순서 변경

screenshots_upload_batch

스크린샷 일괄 업로드

screenshots_delete_preview

미리보기 삭제

도구

설명

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

정확한 확인 후 검색 키워드 관계 제거

도구

설명

ppo_list_experiments

A/B 테스트 실험 나열

ppo_list_version_experiments

App Store 버전의 V2 실험 나열

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의 응답이 유효한 항목 ID와 요청된 관계 이름, JSON:API 유형 및 리소스 ID를 정확히 확인한 경우에만 성공을 보고합니다. 불일치가 있으면 제출 및 항목 목록 복구 단계와 함께 확인되지 않은 쓰기로 반환됩니다.

도구

설명

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는 메타데이터 업데이트에 대해 편집 가능한 상태를 검증합니다. 거부된 버전과 메타데이터 거부된 버전은 재제출을 위해 편집할 수 있습니다. 게시되었거나 검토 중인 버전은 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이며, 적절한 actor 격리를 갖춥니다

  • Actor 기반 HTTP 클라이언트 — 지수 백오프 및 재시도 로직으로 스레드 안전

  • 접두사 기반 라우팅 — WorkerManager는 이름 접두사로 도구 호출을 라우팅합니다 (구성 불필요)

  • 최소한의 의존성 — MCP Swift SDK만 사용

문제 해결

  1. MCP 클라이언트와 별개로 설치를 확인하려면 ~/.mint/bin/asc-mcp --version을 실행합니다.

  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 구성을 변경한 후 GUI 클라이언트를 다시 시작하고 클라이언트의 MCP 출력 로그를 확인합니다.

  1. Key ID와 Issuer ID가 App Store Connect에 표시된 값과 일치하는지 확인합니다.

  2. .p8 파일이 원본 다운로드 파일인지(수정되지 않았는지) 확인합니다.

  3. API 키가 해지되지 않았는지 확인합니다.

  4. JWT 토큰은 자동으로 갱신되지만, 키가 유효하지 않으면 모든 요청이 실패합니다.

apps_update_metadata는 로컬 텍스트, 로캘 및 URL 검증 후 메타데이터 PATCH를 App Store Connect로 전송합니다. 현재 버전 상태를 편집할 수 있는지 여부는 Apple이 결정합니다. 거부된 버전과 메타데이터 거부된 버전은 편집 후 재제출할 수 있습니다. 게시되었거나 검토 중이거나 기타 잠긴 버전은 Apple API 오류를 반환할 수 있습니다.

builds_get_processing_status를 사용하여 현재 처리 상태를 확인하고, builds_check_readiness를 사용하여 App Store/TestFlight 준비 상태를 검증합니다. Apple의 빌드 처리는 일반적으로 5~30분이 소요되지만, 피크 시간에는 더 오래 걸릴 수 있습니다.

HTTP 클라이언트는 429 응답에 대해 지수 백오프로 자동 재시도합니다. 제한에 계속 도달하면 API 호출 빈도를 줄이거나 더 작은 페이지 크기로 페이지네이션을 사용하세요.

도움말

보고서를 작성하기 전에 기존 이슈를 검색하세요. 새로운 문제라면 이슈 열기를 통해 다음을 포함하세요:

  • 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. 워커의 handleTool() switch에 라우팅 케이스를 추가합니다.

  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.와 제휴하거나 보증하지 않습니다.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    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
    51 npm
    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
    263 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    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.
    6 npm
    MIT