@yoonion/mimi-seed-mcp 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,75 +1,75 @@
1
- # PolyForm Noncommercial License 1.0.0
2
-
3
- <https://polyformproject.org/licenses/noncommercial/1.0.0>
4
-
5
- Required Notice: Copyright 2026 Pryzm GG (https://mimi-seed.pryzm.gg)
6
-
7
- ## Acceptance
8
-
9
- In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
10
-
11
- ## Copyright License
12
-
13
- The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
14
-
15
- ## Distribution License
16
-
17
- The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
18
-
19
- ## Notices
20
-
21
- You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example:
22
-
23
- > Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
24
-
25
- ## Changes and New Works License
26
-
27
- The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
28
-
29
- ## Patent License
30
-
31
- The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
32
-
33
- ## Noncommercial Purposes
34
-
35
- Any noncommercial purpose is a permitted purpose.
36
-
37
- ## Personal Uses
38
-
39
- Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
40
-
41
- ## Noncommercial Organizations
42
-
43
- Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
44
-
45
- ## Fair Use
46
-
47
- You may have "fair use" rights for the software under the law. These terms do not limit them.
48
-
49
- ## No Other Rights
50
-
51
- These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
52
-
53
- ## Patent Defense
54
-
55
- If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
56
-
57
- ## Violations
58
-
59
- The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
60
-
61
- ## No Liability
62
-
63
- ***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***
64
-
65
- ## Definitions
66
-
67
- The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
68
-
69
- **You** refers to the individual or entity agreeing to these terms.
70
-
71
- **Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
72
-
73
- **Your licenses** are all the licenses granted to you for the software under these terms.
74
-
75
- **Use** means anything you do with the software requiring one of your licenses.
1
+ # PolyForm Noncommercial License 1.0.0
2
+
3
+ <https://polyformproject.org/licenses/noncommercial/1.0.0>
4
+
5
+ Required Notice: Copyright 2026 Pryzm GG (https://mimi-seed.pryzm.gg)
6
+
7
+ ## Acceptance
8
+
9
+ In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
10
+
11
+ ## Copyright License
12
+
13
+ The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
14
+
15
+ ## Distribution License
16
+
17
+ The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
18
+
19
+ ## Notices
20
+
21
+ You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example:
22
+
23
+ > Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
24
+
25
+ ## Changes and New Works License
26
+
27
+ The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
28
+
29
+ ## Patent License
30
+
31
+ The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
32
+
33
+ ## Noncommercial Purposes
34
+
35
+ Any noncommercial purpose is a permitted purpose.
36
+
37
+ ## Personal Uses
38
+
39
+ Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
40
+
41
+ ## Noncommercial Organizations
42
+
43
+ Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
44
+
45
+ ## Fair Use
46
+
47
+ You may have "fair use" rights for the software under the law. These terms do not limit them.
48
+
49
+ ## No Other Rights
50
+
51
+ These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
52
+
53
+ ## Patent Defense
54
+
55
+ If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
56
+
57
+ ## Violations
58
+
59
+ The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
60
+
61
+ ## No Liability
62
+
63
+ ***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***
64
+
65
+ ## Definitions
66
+
67
+ The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
68
+
69
+ **You** refers to the individual or entity agreeing to these terms.
70
+
71
+ **Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
72
+
73
+ **Your licenses** are all the licenses granted to you for the software under these terms.
74
+
75
+ **Use** means anything you do with the software requiring one of your licenses.
package/README.md CHANGED
@@ -1,241 +1,241 @@
1
- # @yoonion/mimi-seed-mcp
2
-
3
- **Mimi Seed** — Firebase · AdMob · Google Play · App Store Connect를 AI 콘솔에서 관리. Claude Code / Codex / Cursor / 기타 MCP 클라이언트에서 한 줄 등록으로 사용.
4
-
5
- > 이 패키지는 Mimi Seed의 **로컬 MCP 서버**만 포함합니다. 웹 콘솔(Next.js 앱)은 <https://mimi-seed.pryzm.gg/tool>.
6
-
7
- ## 설치
8
-
9
- Claude Code:
10
-
11
- ```bash
12
- claude mcp add mimi-seed -- npx -y @yoonion/mimi-seed-mcp
13
- ```
14
-
15
- Codex (`~/.codex/config.toml`):
16
-
17
- ```toml
18
- [mcp_servers.mimi-seed]
19
- command = "npx"
20
- args = ["-y", "@yoonion/mimi-seed-mcp"]
21
- enabled = true
22
- ```
23
-
24
- Claude Desktop (`claude_desktop_config.json`):
25
-
26
- ```json
27
- {
28
- "mcpServers": {
29
- "mimi-seed": {
30
- "command": "npx",
31
- "args": ["-y", "@yoonion/mimi-seed-mcp"]
32
- }
33
- }
34
- }
35
- ```
36
-
37
- ## 첫 사용 전 인증
38
-
39
- ```bash
40
- npx -y @yoonion/mimi-seed-mcp mimi-seed-auth
41
- ```
42
-
43
- 브라우저가 열리면 Google 계정으로 로그인. 토큰은 `~/.mimi-seed/tokens.json`에 저장되고 자동 갱신됨.
44
-
45
- 플랫폼별 추가 인증 (필요한 것만):
46
-
47
- ```bash
48
- npx -y @yoonion/mimi-seed-mcp mimi-seed-appstore-auth # App Store Connect (API Key)
49
- npx -y @yoonion/mimi-seed-mcp mimi-seed-playstore-auth # Google Play 서비스 계정 JSON
50
- npx -y @yoonion/mimi-seed-mcp mimi-seed-bigquery-auth # BigQuery (Crashlytics export 등)
51
- ```
52
-
53
- - **App Store Connect**: Users and Access → Keys에서 API Key 생성 후 Issuer ID / Key ID / .p8 경로 입력 → `~/.mimi-seed/appstore.json`
54
- - **Google Play**: Play Console 서비스 계정 JSON 경로 입력 (패키지별 등록)
55
- - **BigQuery**: Google OAuth 또는 서비스 계정으로 데이터셋 조회 권한 부여
56
-
57
- AI 기능(릴리즈 노트 생성, 리뷰 답변)을 쓰려면:
58
-
59
- ```bash
60
- export ANTHROPIC_API_KEY=sk-ant-...
61
- ```
62
-
63
- ---
64
-
65
- ## 제공 도구 (147개 · 17개 영역)
66
-
67
- | 영역 | 도구 수 | 주요 도구 |
68
- |------|---------|-----------|
69
- | App Store Connect | 31 | `appstore_submit_for_review` / `appstore_upload_screenshot` / `appstore_update_whats_new` / `appstore_create_version` |
70
- | Google Play | 28 | `playstore_submit_release` / `playstore_promote_release` / `playstore_replace_images` / `playstore_reply_review` / `playstore_verify_service_account` |
71
- | Firebase | 19 | `firebase_create_android_app` / `firebase_get_android_config` / `firebase_create_ios_app` / `firebase_enable_service` |
72
- | AdMob | 7 | `admob_list_apps` / `admob_create_ad_unit` / `admob_get_today_earnings` / `admob_get_report` |
73
- | CI/CD (GitHub Actions · GitLab) | 6 | `ci_trigger_build` / `ci_get_build_status` / `ci_list_workflows` / `ci_cancel_build` |
74
- | Jenkins (크리덴셜) | 6 | `jenkins_create_credential` / `jenkins_upload_keystore` / `jenkins_save_config` |
75
- | GA4 | 6 | `ga4_create_property` / `ga4_create_data_stream` / `ga4_run_report` |
76
- | Search Console | 6 | `gsc_inspect_url` / `gsc_search_analytics` / `gsc_submit_sitemap` |
77
- | Google Ads | 6 | `googleads_list_campaigns` / `googleads_get_uac_report` / `googleads_get_campaign_report` |
78
- | Facebook | 6 | `facebook_post_photo` / `facebook_post_multi_photo` / `facebook_list_pages` |
79
- | Google Cloud IAM | 5 | `iam_create_service_account` / `iam_create_key` / `iam_add_iam_policy_binding` |
80
- | BigQuery | 5 | `bigquery_run_query` / `bigquery_list_datasets` / `bigquery_get_table_schema` |
81
- | 점검 / 위험 | 4 | `playstore_check_submission_risks` / `appstore_check_submission_risks` / `screenshot_validate` / `release_status` |
82
- | Instagram | 4 | `instagram_post_image` / `instagram_post_carousel` / `instagram_save_config` |
83
- | Android 서명 | 3 | `android_signing_setup` / `android_generate_keystore` / `jenkins_upload_playstore_sa` |
84
- | 인증 | 3 | `mimi_seed_status` / `mimi_seed_auth_start` / `mimi_seed_auth_status` |
85
- | AI (Claude) | 2 | `generate_release_notes_from_commits` / `generate_review_reply` |
86
-
87
- > 인앱 결제(IAP·구독) 도구는 위 Play Store·App Store 카운트에 포함됩니다 — `playstore_create_subscription` · `appstore_create_inapp_purchase` 등 (`@onesub/providers` 위임).
88
- > 전체 카탈로그(항상 최신): [`docs/domain/tool-catalog.md`](../../docs/domain/tool-catalog.md)
89
-
90
- ---
91
-
92
- ## 슬래시 커맨드 (MCP Prompts)
93
-
94
- MCP 클라이언트(Claude Code, Codex 등)에서 슬래시 커맨드로 바로 노출됩니다.
95
-
96
- | 커맨드 | 설명 |
97
- |--------|------|
98
- | `/mimi-seed:deploy` | 블로커 점검 → 릴리즈 노트 생성 → 스토어 적용을 한 번에 |
99
- | `/mimi-seed:health` | 인증 상태 + 앱 출시 준비도 빠른 요약 |
100
- | `/mimi-seed:review-inbox` | 미답변 리뷰 조회 → AI 답변 초안 생성 |
101
-
102
- ## MCP Resources
103
-
104
- | URI | 설명 |
105
- |-----|------|
106
- | `mimi-seed://auth/status` | Google OAuth 토큰 상태 (JSON) |
107
- | `mimi-seed://agent/guide` | 에이전트 역할 정의 — 출시 워크플로우·주의사항 (Markdown) |
108
-
109
- ---
110
-
111
- ## 주요 기능
112
-
113
- ### 제출 위험 점검
114
-
115
- 출시 전 블로커와 경고를 자동으로 점검합니다.
116
-
117
- ```
118
- "내 앱 출시 전 위험 요소 확인해줘"
119
- → playstore_check_submission_risks("com.example.myapp")
120
- → appstore_check_submission_risks("1234567890")
121
- ```
122
-
123
- **점검 항목:**
124
- - Google Play: 리스팅 완성도(제목/설명/짧은설명), 스크린샷 수, 아이콘, 내부 빌드 존재, 연락처
125
- - App Store: What's New, 설명/키워드, 스크린샷 커버리지, TestFlight 빌드, 개인정보처리방침 URL
126
-
127
- ---
128
-
129
- ### 스크린샷 해상도 검증
130
-
131
- 업로드 전 로컬 파일을 스토어 규격과 비교합니다.
132
-
133
- ```
134
- "이 스크린샷들이 App Store 규격에 맞는지 확인해줘"
135
- → screenshot_validate(["/path/to/screen1.png", "/path/to/screen2.png"], platform="ios", displayType="APP_IPHONE_69")
136
- ```
137
-
138
- iOS displayType 예시: `APP_IPHONE_69`, `APP_IPHONE_67`, `APP_IPHONE_65`, `APP_IPAD_PRO_3GEN_129`
139
- Android imageType 예시: `phoneScreenshots`, `sevenInchScreenshots`, `featureGraphic`
140
-
141
- ---
142
-
143
- ### AI 릴리즈 노트 생성 (ANTHROPIC_API_KEY 필요)
144
-
145
- git 커밋 내역을 Claude가 사용자 친화적인 릴리즈 노트로 변환합니다.
146
-
147
- ```
148
- "최근 커밋으로 릴리즈 노트 만들어줘"
149
- → generate_release_notes_from_commits(
150
- commits=[{message: "feat: 다크모드 추가"}, ...],
151
- appName="MyApp",
152
- locales=["ko", "en-US", "ja"]
153
- )
154
- ```
155
-
156
- 3가지 톤(간결/상세/마케팅) + 다국어를 한 번에 생성. 이후 `playstore_update_release_notes` 또는 `appstore_update_whats_new`로 바로 적용.
157
-
158
- ---
159
-
160
- ### AI 리뷰 답변 생성 (ANTHROPIC_API_KEY 필요)
161
-
162
- 스토어 리뷰에 대한 AI 답변 초안을 생성합니다.
163
-
164
- ```
165
- "이 리뷰에 답변 작성해줘"
166
- → generate_review_reply(
167
- reviewText="앱이 자꾸 튕겨요",
168
- rating=2,
169
- appName="MyApp",
170
- tone="empathetic",
171
- language="ko"
172
- )
173
- ```
174
-
175
- tone 옵션: `friendly`(친근) / `professional`(정중) / `empathetic`(공감) / `brief`(간결)
176
-
177
- > ⚠ AI 생성 답변은 초안입니다. 게시 전 반드시 검토하세요.
178
- > 답변 게시는 `playstore_reply_review` 도구를 사용하세요.
179
-
180
- ---
181
-
182
- ## End-to-end: 서비스 계정 → JSON 키 → Play Console 권한
183
-
184
- 서버(예: [onesub](https://github.com/jeonghwanko/onesub))가 Google Play 영수증을 백그라운드로 검증하려면 서비스 계정 JSON이 필요합니다. Claude에게 한 번에 시킬 수 있어요:
185
-
186
- > 1. `my-project`에 `onesub-play-verifier` 서비스 계정 만들고
187
- > 2. JSON 키 발급받아서
188
- > 3. `com.yourapp.id`에 대해 검증
189
-
190
- Claude가 연쇄 호출:
191
-
192
- - `iam_create_service_account("my-project", "onesub-play-verifier", "onesub Play verifier")`
193
- - `iam_create_key("onesub-play-verifier@my-project.iam.gserviceaccount.com")` → JSON 반환
194
- - `playstore_verify_service_account(<json>, "com.yourapp.id")` → 아직 Play Console 권한이 없어서 403 반환 기대
195
-
196
- 그 다음 **Play Console에서 수동으로** (또는 별도 androidpublisher.users API 호출):
197
-
198
- - Users and permissions → 서비스 계정 이메일 초대
199
- - **View financial data, orders, and cancellation survey responses** 체크
200
- - **~5분 대기** 후 `playstore_verify_service_account` 재실행 → ✓
201
-
202
- 마지막으로 JSON을 `GOOGLE_SERVICE_ACCOUNT_KEY` 서버 env에 넣으면 Play 영수증 검증 가능.
203
-
204
- > Cloud IAM 역할과 Play Console 권한은 다릅니다. `iam_add_iam_policy_binding`은 Cloud IAM 역할(예: `roles/iam.serviceAccountTokenCreator`)만 부여 — Play Console의 "View financial data"는 별도.
205
-
206
- ---
207
-
208
- ## 환경변수
209
-
210
- | 변수 | 설명 |
211
- |------|------|
212
- | `ANTHROPIC_API_KEY` | AI 릴리즈 노트 생성 / 리뷰 답변 활성화 (선택) |
213
-
214
- ---
215
-
216
- ## 레거시 호환성
217
-
218
- Preseed 시절(`~/.preseed/`) 데이터는 자동으로 이어받음:
219
-
220
- - `~/.preseed/tokens.json` 있으면 읽음 (재인증 불필요)
221
- - `~/.preseed/appstore.json`도 동일
222
- - 환경변수 `PRESEED_GOOGLE_CLIENT_ID` / `PRESEED_GOOGLE_CLIENT_SECRET` 계속 인식
223
-
224
- 새로 쓰는 건 `~/.mimi-seed/`.
225
-
226
- ---
227
-
228
- ## Links
229
-
230
- - CLI 패키지: [`mimi-seed`](https://www.npmjs.com/package/mimi-seed)
231
- - 웹 콘솔: <https://mimi-seed.pryzm.gg/tool>
232
- - 저장소: <https://github.com/jeonghwanko/mimi-seed>
233
-
234
- ---
235
-
236
- ## License
237
-
238
- [PolyForm Noncommercial License 1.0.0](../../LICENSE) — 비상업적 사용만 허용.
239
- 상업적 이용 문의: turbo08@gmail.com
240
-
241
- **Required Notice:** Copyright 2026 Pryzm GG (https://mimi-seed.pryzm.gg)
1
+ # @yoonion/mimi-seed-mcp
2
+
3
+ **Mimi Seed** — Firebase · AdMob · Google Play · App Store Connect를 AI 콘솔에서 관리. Claude Code / Codex / Cursor / 기타 MCP 클라이언트에서 한 줄 등록으로 사용.
4
+
5
+ > 이 패키지는 Mimi Seed의 **로컬 MCP 서버**만 포함합니다. 웹 콘솔(Next.js 앱)은 <https://mimi-seed.pryzm.gg/tool>.
6
+
7
+ ## 설치
8
+
9
+ Claude Code:
10
+
11
+ ```bash
12
+ claude mcp add mimi-seed -- npx -y @yoonion/mimi-seed-mcp
13
+ ```
14
+
15
+ Codex (`~/.codex/config.toml`):
16
+
17
+ ```toml
18
+ [mcp_servers.mimi-seed]
19
+ command = "npx"
20
+ args = ["-y", "@yoonion/mimi-seed-mcp"]
21
+ enabled = true
22
+ ```
23
+
24
+ Claude Desktop (`claude_desktop_config.json`):
25
+
26
+ ```json
27
+ {
28
+ "mcpServers": {
29
+ "mimi-seed": {
30
+ "command": "npx",
31
+ "args": ["-y", "@yoonion/mimi-seed-mcp"]
32
+ }
33
+ }
34
+ }
35
+ ```
36
+
37
+ ## 첫 사용 전 인증
38
+
39
+ ```bash
40
+ npx -y @yoonion/mimi-seed-mcp mimi-seed-auth
41
+ ```
42
+
43
+ 브라우저가 열리면 Google 계정으로 로그인. 토큰은 `~/.mimi-seed/tokens.json`에 저장되고 자동 갱신됨.
44
+
45
+ 플랫폼별 추가 인증 (필요한 것만):
46
+
47
+ ```bash
48
+ npx -y @yoonion/mimi-seed-mcp mimi-seed-appstore-auth # App Store Connect (API Key)
49
+ npx -y @yoonion/mimi-seed-mcp mimi-seed-playstore-auth # Google Play 서비스 계정 JSON
50
+ npx -y @yoonion/mimi-seed-mcp mimi-seed-bigquery-auth # BigQuery (Crashlytics export 등)
51
+ ```
52
+
53
+ - **App Store Connect**: Users and Access → Keys에서 API Key 생성 후 Issuer ID / Key ID / .p8 경로 입력 → `~/.mimi-seed/appstore.json`
54
+ - **Google Play**: Play Console 서비스 계정 JSON 경로 입력 (패키지별 등록)
55
+ - **BigQuery**: Google OAuth 또는 서비스 계정으로 데이터셋 조회 권한 부여
56
+
57
+ AI 기능(릴리즈 노트 생성, 리뷰 답변)을 쓰려면:
58
+
59
+ ```bash
60
+ export ANTHROPIC_API_KEY=sk-ant-...
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 제공 도구 (147개 · 17개 영역)
66
+
67
+ | 영역 | 도구 수 | 주요 도구 |
68
+ |------|---------|-----------|
69
+ | App Store Connect | 31 | `appstore_submit_for_review` / `appstore_upload_screenshot` / `appstore_update_whats_new` / `appstore_create_version` |
70
+ | Google Play | 28 | `playstore_submit_release` / `playstore_promote_release` / `playstore_replace_images` / `playstore_reply_review` / `playstore_verify_service_account` |
71
+ | Firebase | 19 | `firebase_create_android_app` / `firebase_get_android_config` / `firebase_create_ios_app` / `firebase_enable_service` |
72
+ | AdMob | 7 | `admob_list_apps` / `admob_create_ad_unit` / `admob_get_today_earnings` / `admob_get_report` |
73
+ | CI/CD (GitHub Actions · GitLab) | 6 | `ci_trigger_build` / `ci_get_build_status` / `ci_list_workflows` / `ci_cancel_build` |
74
+ | Jenkins (크리덴셜) | 6 | `jenkins_create_credential` / `jenkins_upload_keystore` / `jenkins_save_config` |
75
+ | GA4 | 6 | `ga4_create_property` / `ga4_create_data_stream` / `ga4_run_report` |
76
+ | Search Console | 6 | `gsc_inspect_url` / `gsc_search_analytics` / `gsc_submit_sitemap` |
77
+ | Google Ads | 6 | `googleads_list_campaigns` / `googleads_get_uac_report` / `googleads_get_campaign_report` |
78
+ | Facebook | 6 | `facebook_post_photo` / `facebook_post_multi_photo` / `facebook_list_pages` |
79
+ | Google Cloud IAM | 5 | `iam_create_service_account` / `iam_create_key` / `iam_add_iam_policy_binding` |
80
+ | BigQuery | 5 | `bigquery_run_query` / `bigquery_list_datasets` / `bigquery_get_table_schema` |
81
+ | 점검 / 위험 | 4 | `playstore_check_submission_risks` / `appstore_check_submission_risks` / `screenshot_validate` / `release_status` |
82
+ | Instagram | 4 | `instagram_post_image` / `instagram_post_carousel` / `instagram_save_config` |
83
+ | Android 서명 | 3 | `android_signing_setup` / `android_generate_keystore` / `jenkins_upload_playstore_sa` |
84
+ | 인증 | 3 | `mimi_seed_status` / `mimi_seed_auth_start` / `mimi_seed_auth_status` |
85
+ | AI (Claude) | 2 | `generate_release_notes_from_commits` / `generate_review_reply` |
86
+
87
+ > 인앱 결제(IAP·구독) 도구는 위 Play Store·App Store 카운트에 포함됩니다 — `playstore_create_subscription` · `appstore_create_inapp_purchase` 등 (`@onesub/providers` 위임).
88
+ > 전체 카탈로그(항상 최신): [`docs/domain/tool-catalog.md`](../../docs/domain/tool-catalog.md)
89
+
90
+ ---
91
+
92
+ ## 슬래시 커맨드 (MCP Prompts)
93
+
94
+ MCP 클라이언트(Claude Code, Codex 등)에서 슬래시 커맨드로 바로 노출됩니다.
95
+
96
+ | 커맨드 | 설명 |
97
+ |--------|------|
98
+ | `/mimi-seed:deploy` | 블로커 점검 → 릴리즈 노트 생성 → 스토어 적용을 한 번에 |
99
+ | `/mimi-seed:health` | 인증 상태 + 앱 출시 준비도 빠른 요약 |
100
+ | `/mimi-seed:review-inbox` | 미답변 리뷰 조회 → AI 답변 초안 생성 |
101
+
102
+ ## MCP Resources
103
+
104
+ | URI | 설명 |
105
+ |-----|------|
106
+ | `mimi-seed://auth/status` | Google OAuth 토큰 상태 (JSON) |
107
+ | `mimi-seed://agent/guide` | 에이전트 역할 정의 — 출시 워크플로우·주의사항 (Markdown) |
108
+
109
+ ---
110
+
111
+ ## 주요 기능
112
+
113
+ ### 제출 위험 점검
114
+
115
+ 출시 전 블로커와 경고를 자동으로 점검합니다.
116
+
117
+ ```
118
+ "내 앱 출시 전 위험 요소 확인해줘"
119
+ → playstore_check_submission_risks("com.example.myapp")
120
+ → appstore_check_submission_risks("1234567890")
121
+ ```
122
+
123
+ **점검 항목:**
124
+ - Google Play: 리스팅 완성도(제목/설명/짧은설명), 스크린샷 수, 아이콘, 내부 빌드 존재, 연락처
125
+ - App Store: What's New, 설명/키워드, 스크린샷 커버리지, TestFlight 빌드, 개인정보처리방침 URL
126
+
127
+ ---
128
+
129
+ ### 스크린샷 해상도 검증
130
+
131
+ 업로드 전 로컬 파일을 스토어 규격과 비교합니다.
132
+
133
+ ```
134
+ "이 스크린샷들이 App Store 규격에 맞는지 확인해줘"
135
+ → screenshot_validate(["/path/to/screen1.png", "/path/to/screen2.png"], platform="ios", displayType="APP_IPHONE_69")
136
+ ```
137
+
138
+ iOS displayType 예시: `APP_IPHONE_69`, `APP_IPHONE_67`, `APP_IPHONE_65`, `APP_IPAD_PRO_3GEN_129`
139
+ Android imageType 예시: `phoneScreenshots`, `sevenInchScreenshots`, `featureGraphic`
140
+
141
+ ---
142
+
143
+ ### AI 릴리즈 노트 생성 (ANTHROPIC_API_KEY 필요)
144
+
145
+ git 커밋 내역을 Claude가 사용자 친화적인 릴리즈 노트로 변환합니다.
146
+
147
+ ```
148
+ "최근 커밋으로 릴리즈 노트 만들어줘"
149
+ → generate_release_notes_from_commits(
150
+ commits=[{message: "feat: 다크모드 추가"}, ...],
151
+ appName="MyApp",
152
+ locales=["ko", "en-US", "ja"]
153
+ )
154
+ ```
155
+
156
+ 3가지 톤(간결/상세/마케팅) + 다국어를 한 번에 생성. 이후 `playstore_update_release_notes` 또는 `appstore_update_whats_new`로 바로 적용.
157
+
158
+ ---
159
+
160
+ ### AI 리뷰 답변 생성 (ANTHROPIC_API_KEY 필요)
161
+
162
+ 스토어 리뷰에 대한 AI 답변 초안을 생성합니다.
163
+
164
+ ```
165
+ "이 리뷰에 답변 작성해줘"
166
+ → generate_review_reply(
167
+ reviewText="앱이 자꾸 튕겨요",
168
+ rating=2,
169
+ appName="MyApp",
170
+ tone="empathetic",
171
+ language="ko"
172
+ )
173
+ ```
174
+
175
+ tone 옵션: `friendly`(친근) / `professional`(정중) / `empathetic`(공감) / `brief`(간결)
176
+
177
+ > ⚠ AI 생성 답변은 초안입니다. 게시 전 반드시 검토하세요.
178
+ > 답변 게시는 `playstore_reply_review` 도구를 사용하세요.
179
+
180
+ ---
181
+
182
+ ## End-to-end: 서비스 계정 → JSON 키 → Play Console 권한
183
+
184
+ 서버(예: [onesub](https://github.com/jeonghwanko/onesub))가 Google Play 영수증을 백그라운드로 검증하려면 서비스 계정 JSON이 필요합니다. Claude에게 한 번에 시킬 수 있어요:
185
+
186
+ > 1. `my-project`에 `onesub-play-verifier` 서비스 계정 만들고
187
+ > 2. JSON 키 발급받아서
188
+ > 3. `com.yourapp.id`에 대해 검증
189
+
190
+ Claude가 연쇄 호출:
191
+
192
+ - `iam_create_service_account("my-project", "onesub-play-verifier", "onesub Play verifier")`
193
+ - `iam_create_key("onesub-play-verifier@my-project.iam.gserviceaccount.com")` → JSON 반환
194
+ - `playstore_verify_service_account(<json>, "com.yourapp.id")` → 아직 Play Console 권한이 없어서 403 반환 기대
195
+
196
+ 그 다음 **Play Console에서 수동으로** (또는 별도 androidpublisher.users API 호출):
197
+
198
+ - Users and permissions → 서비스 계정 이메일 초대
199
+ - **View financial data, orders, and cancellation survey responses** 체크
200
+ - **~5분 대기** 후 `playstore_verify_service_account` 재실행 → ✓
201
+
202
+ 마지막으로 JSON을 `GOOGLE_SERVICE_ACCOUNT_KEY` 서버 env에 넣으면 Play 영수증 검증 가능.
203
+
204
+ > Cloud IAM 역할과 Play Console 권한은 다릅니다. `iam_add_iam_policy_binding`은 Cloud IAM 역할(예: `roles/iam.serviceAccountTokenCreator`)만 부여 — Play Console의 "View financial data"는 별도.
205
+
206
+ ---
207
+
208
+ ## 환경변수
209
+
210
+ | 변수 | 설명 |
211
+ |------|------|
212
+ | `ANTHROPIC_API_KEY` | AI 릴리즈 노트 생성 / 리뷰 답변 활성화 (선택) |
213
+
214
+ ---
215
+
216
+ ## 레거시 호환성
217
+
218
+ Preseed 시절(`~/.preseed/`) 데이터는 자동으로 이어받음:
219
+
220
+ - `~/.preseed/tokens.json` 있으면 읽음 (재인증 불필요)
221
+ - `~/.preseed/appstore.json`도 동일
222
+ - 환경변수 `PRESEED_GOOGLE_CLIENT_ID` / `PRESEED_GOOGLE_CLIENT_SECRET` 계속 인식
223
+
224
+ 새로 쓰는 건 `~/.mimi-seed/`.
225
+
226
+ ---
227
+
228
+ ## Links
229
+
230
+ - CLI 패키지: [`mimi-seed`](https://www.npmjs.com/package/mimi-seed)
231
+ - 웹 콘솔: <https://mimi-seed.pryzm.gg/tool>
232
+ - 저장소: <https://github.com/jeonghwanko/mimi-seed>
233
+
234
+ ---
235
+
236
+ ## License
237
+
238
+ [PolyForm Noncommercial License 1.0.0](../../LICENSE) — 비상업적 사용만 허용.
239
+ 상업적 이용 문의: turbo08@gmail.com
240
+
241
+ **Required Notice:** Copyright 2026 Pryzm GG (https://mimi-seed.pryzm.gg)