# @yoonion/mimi-seed-mcp

Connected app-release operations for Claude Code, Codex and other MCP clients.

Start with a lightweight, account-free check in your app repository (Node 20+):

```bash
npx -y mimi-seed@latest check --local
```

Review identifiers, Target API, detectable Play Billing, pinned Xcode / App Store SDK minimum and legacy FCM API
evidence first. Then connect stores for
metadata, screenshot and uploaded-build checks. Local results do not guarantee store approval.

[Install the plugin for Claude Code or Codex](https://github.com/jeonghwanko/mimi-seed-sdk#30-second-setup)
· [English tool catalog](https://github.com/jeonghwanko/mimi-seed-sdk/blob/main/docs/domain/tool-catalog.md)
· [Release guides](https://mimi-seed.pryzm.gg/guides/expo-release-readiness)

Use `npx mimi-seed setup` to connect only the accounts you need, then open a fresh client session.
Licensed under PolyForm Noncommercial; commercial use requires a separate license.

## 한국어 가이드

**Mimi Seed** — Firebase · AdMob · Google Play · App Store Connect를 AI 콘솔에서 관리. Claude Code / Codex / Cursor / 기타 MCP 클라이언트에서 한 줄 등록으로 사용.

> 이 패키지는 Mimi Seed의 **로컬 MCP 서버**만 포함합니다. 웹 콘솔(Next.js 앱)은 <https://mimi-seed.pryzm.gg/tool>.

## 계정 없이 출시 점검

스토어 자격증명을 연결하기 전에 저장소에서 확정할 수 있는 출시 블로커를 검사합니다.

일반 사용자는 전체 MCP 패키지를 먼저 설치하지 않는 경량 CLI 경로를 권장합니다.

```bash
npx -y mimi-seed@latest check --local
```

MCP 패키지를 이미 설치했다면 같은 검사기의 직접 bin도 사용할 수 있습니다.

```bash
npx -y @yoonion/mimi-seed-mcp mimi-seed-release-doctor .
```

앱 식별자, 일반 Android 앱의 Target API 제출 기준, Google Play Billing 지원 마감, 고정된 Xcode의 App Store
SDK 최소 요건, 레거시 FCM API 사용을 확인하며 정책
결과에는 근거 파일과 공식 출처를 함께 표시합니다. 모노레포에서는 `.` 대신 앱 경로를 전달하세요.
CI에서는 `--fail-on-blocker`, 기계가 읽는 결과에는 `--json`을 추가할 수 있습니다. Wear OS, Android
TV, Android Automotive OS, Android XR은 Target API 예외가 있으므로 카테고리 확인 경고를 냅니다.
등록정보·스크린샷·업로드 빌드·심사 상태는 저장소만으로 알 수 없어 스토어 연결 후 검사합니다.

## 설치

Claude Code:

```bash
claude mcp add mimi-seed-local -- npx -y @yoonion/mimi-seed-mcp@latest
```

Codex (`~/.codex/config.toml`):

```toml
[mcp_servers.mimi-seed-local]
command = "npx"
args = ["-y", "@yoonion/mimi-seed-mcp@latest"]
enabled = true
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "mimi-seed-local": {
      "command": "npx",
      "args": ["-y", "@yoonion/mimi-seed-mcp@latest"]
    }
  }
}
```

## 첫 사용 전 인증

```bash
npx -y @yoonion/mimi-seed-mcp mimi-seed-auth
```

브라우저가 열리면 Google 계정으로 로그인. 토큰은 `~/.mimi-seed/tokens.json`에 저장되고 자동 갱신됨.

나머지 계정은 **마법사 하나로** 연결하는 게 가장 빠릅니다 — 뭐가 빠졌는지 보여주고, 각 토큰을 어디서
발급받는지도 알려줍니다:

```bash
npx mimi-seed setup
```

개별로 실행하고 싶다면 (전부 대화형):

```bash
npx -y @yoonion/mimi-seed-mcp mimi-seed-appstore-auth     # App Store Connect (API Key)
npx -y @yoonion/mimi-seed-mcp mimi-seed-playstore-auth    # Google Play 서비스 계정 JSON
npx -y @yoonion/mimi-seed-mcp mimi-seed-bigquery-auth     # BigQuery
npx -y @yoonion/mimi-seed-mcp mimi-seed-jenkins-auth      # Jenkins (저장 전 서버 프로브)
npx -y @yoonion/mimi-seed-mcp mimi-seed-googleads-auth    # Google Ads (저장 전 실제 호출로 검증)
npx -y @yoonion/mimi-seed-mcp mimi-seed-social-auth       # Facebook / Instagram / Threads
npx -y @yoonion/mimi-seed-mcp mimi-seed-tiktok-business-auth # TikTok Business Organic API
```

각 자격증명을 **어디서 어떻게 발급받는지**는 [`docs/credentials.md`](../../docs/credentials.md) 참고.

- **App Store Connect**: Users and Access → Integrations에서 API Key 생성 후 Issuer ID / Key ID / `.p8`
  경로와 선택적인 Vendor Number 입력 → Apple API 검증 성공 후 `~/.mimi-seed/appstore.json` 저장 (`.p8`은
  **1회만** 다운로드됨). 기존 연결의 첫 질문에서 Enter/`N`은 종료, `y`는 기본 키 교체, `v`는 Vendor
  Number만 갱신합니다. 키 교체 시 기존 `vendorNumber`와 별도 `reportsKey`는 보존됩니다.
- **Google Play**: 서비스 계정은 **선택** — OAuth 토큰이 `androidpublisher` 스코프를 갖고 있어 로컬 작업은 그대로 됩니다. CI/헤드리스에서만 필요.
- **BigQuery**: 선택 — OAuth로도 동작하며, Workspace 재인증 정책에 막힐 때만 서비스 계정이 필요합니다.

App Store 권한은 작업별로 다릅니다. 메타데이터·출시는 **App Manager**, Analytics 리포트 요청 생성은
**Admin**, 매출 리포트는 **Admin / Finance / Sales and Reports**가 필요합니다. Vendor Number는 App Store
Connect 상단 **Reports**의 왼쪽 위 Legal Entity Name 아래에 표시되는 숫자입니다. 자세한 내용은
[`docs/credentials.ko.md`](../../docs/credentials.ko.md#app-store-connect)를 참고하세요.

AI 기능(릴리즈 노트 생성, 리뷰 답변)을 쓰려면:

```bash
export ANTHROPIC_API_KEY=sk-ant-...
```

---

<!-- generated:readme-tools-heading:start — edit scripts/docs-spec.mjs, then npm run plugin:sync -->
## 제공 도구 (150+ 개 · 24개 영역)
<!-- generated:readme-tools-heading:end -->

<!-- generated:readme-tools-table:start — edit scripts/docs-spec.mjs, then npm run plugin:sync -->
| 영역 | 도구 수 | 주요 도구 |
|------|---------|-----------|
| App Store Connect | 63 | `appstore_submit_for_review` / `appstore_get_weekly_insight` / `appstore_update_product_review_note` / `appstore_upload_product_review_screenshot` |
| Google Play | 38 | `playstore_submit_release` / `playstore_promote_release` / `playstore_replace_images` / `playstore_reply_review` / `playstore_verify_service_account` |
| Firebase | 21 | `firebase_create_project` / `firebase_get_remote_config_overview` / `firebase_get_android_config` / `firebase_create_ios_app` |
| AdMob | 7 | `admob_list_apps` / `admob_create_ad_unit` / `admob_get_today_earnings` / `admob_get_report` |
| CI (GitHub Actions / GitLab) | 6 | `ci_trigger_build` / `ci_get_build_status` / `ci_list_workflows` / `ci_cancel_build` |
| Jenkins (크리덴셜 + 잡 + 빌드) | 13 | `jenkins_create_credential` / `jenkins_upload_keystore` / `jenkins_create_job` / `jenkins_update_job` / `jenkins_trigger_build` |
| GA4 (Google Analytics 4) | 8 | `ga4_create_property` / `ga4_create_data_stream` / `ga4_plan_bigquery_link` / `ga4_create_bigquery_link` / `ga4_run_report` |
| Search Console | 6 | `gsc_inspect_url` / `gsc_search_analytics` / `gsc_submit_sitemap` |
| 네이버 서치어드바이저 | 2 | `naver_check_page` / `naver_indexnow_submit` |
| Google Ads | 6 | `googleads_list_campaigns` / `googleads_get_uac_report` / `googleads_get_campaign_report` |
| Facebook | 6 | `facebook_post_photo` / `facebook_post_multi_photo` / `facebook_list_pages` |
| Google Cloud IAM | 5 | `iam_create_service_account` / `iam_create_key` / `iam_add_iam_policy_binding` |
| BigQuery | 5 | `bigquery_run_query` / `bigquery_list_datasets` / `bigquery_get_table_schema` |
| Google Drive | 8 | `drive_upload_file` / `drive_update_file_content` / `drive_create_folder` / `drive_list_files` |
| GCP Billing | 4 | `gcp_get_billing_info` / `gcp_list_billing_projects` / `gcp_list_budgets` / `gcp_create_budget` |
| Threads | 7 | `threads_post` / `threads_post_video` / `threads_post_carousel` / `threads_refresh_token` |
| TikTok Business | 7 | `tiktok_business_plan_video_post` / `tiktok_business_publish_video` / `tiktok_business_get_publish_status` |
| 출시 점검 | 5 | `playstore_check_submission_risks` / `appstore_check_submission_risks` / `android_check_billing_compliance` / `screenshot_validate` / `release_status` |
| Instagram | 4 | `instagram_post_image` / `instagram_post_carousel` / `instagram_save_config` |
| Android 서명 | 3 | `android_signing_setup` / `android_generate_keystore` / `jenkins_upload_playstore_sa` |
| 인증 / 연결 진단 | 4 | `mimi_seed_status` / `mimi_seed_auth_start` / `mimi_seed_auth_status` / `mimi_seed_remote_sync_credentials` |
| AI (Claude) | 2 | `generate_release_notes_from_commits` / `generate_review_reply` |
| 영상 제작 · YouTube 업로드 | 15 | `youtube_upload_video` / `youtube_get_video_status` / `youtube_update_video_privacy` / `video_plan_from_story` / `video_research_youtube` / `video_render` |
| YouTube | 10 | `youtube_get_channel` / `youtube_list_videos` / `youtube_get_analytics_report` / `youtube_get_content_insights` / `youtube_update_video_metadata` / `youtube_set_thumbnail` / `youtube_schedule_video` / `youtube_list_comments` / `youtube_list_comment_replies` / `youtube_reply_comment` |
<!-- generated:readme-tools-table:end -->

> 인앱 결제(IAP·구독) 도구는 위 Play Store·App Store 카운트에 포함됩니다 — `appstore_create_inapp_purchase` · `appstore_update_product_review_note` · `appstore_upload_product_review_screenshot` 등.
> 전체 카탈로그(항상 최신): [`docs/domain/tool-catalog.md`](../../docs/domain/tool-catalog.md)

---

## 슬래시 커맨드 (MCP Prompts)

MCP 클라이언트(Claude Code, Codex 등)에서 슬래시 커맨드로 바로 노출됩니다.

| 커맨드 | 설명 |
|--------|------|
| `/mimi-seed:getting-started` | 처음 사용자 온보딩 — 연결 스캔 → 능력 투어 → 첫 읽기 전용 액션 |
| `/mimi-seed:deploy` | 블로커 점검 → 릴리즈 노트 생성 → 스토어 적용을 한 번에 |
| `/mimi-seed:health` | 인증 상태 + 앱 출시 준비도 빠른 요약 |
| `/mimi-seed:review-inbox` | 미답변 리뷰 조회 → AI 답변 초안 생성 |

## MCP Resources

| URI | 설명 |
|-----|------|
| `mimi-seed://auth/status` | Google OAuth 토큰 상태 (JSON) |
| `mimi-seed://agent/guide` | 에이전트 운영 규약 전문 — deferred 도구 로딩·`select:` 배치·호출 순서·안전수칙 (Markdown) |
| `mimi-seed://tools/catalog` | 도메인별 전체 도구 목록 + 필요 자격증명 + 요약 (JSON) — "뭘 할 수 있어?"의 런타임 답 |

---

## 주요 기능

### 제출 위험 점검

출시 전 블로커와 경고를 자동으로 점검합니다.

```
"내 앱 출시 전 위험 요소 확인해줘"
→ playstore_check_submission_risks("com.example.myapp")
→ appstore_check_submission_risks("1234567890")
```

**점검 항목:**
- Google Play: 리스팅 완성도(제목/설명/짧은설명), 스크린샷 수, 아이콘, 내부 빌드 존재, 연락처
- App Store: What's New, 설명/키워드, 스크린샷 커버리지, TestFlight 빌드, 개인정보처리방침 URL

---

### 스크린샷 해상도 검증

업로드 전 로컬 파일을 스토어 규격과 비교합니다.

```
"이 스크린샷들이 App Store 규격에 맞는지 확인해줘"
→ screenshot_validate(["/path/to/screen1.png", "/path/to/screen2.png"], platform="ios", displayType="APP_IPHONE_69")
```

iOS displayType 예시: `APP_IPHONE_69`, `APP_IPHONE_67`, `APP_IPHONE_65`, `APP_IPAD_PRO_3GEN_129`  
Android imageType 예시: `phoneScreenshots`, `sevenInchScreenshots`, `featureGraphic`

---

### AI 릴리즈 노트 생성 (ANTHROPIC_API_KEY 필요)

git 커밋 내역을 Claude가 사용자 친화적인 릴리즈 노트로 변환합니다.

```
"최근 커밋으로 릴리즈 노트 만들어줘"
→ generate_release_notes_from_commits(
     commits=[{message: "feat: 다크모드 추가"}, ...],
     appName="MyApp",
     locales=["ko", "en-US", "ja"]
   )
```

3가지 톤(간결/상세/마케팅) + 다국어를 한 번에 생성. 이후 `playstore_update_release_notes` 또는 `appstore_update_whats_new`로 바로 적용.

---

### AI 리뷰 답변 생성 (ANTHROPIC_API_KEY 필요)

스토어 리뷰에 대한 AI 답변 초안을 생성합니다.

```
"이 리뷰에 답변 작성해줘"
→ generate_review_reply(
     reviewText="앱이 자꾸 튕겨요",
     rating=2,
     appName="MyApp",
     tone="empathetic",
     language="ko"
   )
```

tone 옵션: `friendly`(친근) / `professional`(정중) / `empathetic`(공감) / `brief`(간결)

> ⚠ AI 생성 답변은 초안입니다. 게시 전 반드시 검토하세요.  
> 답변 게시는 `playstore_reply_review` 도구를 사용하세요 — `confirm` 없이 부르면 dry-run preview 만 돌아오고, `confirm: true` 로 다시 불러야 게시됩니다.

---

## End-to-end: 서비스 계정 → JSON 키 → Play Console 권한

서버(예: [onesub](https://github.com/jeonghwanko/onesub))가 Google Play 영수증을 백그라운드로 검증하려면 서비스 계정 JSON이 필요합니다. Claude에게 한 번에 시킬 수 있어요:

> 1. `my-project`에 `onesub-play-verifier` 서비스 계정 만들고
> 2. JSON 키 발급받아서
> 3. `com.yourapp.id`에 대해 검증

Claude가 연쇄 호출:

- `iam_create_service_account("my-project", "onesub-play-verifier", "onesub Play verifier")`
- `iam_create_key("onesub-play-verifier@my-project.iam.gserviceaccount.com")` → 먼저 dry-run preview, 사용자 승인 후 `confirm: true` 로 재호출하면 JSON 반환
- `playstore_verify_service_account(<json>, "com.yourapp.id")` → 아직 Play Console 권한이 없어서 403 반환 기대

그 다음 **Play Console에서 수동으로** (또는 별도 androidpublisher.users API 호출):

- Users and permissions → 서비스 계정 이메일 초대
- **View financial data, orders, and cancellation survey responses** 체크
- **~5분 대기** 후 `playstore_verify_service_account` 재실행 → ✓

마지막으로 JSON을 `GOOGLE_SERVICE_ACCOUNT_KEY` 서버 env에 넣으면 Play 영수증 검증 가능.

> Cloud IAM 역할과 Play Console 권한은 다릅니다. `iam_add_iam_policy_binding`은 Cloud IAM 역할(예: `roles/iam.serviceAccountTokenCreator`)만 부여 — Play Console의 "View financial data"는 별도.

---

## 환경변수

| 변수 | 설명 |
|------|------|
| `ANTHROPIC_API_KEY` | AI 릴리즈 노트 생성 / 리뷰 답변 활성화 (선택) |
| `YOUTUBE_API_KEY` | 참고 영상 메타데이터 조사 (선택) |
| `PEXELS_API_KEY` | Pexels 스톡 영상 검색 (선택) |
| `OPENAI_API_KEY` | 장면 이미지 생성 (선택) |
| `MIMI_SEED_FFMPEG_PATH` / `MIMI_SEED_FFPROBE_PATH` | FFmpeg/ffprobe가 PATH에 없을 때 실행 파일 경로 (선택) |
| `MIMI_SEED_TOOLSETS` / `MIMI_SEED_TOOLSETS_EXCLUDE` | 노출할 도구 영역만 고른다 — 도메인 키(`playstore,appstore` …) 또는 그룹 `store` · `google` · `social` · `media` · `build` · `all` 쉼표 구분. 미지정 = 전체. `auth`·`checks` 는 항상 켜짐, 모르는 키는 stderr 경고 후 무시 (선택) |

---

## 레거시 호환성

Preseed 시절(`~/.preseed/`) 데이터는 자동으로 이어받음:

- `~/.preseed/tokens.json` 있으면 읽음 (재인증 불필요)
- `~/.preseed/appstore.json`도 동일
- 환경변수 `PRESEED_GOOGLE_CLIENT_ID` / `PRESEED_GOOGLE_CLIENT_SECRET` 계속 인식

새로 쓰는 건 `~/.mimi-seed/`.

---

## Links

- CLI 패키지: [`mimi-seed`](https://www.npmjs.com/package/mimi-seed)
- 웹 콘솔: <https://mimi-seed.pryzm.gg/tool>
- 저장소: <https://github.com/jeonghwanko/mimi-seed>

---

## License

[PolyForm Noncommercial License 1.0.0](../../LICENSE) — 비상업적 사용만 허용.
상업적 이용 문의: turbo08@gmail.com

**Required Notice:** Copyright 2026 Pryzm GG (https://mimi-seed.pryzm.gg)
