Skip to content
Back to skills

Playstore Publish

ASecurity

mimi-seed MCP로 Google Play 스토어 등록정보·이미지·릴리스 노트를 업로드하고 트랙 출시/승격을 처리한다. Use when publishing Android Play Store metadata, images, or releasing/promoting a track via the mimi-seed MCP.

  • 22 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 27, 2026
developmentgobashgcpapi

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add jeonghwanko/mimi-seed-sdk --skill playstore-publish --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Playstore Publish?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Playstore Publish
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeonghwanko-playstore-publish/badge)](https://www.skillsdirectory.com/skills/jeonghwanko-playstore-publish)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: playstore-publish
description: mimi-seed MCP로 Google Play 스토어 등록정보·이미지·릴리스 노트를 업로드하고 트랙 출시/승격을 처리한다. Use when publishing Android Play Store metadata, images, or releasing/promoting a track via the mimi-seed MCP.
---

# playstore-publish

mimi-seed MCP 서버(`@yoonion/mimi-seed-mcp`)의 Google Play 도구로 스토어 등록정보(제목/설명), 이미지(아이콘/스크린샷), 릴리스 노트를 업로드하고 트랙 출시·승격을 수행한다. 프로젝트 중립 스킬이며, 각 프로젝트의 `CLAUDE.md`/`AGENTS.md`에 있는 패키지명과 Android 스크린샷 매니페스트를 참조한다.

## 사전 조건

1. MCP에 `mimi-seed`가 등록되어 있어야 한다.
2. Google 인증이 있어야 한다. **서비스 계정은 선택이다** — 로그인 토큰이 `androidpublisher` 스코프를
   갖고 있어서 로컬 작업은 OAuth 만으로 된다 (`requirePlayStoreAuth` 가 SA → OAuth 로 폴백).
   SA 는 브라우저가 없는 환경(CI·서버)에서만 필요하다.

   미인증이면 사용자에게 **터미널에서** 아래를 실행하라고 안내한다 (대화형이라 네가 대신 실행할 수 없다):
   ```bash
   mimi-seed setup             # 안 된 계정만 순서대로 연결
   mimi-seed auth login        # Google OAuth 만
   mimi-seed auth playstore    # 서비스 계정 (CI/헤드리스용)
   ```
   SA 를 쓴다면 그 GCP 프로젝트에 **Android Publisher API 가 활성화**되어 있어야 한다 — 아니면 모든 호출이
   403 이고, 겉보기엔 권한 문제와 똑같지만 아니다. Play Console 권한 부여 후 **~5분 전파**도 필요하다.
   발급 절차: [`docs/credentials.md`](../../docs/credentials.md) 의 "Play service account" 섹션

## 도구 로딩

호출 전 schema 로드:
```
ToolSearch(query="select:playstore_get_app,playstore_get_listing,playstore_update_listing,playstore_update_details,playstore_list_tracks,playstore_upload_image,playstore_list_images,playstore_update_release_notes,playstore_promote_release,playstore_submit_release,playstore_check_submission_risks,playstore_plan_release,playstore_replace_images,playstore_delete_all_images,playstore_upload_data_safety")
```

인앱 상품·리뷰·통계까지 다룰 때 추가로:

```
ToolSearch(query="select:playstore_list_products,playstore_list_inapp_products,playstore_list_subscriptions,playstore_create_onetime_product,playstore_create_subscription,playstore_update_product,playstore_update_product_listing,playstore_update_subscription_listing,playstore_update_product_state,playstore_list_reviews,playstore_reply_review,playstore_get_statistics,generate_review_reply")
```

## 실행 흐름

1. `playstore_list_tracks` — 현재 트랙별 버전/상태(production/beta/alpha/internal) 확인.
2. `playstore_check_submission_risks` — 블로커(전체 설명/스크린샷/아이콘 등) 점검 후 사용자에게 체크리스트로 보고.
3. 누락분 업로드:
   - 텍스트: `playstore_update_listing` (title ≤30 / short ≤80 / full ≤4000)
   - 이미지: `playstore_upload_image` (아래 표의 imageType·해상도 준수)
   - 노트: `playstore_update_release_notes` (versionCode 생략 = 트랙 최신 릴리스, `syncTracks` 로 다른 트랙 동시 반영)
4. 출시/승격은 **preview → 사용자 승인 → confirm** 순서:
   - 같은 트랙 출시: `playstore_submit_release`
   - 트랙 간 승격: `playstore_promote_release` (fromTrack→toTrack, versionCode)
   - 먼저 `confirm` 없이 호출하면 서버가 아무것도 바꾸지 않고 dry-run preview 를 돌려준다. 그 내용을 사용자에게
     보여 명시 승인을 받은 뒤 같은 인자 + `confirm: true` 로 재호출한다 (`status="draft"` 포함 모든 status).
   - `playstore_replace_images` / `playstore_delete_all_images` / `playstore_reply_review` 도 같은 확인 절차를 거친다.

## 인앱 상품 · 구독

`playstore_list_products`(일회성+구독 통합) 또는 `playstore_list_inapp_products` / `playstore_list_subscriptions`로
현재 상태를 먼저 읽는다. 생성은 `playstore_create_onetime_product` / `playstore_create_subscription`, 가격·설정
변경은 `playstore_update_product`, 상품/구독 등록정보는 `playstore_update_product_listing` /
`playstore_update_subscription_listing`이다.

- 활성화는 `playstore_update_product_state`(DRAFT ↔ 활성)로 하며, **활성 상품은 사용자에게 즉시 노출**되므로
  명시 승인 후에만 바꾼다.
- 상품 ID는 출시 후 재사용·변경이 사실상 불가능하다. 만들기 전에 ID 규칙을 사용자에게 확인한다.

## 리뷰 · 통계

`playstore_list_reviews`로 미답변 리뷰(`developerComment`가 `null`)를 모으고 — 이미 답변된 리뷰에 다시 답하면
기존 답변이 교체된다 — 초안은 `generate_review_reply`(`ANTHROPIC_API_KEY` 필요)로
만든 뒤 **사용자 확인을 거쳐** `playstore_reply_review`로 게시한다. 답변은 공개되고 수정 이력이 남는다.
설치·평점 추이는 `playstore_get_statistics`로 읽는다.

## 출시 후 긴급 복구

```
ToolSearch(query="select:playstore_list_recovery_actions,playstore_create_recovery_action,playstore_deploy_recovery_action,playstore_cancel_recovery_action")
```

이미 배포된 앱이 치명적으로 망가졌을 때만 쓴다. `playstore_list_recovery_actions`로 현황을 보고,
`playstore_create_recovery_action`으로 DRAFT를 만든 뒤(대상: allUsers 또는 versionCodes/versionRange —
둘은 함께 못 쓴다), 사용자 승인을 받아 `playstore_deploy_recovery_action`으로 배포한다.

- 롤백이 아니다. **고친 빌드를 먼저 올려둬야** 원격 인앱 업데이트가 의미를 가진다.
- 대상은 생성 때 고른 기준 안에서만 넓힐 수 있다 — 범위를 처음에 신중히 잡는다.
- 취소해도 **이미 적용된 기기는 되돌아가지 않는다**. 배포 전에 대상 범위를 반드시 사용자와 확인한다.

## 안전 규칙

- `status=completed`(전체 출시/Google 검토 시작)는 비가역에 가깝다 — 명시 승인 없이는 `draft` 유지.
- **Draft 앱 제약**: 앱이 첫 게시 전이면 `internal` 트랙만 `completed` 가능, alpha/beta/production은 `draft`만 생성됨. 비공개/공개 테스트 출시는 콘텐츠 등급·데이터 안전·타깃 연령 완료가 선행되어야 한다. 이 중 **데이터 안전만 API 로 된다** — `playstore_upload_data_safety`(Console 에서 내보낸 CSV 원문, 기존 제출 전체 덮어씀). 콘텐츠 등급·타깃 연령은 Console 전용이다.
- 이미지 전체 삭제(`playstore_delete_all_images`)는 되돌릴 수 없으니 수량을 먼저 알린다.
- 파일은 절대경로. 이미지 바이트를 컨텍스트에 싣지 않는다.

## imageType 참고

| imageType | 규격 |
| --- | --- |
| `icon` | 512×512 PNG |
| `featureGraphic` | 1024×500 |
| `phoneScreenshots` | 320–3840px (각 변), 최소 2장 |
| `sevenInchScreenshots` / `tenInchScreenshots` | 태블릿 |

업로드 전 실제 PNG 해상도를 확인한다.

## 참고 (온톨로지)

- Play 도구 전체 목록: [`docs/domain/tool-catalog.md`](../../docs/domain/tool-catalog.md)
- 함정(draft-app 트랙 제약, Play↔Console 덮어쓰기, 403≠권한): [`docs/domain/pitfalls.md`](../../docs/domain/pitfalls.md)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.