| 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 스크린샷 매니페스트를 참조한다.
사전 조건
-
MCP에 mimi-seed가 등록되어 있어야 한다.
-
Google 인증이 있어야 한다. 서비스 계정은 선택이다 — 로그인 토큰이 androidpublisher 스코프를
갖고 있어서 로컬 작업은 OAuth 만으로 된다 (requirePlayStoreAuth 가 SA → OAuth 로 폴백).
SA 는 브라우저가 없는 환경(CI·서버)에서만 필요하다.
미인증이면 사용자에게 터미널에서 아래를 실행하라고 안내한다 (대화형이라 네가 대신 실행할 수 없다):
mimi-seed setup
mimi-seed auth login
mimi-seed auth playstore
SA 를 쓴다면 그 GCP 프로젝트에 Android Publisher API 가 활성화되어 있어야 한다 — 아니면 모든 호출이
403 이고, 겉보기엔 권한 문제와 똑같지만 아니다. Play Console 권한 부여 후 ~5분 전파도 필요하다.
발급 절차: docs/credentials.md
도구 로딩
호출 전 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_latest_release_notes,playstore_promote_release,playstore_submit_release,playstore_check_submission_risks,playstore_plan_release")
인앱 상품·리뷰·통계까지 다룰 때 추가로:
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")
실행 흐름
playstore_list_tracks — 현재 트랙별 버전/상태(production/beta/alpha/internal) 확인.
playstore_check_submission_risks — 블로커(전체 설명/스크린샷/아이콘 등) 점검 후 사용자에게 체크리스트로 보고.
- 누락분 업로드:
- 텍스트:
playstore_update_listing (title ≤30 / short ≤80 / full ≤4000)
- 이미지:
playstore_upload_image (아래 표의 imageType·해상도 준수)
- 노트:
playstore_update_latest_release_notes
- 출시/승격은 사용자 승인 후:
- 같은 트랙 출시:
playstore_submit_release
- 트랙 간 승격:
playstore_promote_release (fromTrack→toTrack, versionCode)
인앱 상품 · 구독
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로 미답변 리뷰를 모으고, 초안은 generate_review_reply(ANTHROPIC_API_KEY 필요)로
만든 뒤 사용자 확인을 거쳐 playstore_reply_review로 게시한다. 답변은 공개되고 수정 이력이 남는다.
설치·평점 추이는 playstore_get_statistics로 읽는다.
출시 후 긴급 복구
이미 배포된 앱이 치명적으로 망가졌을 때만 쓴다. 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 해상도를 확인한다.
참고 (온톨로지)