asc-mcp
개요
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 |
각 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 --version2. App Store Connect API 키 생성
워크플로를 처리할 수 있는 최소 권한 역할로 키를 생성합니다. App Manager 또는 Admin은 해당 작업에 필요한 경우에만 필요합니다.
.p8파일을 다운로드합니다. Apple은 이 파일을 한 번만 다운로드할 수 있도록 허용합니다.키 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 listClaude Code
claude mcp add \
--transport stdio \
--scope user \
asc-mcp \
-- ~/.mint/bin/asc-mcp
claude mcp get asc-mcp
claude mcp listClaude 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가 필요합니다:
기존 도구 | 새로 필요한 확인 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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를 모두 제공해야 하며, 첫 번째 누락된 쌍에서 스캔이 중지됩니다.
서버는 다음 순서로 자격 증명을 해석합니다:
--companies /absolute/path/to/companies.json프로그래매틱 임베딩을 위한 생성자 매개변수
ASC_MCP_COMPANIES=/absolute/path/to/companies.json~/.config/asc-mcp/companies.json을 포함한 기본 구성 파일 위치ASC_COMPANY_1_KEY_ID및 기타 번호가 매겨진 다중 회사 변수단일 회사용
ASC_KEY_ID,ASC_ISSUER_ID및 개인 키 변수
MCP 클라이언트 설정
아래의 모든 예시는 Mint 설치와 권장 companies.json 자격 증명 파일을 가정합니다. /Users/you를 실제 홈 디렉터리 경로로 바꾸세요. GUI 클라이언트는 일반적으로 절대 실행 파일 경로가 필요합니다.
클라이언트 | 구성 범위 | 참고 사항 |
Codex | CLI를 통한 사용자 구성, 선택적 신뢰 프로젝트 구성 | 동일한 Mac의 로컬 Codex 클라이언트 간 공유 |
Claude Code |
| 개인 App Store 유틸리티에는 |
Claude Desktop | 사용자 수준 데스크톱 구성 | 편집 후 재시작 |
Gemini CLI | 사용자 설정 | 로컬 |
VS Code with GitHub Copilot | 사용자 프로필 또는 | 첫 시작 시 서버 신뢰 확인 |
Continue | 작업공간 | 기본 VS Code MCP 구성과 별개 |
Cursor | 사용자 또는 프로젝트 | 절대 명령 경로 사용 |
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_submissionscompany 및 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가 권위 있는 릴리스 게이트입니다.
사용 가능한 워커 이름:
워커 | 접두사 | 도구 | 설명 |
|
| 3 | 멀티 계정 관리 |
|
| 4 | JWT 토큰 도구 |
|
| 10 | 앱 목록, 메타데이터, 현지화, 검색 키워드 ID |
|
| 6 | App Store 접근성 선언 |
|
| 11 | 웹훅 알림, 전달 진단, 수신자 도우미 |
|
| 42 | Xcode Cloud 제품, 워크플로 관리, 빌드 실행, 아티팩트, 이슈, 테스트 결과, SCM |
|
| 4 | 빌드 관리 |
|
| 10 | 빌드 업로드 부모, 파일, 안전한 전송, 복구 |
|
| 4 | 빌드 상태, 암호화 |
|
| 11 | 암호화 선언, 문서 업로드, 빌드 연결, 준비 상태 |
|
| 11 | TestFlight 현지화, 알림 |
|
| 17 | 버전 수명 주기, 연령 등급, 제출, 릴리스 |
|
| 8 | 고객 리뷰 및 응답 |
|
| 15 | TestFlight 그룹 및 공개 링크 모집 기준 |
|
| 8 | TestFlight 피드백 스크린샷, 크래시 제출, 크래시 로그 |
|
| 12 | 테스터 관리 |
|
| 59 | 인앱 구매, 버전별 메타데이터, 가격, 제공 여부, 오퍼 코드, 리뷰 에셋 |
|
| 99 | 구독 및 그룹 버전, 가격, 플랜 제공 여부, 오퍼, 에셋 |
|
| 3 | 샌드박스 테스터 |
|
| 10 | 베타 앱 현지화 및 리뷰 |
|
| 3 | 프리릴리스 버전 |
|
| 3 | 베타 라이선스 계약 |
|
| 17 | 번들 ID, 기기, 인증서 |
|
| 10 | 앱 정보, 카테고리, EULA |
|
| 9 | 지역, 가격 |
|
| 10 | 팀 구성원, 역할 |
|
| 9 | 인앱 이벤트, 현지화 |
|
| 11 | 판매/재무 보고서, 분석 |
|
| 19 | 스크린샷, 미리보기, 세트, 검증된 정렬 |
|
| 17 | 사용자 지정 제품 페이지, 버전, 현지화, 검색 키워드 |
|
| 15 | 제품 페이지 최적화 실험, 처리, 현지화 |
|
| 10 | 프로모션 인앱 구매 및 검증된 정렬 |
|
| 4 | App Store 리뷰 첨부 파일 |
|
| 9 | 일반 App Store 리뷰 제출 및 제출 항목 |
|
| 9 | 성능 지표, 진단, TestFlight 사용량 지표 |
도구 카탈로그 크기
MCP 클라이언트가 모든 도구 정의를 즉시 로드할 때 대략적인 스키마 크기는 다음과 같습니다:
구성 | 도구 | ~토큰 |
모든 워커(기본값) | 502 | ~60,000 |
릴리스 워크플로: | ~72 | ~8,900 |
수익화: | 184 | ~21,100 |
TestFlight: | ~63 | ~7,100 |
마케팅: | ~78 | ~8,800 |
| 17 | ~2,100 |
가장 무거운 워커: Subscriptions(99개 도구), InAppPurchases(59개 도구), Xcode Cloud(42개 도구), Screenshots(19개 도구), Provisioning(17개 도구).
정확한 비용은 MCP 호스트의 직렬화, 토크나이저, 도구 검색 전략에 따라 달라집니다. 최신 클라이언트는 스키마를 필요할 때까지 지연할 수 있습니다. 클라이언트가 도구 수 제한을 적용하거나 더 작고 집중된 카탈로그를 원할 때 --workers를 사용하세요.
사용 가능한 도구
502개 도구가 33개 App Store 도구 도메인 + 2개 핵심 도메인에 걸쳐 구성되어 있습니다(35개 --workers 필터 키 사용 — 워커 필터링 참조):
도구 | 설명 |
| 구성된 모든 회사 나열 |
| API 작업에 사용할 활성 회사 전환 |
| 현재 활성 회사 정보 가져오기 |
도구 | 설명 |
| API 액세스를 위한 JWT 토큰 생성 |
| 표준 팀 키 JWT를 로컬에서 검증합니다: ES256 서명, 구성된 |
| JWT 토큰 강제 새로고침 |
| JWT 토큰 캐시 상태 가져오기 |
도구 | 설명 |
| 모든 앱을 필터링하여 나열 |
| 앱 상세 정보 가져오기 |
| 이름 또는 Bundle ID로 앱 검색 |
| 모든 버전을 상태와 함께 나열 |
| 버전의 지역화된 메타데이터 가져오기 |
| 맞춤 페이지 타겟팅을 위한 표준 App Store 검색 키워드 ID 나열 |
| 메타데이터 업데이트(What's New, 설명 등) |
| 콘텐츠 상태와 함께 지역화 목록 나열 |
| 버전에 대한 새 지역화 생성 |
| 버전에서 지역화 삭제 |
도구 | 설명 |
| 앱의 접근성 선언 나열 |
| 접근성 선언 하나 가져오기 |
| 기기 제품군에 대한 선언 생성 |
| 지원 플래그 업데이트 또는 선언 게시 |
| 선언 삭제 |
| 앱의 선언 관계 ID 나열 |
도구 | 설명 |
| 앱의 웹훅 나열 |
| ID로 웹훅 가져오기 |
| 웹훅 구성 생성 |
| 웹훅 필드 업데이트 |
| 웹훅 삭제 |
| 전송 시도 목록 나열 |
| 기존 전송 다시 보내기 |
| 테스트 핑 보내기 |
| 정확한 원시 페이로드 본문에 대해 |
| 원시 웹훅 알림 페이로드 구문 분석 및 정규화 |
| 웹훅 이벤트 또는 전송 실패에 대한 실행 가능한 트라이지 계획 생성 |
도구 | 설명 |
| Xcode Cloud 제품 나열 |
| Xcode Cloud 제품 가져오기 |
| 확인 보호 장치와 함께 Xcode Cloud 제품 미리 보기 또는 영구 삭제 |
| 앱과 연결된 Xcode Cloud 제품 가져오기 |
| Xcode Cloud 제품과 연결된 앱 가져오기 |
| 제품에 연결된 기본 저장소 나열 |
| 제품에 연결된 추가 저장소 나열 |
| 제품의 워크플로우 나열 |
| 제품의 빌드 실행 나열 |
| 워크플로우 가져오기 |
| Xcode Cloud 워크플로우 생성 |
| Xcode Cloud 워크플로우 업데이트 |
| 확인 보호 장치와 함께 워크플로우 미리 보기 또는 영구 삭제 |
| 워크플로우에서 사용하는 저장소 가져오기 |
| 워크플로우의 빌드 실행 나열 |
| 빌드 실행 가져오기 |
| Xcode Cloud 빌드 시작 또는 재빌드 |
| 실행의 빌드 작업 나열 |
| 실행으로 생성된 App Store Connect 빌드 나열 |
| 빌드 작업 가져오기 |
| 빌드 작업을 소유한 빌드 실행 가져오기 |
| 작업의 아티팩트 나열 |
| 작업의 이슈 나열 |
| 작업의 테스트 결과 나열 |
| 아티팩트 가져오기 |
| 이슈 가져오기 |
| 테스트 결과 가져오기 |
| 사용 가능한 Xcode 버전 나열 |
| Xcode 버전 가져오기 |
| Xcode 버전과 호환되는 macOS 버전 나열 |
| 사용 가능한 macOS 버전 나열 |
| macOS 버전 가져오기 |
| macOS 버전과 호환되는 Xcode 버전 나열 |
| SCM 공급자 나열 |
| SCM 공급자 가져오기 |
| SCM 공급자의 저장소 나열 |
| SCM 저장소 나열 |
| SCM 저장소 가져오기 |
| 저장소 git 참조 나열 |
| 저장소 풀 리퀘스트 나열 |
| git 참조 가져오기 |
| 풀 리퀘스트 가져오기 |
도구 | 설명 |
| 베타 크래시 피드백 제출 목록 나열 |
| 베타 크래시 피드백 제출 하나 가져오기 |
| 제출에 대한 크래시 로그 읽기 |
| 크래시 로그 ID로 크래시 로그 읽기 |
| 베타 크래시 피드백 제출 삭제 |
| 베타 스크린샷 피드백 제출 목록 나열 |
| 베타 스크린샷 피드백 제출 하나 가져오기 |
| 베타 스크린샷 피드백 제출 삭제 |
도구 | 설명 |
| 처리 상태와 함께 빌드 나열 |
| 상세 빌드 정보 가져오기 |
| 버전 번호로 빌드 찾기 |
| 특정 앱 버전의 빌드 가져오기 |
도구 | 설명 |
| 필터, 희소 필드, 포함 및 엄격한 페이지네이션으로 앱의 Build Upload 부모 목록을 나열합니다 |
| 처리 진단 및 선택적 포함 리소스와 함께 Build Upload 하나를 가져옵니다 |
| 모호한 POST를 재실행하지 않고 Build Upload 부모를 생성합니다 |
| 정확한 ID 확인 후 Build Upload 부모를 삭제합니다 |
| 엄격한 페이지네이션으로 하나의 Build Upload 아래 파일 예약 목록을 나열합니다 |
| Build Upload File 하나와 그 전달 상태를 가져옵니다 |
| 모호한 POST를 재실행하지 않고 정확한 파일 하나를 예약합니다 |
| 누락과 null을 별도로 유지하면서 체크섬 또는 업로드 상태 변경을 커밋합니다 |
| 변경 불가능한 로컬 스냅샷에서 새 예약 또는 기존 예약을 전송합니다 |
| 부모 생성, 예약, 전송, 커밋 및 처리 조정을 실행합니다 |
복합 업로드는 예약부터 복구까지 동일한 소문자 MD5 지문을 유지합니다. 명시적 재개 및 복구된 연속 지침은 expected_md5를 전달합니다. 다음 호출은 Apple 요청이나 전송 전에 이 값에 대해 새로운 변경 불가능한 스냅샷을 검증합니다. 이미 UPLOAD_COMPLETE 또는 COMPLETE로 표시된 기존 예약은 Apple의 sourceFileChecksums.file MD5가 해당 스냅샷과 일치하는 경우에만 수락됩니다. 누락되었거나 지원되지 않거나 불일치하는 증거는 추가 전송, 커밋 또는 삭제 없이 검사용으로 보존됩니다. 사전 서명된 작업은 메서드가 PUT인 경우에만 재시도됩니다. 리디렉션, POST 및 알 수 없는 메서드는 재실행되지 않습니다. 모호한 생성이 고유하게 복구되면 워크플로는 중지되고 명시적 연속을 위해 리소스 ID를 반환합니다. 전송 자격 증명은 직접 읽기에서 include_sensitive_details가 명시적으로 활성화되지 않는 한 편집된 상태로 유지됩니다.
도구 | 설명 |
| 현재 처리 상태를 가져옵니다 |
| 암호화 규정 준수를 설정합니다 |
| 상세 처리 상태를 가져옵니다 |
| 빌드가 제출 준비가 되었는지 확인합니다 |
도구 | 설명 |
| 엄격한 페이지네이션으로 앱의 암호화 신고 목록을 나열합니다 |
| 더 이상 사용되지 않는 문서 URL 필드 없이 신고 하나를 가져옵니다 |
| 앱에 대한 암호화 신고 설문을 생성합니다 |
| 하나의 변경 불가능한 로컬 스냅샷에서 문서를 예약, 전송, 커밋 및 폴링합니다 |
| 서명된 URL, 토큰 또는 업로드 헤더 없이 안전한 전달 메타데이터를 가져옵니다 |
| 저수준 nullable 체크섬 또는 업로드 상태 패치를 적용합니다 |
| 정확한 바이트와 소문자 MD5 영수증으로 AWAITING_UPLOAD 예약을 재개합니다 |
| 문서 존재 여부를 검사하고 전달 상태를 분류합니다 |
| 현재 빌드에 연결된 신고를 가져옵니다 |
| 승인된 신고를 연결하고 관계를 확인합니다 |
| 빌드의 수출 규정 준수 릴리스 게이트만 평가합니다 |
도구 | 설명 |
| 빌드에 대한 TestFlight 구성을 가져옵니다 |
| TestFlight 설정을 업데이트합니다 |
| TestFlight의 What's New를 설정합니다 |
| 모든 TestFlight 현지화 목록을 나열합니다 |
| 빌드의 베타 그룹을 가져옵니다 |
| 빌드의 개별 테스터를 가져옵니다 |
| 베타 테스터에게 알림을 보냅니다 |
| 빌드를 베타 그룹에 추가합니다 |
| 개별 테스터를 빌드에 추가합니다 |
| 빌드에서 개별 테스터를 제거합니다 |
| 빌드에 할당된 개별 테스터 목록을 나열합니다 |
도구 | 설명 |
| 앱의 TestFlight 베타 그룹 목록을 나열합니다 |
| 새 베타 그룹을 생성합니다 |
| 베타 그룹 설정을 업데이트합니다 |
| 베타 그룹을 삭제합니다 |
| 베타 그룹에 테스터를 추가합니다 |
| 베타 그룹에서 테스터를 제거합니다 |
| 베타 그룹의 테스터 목록을 나열합니다 |
| 베타 그룹에 빌드를 추가합니다 |
| 베타 그룹에서 빌드를 제거합니다 |
| 베타 그룹에 연결된 공개 링크 모집 기준을 가져옵니다 |
| 기기 제품군 및 OS 버전 모집 기준을 생성합니다 |
| 모집 필터를 교체하거나 명시적으로 지웁니다 |
| 정확한 기준 ID 확인 후 모집 기준을 삭제합니다 |
| Apple이 현재 허용하는 기기 제품군 및 OS 버전 목록을 나열합니다 |
| 그룹에 기준과 호환되는 빌드가 있는지 확인합니다 |
테스터 목록/검색/조회/생성/삭제, 앱 관계, 초대, 베타 그룹 할당, 빌드 할당 및 앱 제거 도구를 포함합니다.
도구 | 설명 |
| 새 앱 버전을 생성합니다 |
| 상태 필터링으로 버전 목록을 나열합니다 |
| 상세 버전 정보를 가져옵니다 |
| 앱 정보 연령 등급 설문을 읽습니다 |
| 지역별 계산된 연령 등급 목록을 나열합니다 |
| 버전 속성을 업데이트합니다 |
| 버전에 빌드를 연결합니다 |
| App Store 검토를 위해 제출합니다 |
| 진행 중인 검토를 취소합니다 |
| 승인된 버전을 출시합니다 |
| 점진적 출시를 생성합니다 |
| 단계적 출시 정보 및 ID를 가져옵니다 |
| 출시를 일시 중지/재개/완료합니다 |
| 정확한 ID 확인 및 알 수 없는 결과에 대한 안전 장치로 적격한 계획된 단계적 출시를 삭제합니다 |
| 검토자 연락처 정보를 설정합니다 |
| 연령 등급 신고를 구성합니다 |
| 정확한 ID 확인 및 알 수 없는 결과에 대한 안전 장치로 편집 가능한 앱 버전을 삭제합니다 |
도구 | 설명 |
| 필터링 및 페이지네이션으로 리뷰 가져오기 |
| 특정 리뷰 세부 정보 가져오기 |
| 특정 버전의 리뷰 가져오기 |
| 집계된 리뷰 통계 |
| 고객 리뷰에 응답하기 |
| 응답 삭제하기 |
| 리뷰에 대한 응답 가져오기 |
| 리뷰 주제 및 평점 요약 |
도구 | 설명 |
| 앱의 인앱 구매 목록 가져오기 |
| IAP 세부 정보 가져오기 |
| 새 IAP 생성하기 |
| IAP 속성 업데이트하기 |
| IAP 삭제하기 |
| IAP 현지화 목록 가져오기 |
| IAP 현지화 생성하기 |
| IAP 현지화 업데이트하기 |
| IAP 현지화 삭제하기 |
| 심사용 IAP 제출하기 |
| 구독 그룹 목록 가져오기 |
| 구독 그룹 세부 정보 가져오기 |
| 앱용 AI 친화적 IAP 인벤토리 |
| 지역별 가격 포인트 목록 가져오기 |
| 가격 포인트 균등화 목록 가져오기 |
| 가격 일정 가져오기 |
| 가격 일정 설정하기 |
| 현재 및 예정 가격 요약 |
| 오퍼에 적합한 가격 포인트 후보 찾기 |
| 지역별 제공 여부 설정하기 |
| IAP 또는 제공 여부 ID로 제공 여부 가져오기 |
| 제공 가능 지역 목록 가져오기 |
| 프로모션 구매 상태 가져오기 |
| IAP 프로모션 코드 목록 가져오기 |
| IAP 프로모션 코드 가져오기 |
| IAP 프로모션 코드 생성하기 |
| IAP 프로모션 코드 업데이트하기 |
| IAP 프로모션 코드 비활성화하기 |
| 지역별 프로모션 가격 목록 가져오기 |
| 일회용 프로모션 코드 생성하기 |
| 일회용 코드 배치 목록 가져오기 |
| 일회용 코드 배치 가져오기 |
| 일회용 코드 배치 업데이트하기 |
| 일회용 코드 배치 비활성화하기 |
| 생성된 일회용 코드 값 가져오기 |
| 맞춤 프로모션 코드 생성하기 |
| 맞춤 코드 세부 정보 가져오기 |
| 맞춤 코드 업데이트하기 |
| 맞춤 코드 비활성화하기 |
| 심사용 스크린샷 가져오기 |
| 심사용 스크린샷 업로드하기 |
| 심사용 스크린샷 삭제하기 |
| 프로모션 이미지 업로드하기 |
| 프로모션 이미지 가져오기 |
| 프로모션 이미지 삭제하기 |
| 프로모션 이미지 목록 가져오기 |
| 심사 가능한 IAP 메타데이터 버전 생성하기 |
| IAP 버전 및 심사 상태 가져오기 |
| IAP의 심사 가능한 버전 목록 가져오기 |
| IAP 버전이 보유한 현지화 목록 가져오기 |
| IAP 버전용 현지화 생성하기 |
| IAP 버전 현지화 가져오기 |
| IAP 버전 현지화의 nullable 텍스트 업데이트하기 |
| IAP 버전 현지화 삭제하기 |
| IAP 버전과 관련된 단일 이미지 가져오기 |
| 엄격한 연속 지원으로 IAP 버전이 보유한 모든 이미지 리소스 목록 가져오기 |
| 변경 불가능한 IAP 버전 이미지 업로드, 커밋 및 조정하기 |
| 버전 범위 IAP 이미지 리소스 가져오기 |
| 버전 범위 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를 사용합니다:
도구 | 호환성 상태 |
| 더 이상 사용되지 않는 레거시 가용성 읽기 |
| 더 이상 사용되지 않는 레거시 가용성 쓰기 |
| 더 이상 사용되지 않는 레거시 지역 목록 |
| 더 이상 사용되지 않는 도우미; 첫 번째 포함된 관계 페이지 이후의 구독은 생략할 수 있으며 권위 있는 전체 목록이 아닙니다. |
도구 | 설명 |
| 샌드박스 테스터 나열 |
| 샌드박스 테스터 설정 업데이트 |
| 샌드박스 테스터의 구매 기록 지우기 |
도구 | 설명 |
| 베타 앱 현지화 목록 |
| 베타 앱 현지화 생성 |
| 베타 앱 현지화 가져오기 |
| 베타 앱 현지화 업데이트 |
| 베타 앱 현지화 삭제 |
| 베타 검토를 위해 빌드 제출 |
| 베타 검토 제출 목록 |
| 베타 검토 제출 가져오기 |
| 베타 앱 검토 세부 정보 가져오기 |
| 베타 앱 검토 세부 정보 업데이트 |
프리릴리스 버전 목록, 세부 정보 및 관련 빌드를 포함합니다.
베타 라이선스 계약 목록, 가져오기 및 업데이트를 포함합니다.
도구 | 설명 |
| 등록된 번들 식별자 나열 |
| 번들 ID 세부 정보 가져오기 |
| 새 번들 식별자 등록 |
| 번들 식별자 삭제 |
| 등록된 기기 나열 |
| 새 기기(UDID) 등록 |
| 기기 이름 또는 상태 업데이트 |
| 서명 인증서 나열 |
| 인증서 세부 정보 가져오기 |
| 인증서 폐기 |
| 프로비저닝 프로필 나열 |
| 프로필 세부 정보 가져오기 |
| 프로필 삭제 |
| 프로비저닝 프로필 생성 |
| 번들 ID 기능 나열 |
| 기능 활성화 |
| 기능 비활성화 |
앱 정보 목록/가져오기/업데이트, 앱 정보 현지화, EULA 가져오기/생성/업데이트 도구를 포함합니다.
지역, 가용성, 가격 포인트, 가격 일정 및 App Store 가용성 v2 도구를 포함합니다.
팀원 목록/가져오기/업데이트/제거, 초대, 표시 앱 및 표시 앱 관계 업데이트를 포함합니다.
인앱 이벤트 CRUD 및 이벤트 현지화 목록/생성/업데이트/삭제를 포함합니다.
판매, 재무, 앱 요약, 분석 보고서 요청, 보고서, 인스턴스, 스냅샷 및 세그먼트 도구를 포함합니다.
도구 | 설명 |
| 스크린샷 세트 나열 |
| ID로 스크린샷 세트 가져오기 |
| 스크린샷 세트 생성 |
| 스크린샷 세트 삭제 |
| 세트의 스크린샷 나열 |
| 스크린샷 업로드 |
| 스크린샷 세부 정보 가져오기 |
| 스크린샷 삭제 |
| 세트의 스크린샷 순서 변경 |
| 앱 미리보기 세트 나열 |
| ID로 앱 미리보기 세트 가져오기 |
| 미리보기 세트 생성 |
| 미리보기 세트 삭제 |
| 앱 미리보기 업로드 |
| 미리보기 세부 정보 가져오기 |
| 미리보기 세트의 미리보기 나열 |
| 멤버십 및 사후 검증을 통해 세트의 모든 미리보기 순서 변경 |
| 스크린샷 일괄 업로드 |
| 미리보기 삭제 |
도구 | 설명 |
| 사용자 지정 제품 페이지 나열 |
| 페이지 세부 정보 가져오기 |
| 사용자 지정 페이지 생성 |
| 사용자 지정 페이지 업데이트 |
| 사용자 지정 페이지 삭제 |
| 페이지 버전 나열 |
| ID로 페이지 버전 가져오기 |
| 페이지 버전 생성 |
| 페이지 버전 업데이트 |
| 버전 현지화 나열 |
| ID로 현지화 가져오기 |
| 현지화 생성 |
| 현지화 업데이트 |
| 정확한 확인 후 현지화 삭제 |
| 현지화에 할당된 검색 키워드 ID 나열 |
| 검색 키워드 관계 추가 |
| 정확한 확인 후 검색 키워드 관계 제거 |
도구 | 설명 |
| A/B 테스트 실험 나열 |
| App Store 버전의 V2 실험 나열 |
| 실험 세부 정보 가져오기 |
| 실험 생성 |
| 실험 업데이트/시작/중지 |
| 실험 삭제 |
| 실험 처리군 나열 |
| ID로 처리군 가져오기 |
| 처리군 변형 생성 |
| 처리군 변형 업데이트 |
| 정확한 확인 후 처리군 삭제 |
| 처리군 현지화 나열 |
| ID로 처리군 현지화 가져오기 |
| 처리군 현지화 생성 |
| 정확한 확인 후 처리군 현지화 삭제 |
도구 | 설명 |
| 앱의 프로모션 구매 목록을 표시합니다 |
| 프로모션 세부 정보를 조회합니다 |
| 프로모션을 생성합니다 |
| 프로모션 표시 여부 또는 활성화 상태를 업데이트합니다 |
| 프로모션을 삭제합니다 |
| 앱의 전체 프로모션 구매 순서를 교체하고 검증합니다 |
| 더 이상 사용되지 않음: 마이그레이션 안내를 반환합니다. 해당 엔드포인트는 고정된 Apple OpenAPI 4.4.1에 없습니다 |
| 더 이상 사용되지 않음: 마이그레이션 안내를 반환합니다. 해당 엔드포인트는 고정된 Apple OpenAPI 4.4.1에 없습니다 |
| 더 이상 사용되지 않음: 마이그레이션 안내를 반환합니다. 해당 엔드포인트는 고정된 Apple OpenAPI 4.4.1에 없습니다 |
| 더 이상 사용되지 않음: 마이그레이션 안내를 반환합니다. 해당 관계는 고정된 Apple OpenAPI 4.4.1에 없습니다 |
App Store 리뷰 첨부 파일 업로드, 조회, 삭제 및 목록 도구를 포함합니다.
도구 | 설명 |
| 앱의 일반 리뷰 제출 목록을 표시합니다 |
| 일반 리뷰 제출 하나를 조회합니다 |
| 앱 및 플랫폼에 대한 일반 리뷰 제출을 생성합니다 |
| 리뷰 제출에 첨부된 항목을 나열합니다 |
| 제출에 검토 가능한 리소스 버전을 첨부합니다 |
| 제출된 항목의 nullable |
| 제출에서 항목을 제거합니다 |
| 첨부된 모든 항목을 검토용으로 제출합니다 |
| 제출된 일반 리뷰 제출을 취소합니다 |
review_submissions_add_item는 Apple의 응답이 유효한 항목 ID와 요청된 관계 이름, JSON:API 유형 및 리소스 ID를 정확히 확인한 경우에만 성공을 보고합니다. 불일치가 있으면 제출 및 항목 목록 복구 단계와 함께 확인되지 않은 쓰기로 반환됩니다.
도구 | 설명 |
| 앱 성능/전력 지표를 조회합니다 |
| 빌드 성능 지표를 조회합니다 |
| 빌드에 대한 진단 정보를 나열합니다 |
| 진단 로그를 조회합니다 |
| 베타 테스터별 앱 TestFlight 충돌, 세션 및 피드백 지표를 조회합니다 |
| 베타 테스터별 베타 그룹 TestFlight 충돌, 세션 및 피드백 지표를 조회합니다 |
| 공개 링크 조회 수, 수락 결과, 기준 실패 및 설문 비율을 조회합니다 |
| 앱 내에서 한 테스터의 TestFlight 사용 지표를 조회합니다 |
| 빌드 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 approvalTestFlight 배포
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은 계정별 속도 제한을 적용합니다 (문서) |
로캘 형식 | 표준 코드를 사용하세요: |
아키텍처
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만 사용
문제 해결
MCP 클라이언트와 별개로 설치를 확인하려면
~/.mint/bin/asc-mcp --version을 실행합니다.MCP 클라이언트가 설치된 실행 파일의 절대 경로를 사용하는지 확인합니다.
Codex의 경우
codex mcp list및codex mcp get asc-mcp --json을 실행합니다.Claude Code의 경우
claude mcp get asc-mcp및claude mcp list를 실행합니다.구성된
companies.json파일 또는 선택한 설정에서 사용하는 환경 변수를 확인합니다.모든
.p8키 경로가 절대 경로이고 파일이 존재하는지 확인합니다.MCP 구성을 변경한 후 GUI 클라이언트를 다시 시작하고 클라이언트의 MCP 출력 로그를 확인합니다.
Key ID와 Issuer ID가 App Store Connect에 표시된 값과 일치하는지 확인합니다.
.p8파일이 원본 다운로드 파일인지(수정되지 않았는지) 확인합니다.API 키가 해지되지 않았는지 확인합니다.
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새 도구 추가
적절한
Worker+Handlers.swift에 핸들러 메서드를 생성합니다.Worker+ToolDefinitions.swift에 도구 정의를 추가합니다.워커의
getTools()메서드에 등록합니다.워커의
handleTool()switch에 라우팅 케이스를 추가합니다.WorkerManager는 접두사로 자동 라우팅하므로 해당 부분은 변경할 필요가 없습니다.
새 워커 추가
디렉터리를 생성합니다:
Workers/MyWorker/3개의 파일을 생성합니다:
MyWorker.swift,MyWorker+ToolDefinitions.swift,MyWorker+Handlers.swiftWorkerManager.swift에 워커 속성과 초기화를 추가합니다.WorkerManager.registerWorkers()에 라우팅 규칙을 추가합니다.getMyTools()헬퍼 메서드를 추가합니다.
기여
기여를 환영합니다! 자세한 내용은 기여 가이드를 참조하세요.
라이선스
이 프로젝트는 MIT 라이선스로 제공됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
감사의 말
Model Context Protocol — 프로토콜 사양 및 Swift SDK
App Store Connect API — Apple의 공식 REST API
이 도구는 비공식 커뮤니티 유지 관리 도구이며 Apple Inc.와 제휴하거나 보증하지 않습니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
- app-managerOAuthapp.lance
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Meta Ads and Google Ads MCP server: 250+ tools for Claude, ChatGPT, Cursor and Codex.
Related MCP Servers
- AlicenseAqualityBmaintenanceA Model Context Protocol (MCP) server for Apple's App Store Connect API. Manage your iOS, macOS, tvOS, and visionOS apps directly from Claude, Cursor, or any MCP-compatible client.52899 npm22MIT
- AlicenseAqualityDmaintenanceA 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.6951 npm13MIT
- AlicenseAqualityAmaintenanceAn 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.41263 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA 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 npmMIT