App Store Connect MCP Server
App Store Connect MCP 서버 — 코드 모드
923개의 엔드포인트. 2개의 도구. 사양(Spec)이 곧 구현입니다.
문제점
기존의 MCP 서버는 각 API 엔드포인트를 별도의 도구로 래핑합니다. Apple의 App Store Connect API에는 923개의 엔드포인트가 있습니다. 이는 923개의 도구 정의, 10만 개 이상의 컨텍스트 토큰, 그리고 Apple이 엔드포인트를 추가할 때마다 새로운 릴리스가 필요함을 의미합니다.
Related MCP server: mcp-appstore-connect
해결책
코드 모드: 2개의 도구가 923개를 대체합니다.
도구 | 기능 |
| JS를 작성하여 Apple의 OpenAPI 사양을 쿼리합니다. 엔드포인트 발견, 매개변수 확인, 스키마 읽기가 가능합니다. |
| JS를 작성하여 API를 호출합니다. 인증은 자동입니다. 여러 호출을 연결할 수 있습니다. |
LLM이 쿼리를 작성합니다. 사양이 곧 구현입니다. 엔드포인트 추가 = Apple이 사양을 업데이트함. 우리 측의 코드 변경은 제로입니다.
Traditional MCP: 923 endpoints → 923 tools → ~100K tokens → constant maintenance
Code Mode: 923 endpoints → 2 tools → ~1K tokens → zero maintenance빠른 시작
1. App Store Connect 자격 증명 얻기
App Store Connect → 사용자 및 액세스 → 통합 → 키로 이동합니다.
"+"를 클릭하여 새 키를 생성합니다(관리자 또는 재무 역할).
.p8파일을 다운로드합니다(한 번만 다운로드 가능!).키 ID와 발급자(Issuer) ID를 기록해 둡니다.
2. Claude Code를 통한 설치
claude mcp add appstore-connect -s user \
-e APP_STORE_KEY_ID=YOUR_KEY_ID \
-e APP_STORE_ISSUER_ID=YOUR_ISSUER_ID \
-e APP_STORE_P8_PATH=/absolute/path/to/AuthKey_XXXXXXXXXX.p8 \
-e APP_STORE_VENDOR_NUMBER=YOUR_VENDOR_NUMBER \
-- npx -y @trialanderror-ai/appstore-connect-mcp-s user는 서버를 모든 프로젝트에서 사용할 수 있게 합니다. 재무 보고서가 필요 없다면 -e APP_STORE_VENDOR_NUMBER를 생략하세요.
또는 인라인 환경 변수 형식을 건너뛰고 셸/MCP 구성에서 설정할 수도 있습니다(아래 참조).
3. 자격 증명 구성
3개의 필수 환경 변수(1개는 선택 사항):
변수 | 설명 |
| 10자 키 ID |
| UUID 발급자 ID |
|
|
| 재무 보고서에 필요 |
Claude Code용 구성
셸에서 환경 변수를 설정하거나 .mcp.json을 통해 전달하세요:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "@trialanderror-ai/appstore-connect-mcp"],
"env": {
"APP_STORE_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_P8_PATH": "/path/to/AuthKey_XXXXXXXXXX.p8",
"APP_STORE_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER"
}
}
}
}Claude Desktop용 구성
~/Library/Application Support/Claude/claude_desktop_config.json에 추가하세요:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "@trialanderror-ai/appstore-connect-mcp"],
"env": {
"APP_STORE_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_P8_PATH": "/path/to/AuthKey_XXXXXXXXXX.p8"
}
}
}
}소스에서 빌드(대안)
git clone https://github.com/TrialAndErrorAI/appstore-connect-mcp
cd appstore-connect-mcp
npm install
npm run build그런 다음 npx 대신 node /path/to/appstore-connect-mcp/dist/index.js를 가리키도록 MCP 구성을 설정하세요.
사용 예시
엔드포인트 발견
search: "Find all endpoints related to customer reviews"LLM 작성:
const reviews = Object.entries(spec.paths)
.filter(([p]) => p.includes('customerReview'))
.map(([path, methods]) => ({
path,
methods: Object.keys(methods).map(m => m.toUpperCase())
}));
return reviews;앱 목록 확인
execute: "List all my apps"LLM 작성:
const apps = await api.request({ method: 'GET', path: '/v1/apps' });
return apps.data.map(a => ({ id: a.id, name: a.attributes.name }));여러 호출 연결
execute: "Get latest reviews for my first app"LLM 작성:
const apps = await api.request({ method: 'GET', path: '/v1/apps', params: { limit: '1' } });
const appId = apps.data[0].id;
const reviews = await api.request({
method: 'GET',
path: `/v1/apps/${appId}/customerReviews`,
params: { limit: '5', sort: '-createdDate' }
});
return {
app: apps.data[0].attributes.name,
reviews: reviews.data.map(r => ({
rating: r.attributes.rating,
title: r.attributes.title,
body: r.attributes.body
}))
};액세스 가능한 항목
다음을 포함한 923개의 모든 App Store Connect API 엔드포인트:
카테고리 | 엔드포인트 | 제공 내용 |
앱 메타데이터 | 29 | 제목, 부제목, 키워드, 설명 — 읽기 및 쓰기 |
분석 | 10 | 노출 수, 페이지 조회 수, 다운로드, 소스 기여도 |
판매 및 재무 | 2 | 국가별 수익, 단위, 매출 |
고객 리뷰 | 5 | 평점, 리뷰 텍스트, 리뷰 응답 |
구독 | 30 | 구독 관리, 가격 책정, 그룹, 오퍼 |
인앱 결제 | 29 | IAP 관리, 오퍼 코드 |
버전 | 28 | 버전 관리, 단계적 출시 |
스크린샷 | 12 | 업로드, 순서 변경, 스크린샷 세트 관리 |
A/B 테스트 | 24 | 제품 페이지 실험, 처리 변형 |
맞춤형 제품 페이지 | 18 | 광고 캠페인별 맞춤형 랜딩 페이지 |
TestFlight | 23 | 베타 그룹, 테스터, 빌드 |
가격 책정 | 11 | 지역별 가격 책정, 가격 포인트 |
빌드 | 29 | 빌드 관리, 처리 상태 |
전체 그룹화된 맵은 API-COVERAGE.md를 참조하세요.
작동 원리
Claude writes JavaScript
│
▼
┌─────────────────────────────────────────────────┐
│ search({ code }) │
│ Sandbox executes code against OpenAPI spec │
│ 923 paths, 1337 schemas — pre-resolved $refs │
│ Returns: matching endpoints + parameters │
└─────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ execute({ code }) │
│ Sandbox executes code against auth'd client │
│ JWT injected — code never sees credentials │
│ Supports GET/POST/PATCH/DELETE + chaining │
│ Auto-decompresses gzipped report responses │
│ Returns: API response (truncated to 40K chars) │
└─────────────────────────────────────────────────┘보안
코드는 Node.js
vm샌드박스에서 실행됩니다.fetch,require,process,eval,setTimeout을 사용할 수 없습니다.자격 증명은 바인딩을 통해 주입되며 생성된 코드에는 절대 노출되지 않습니다.
컨텍스트 비대화를 방지하기 위해 응답이 잘립니다.
spec(검색) 또는api(실행)만 전역으로 사용할 수 있습니다.
아키텍처
src/
├── auth/jwt-manager.ts — JWT with P8 key, ES256, 19-min cache
├── api/client.ts — HTTP client, rate limiting, gzip handling
├── spec/
│ ├── openapi.json — Apple's official spec (923 endpoints)
│ └── loader.ts — Loads + resolves $refs for flat traversal
├── executor/sandbox.ts — vm-based sandboxed execution
├── server/mcp-server.ts — MCP server (search, execute, test_connection)
└── index.ts — Entry point왜 코드 모드인가?
기존 MCP | 코드 모드 | |
도구 | 엔드포인트당 1개 (923개) | 총 2개 |
컨텍스트 토큰 | ~100K+ | ~1K |
엔드포인트 추가 | 새 도구 + 코드 + 스키마 + 릴리스 | Apple이 사양 업데이트. 변경 사항 없음. |
호출 연결 | 각 호출 사이에 LLM 재진입 | 단일 실행, 여러 호출 |
유지보수 | 923개의 도구 정의 업데이트 | 1개의 사양 파일 업데이트 |
Cloudflare의 코드 모드 패턴에서 영감을 받았습니다.
개발
npm install # Install dependencies
npm run build # Compile + copy spec
npm run dev # Watch mode (tsx)
npm start # Run compiled server
npm run type-check # TypeScript check라이선스
MIT — 사용, 수정, 판매가 가능합니다. 잘 작동하게 만드세요.
크레딧
Trial and Error Inc에서 제작했습니다. iOS, Android 및 웹용 AI 기반 홈 디자인 앱인 RenovateAI에서 프로덕션 환경에 사용 중입니다. 코드 모드 패턴은 Cloudflare에서 가져왔습니다.
"우리는 개별 엔드포인트를 구현하지 않습니다. 우리는 모든 엔드포인트를 호출할 수 있는 능력을 구현합니다."
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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 Connectors
ASO analytics and App Store optimization tools for indie iOS developers and AI agents.
- app-managerOAuthapp.lance
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Analyze and manage Apple Ads from your AI assistant with RevenueCat insights and safety controls.
Live App Store & Google Play data for AI agents: app discovery, ASO keywords, reviews.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables interaction with Apple's App Store Connect API through natural language to manage apps, beta testing, localizations, analytics, sales reports, and CI/CD workflows for iOS and macOS development.31123MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Apple App Store Connect operations including app management, TestFlight, analytics, reviews, subscriptions, and more through 54 tools.614911MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Apple App Store Connect resources like apps, builds, TestFlight, and reviews through natural language.2021MIT
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/TrialAndErrorAI/appstore-connect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server