Skip to main content
Glama
TrialAndErrorAI

App Store Connect MCP Server

App Store Connect MCP 서버 — 코드 모드

923개의 엔드포인트. 2개의 도구. 사양(Spec)이 곧 구현입니다.

TypeScript MCP SDK License: MIT API Version

문제점

기존의 MCP 서버는 각 API 엔드포인트를 별도의 도구로 래핑합니다. Apple의 App Store Connect API에는 923개의 엔드포인트가 있습니다. 이는 923개의 도구 정의, 10만 개 이상의 컨텍스트 토큰, 그리고 Apple이 엔드포인트를 추가할 때마다 새로운 릴리스가 필요함을 의미합니다.

Related MCP server: mcp-appstore-connect

해결책

코드 모드: 2개의 도구가 923개를 대체합니다.

도구

기능

search(code)

JS를 작성하여 Apple의 OpenAPI 사양을 쿼리합니다. 엔드포인트 발견, 매개변수 확인, 스키마 읽기가 가능합니다.

execute(code)

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 자격 증명 얻기

  1. App Store Connect → 사용자 및 액세스 → 통합 → 키로 이동합니다.

  2. "+"를 클릭하여 새 키를 생성합니다(관리자 또는 재무 역할).

  3. .p8 파일을 다운로드합니다(한 번만 다운로드 가능!).

  4. 키 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개는 선택 사항):

변수

설명

APP_STORE_KEY_ID

10자 키 ID

APP_STORE_ISSUER_ID

UUID 발급자 ID

APP_STORE_P8_PATH

.p8 파일의 절대 경로

APP_STORE_VENDOR_NUMBER (선택 사항)

재무 보고서에 필요

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.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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