Atlas / MCP servers / jeonghwanko / Mimi Seed Sdk

Mimi Seed SdkBLOCK

mcp/jeonghwanko/mimi-seed-sdk

Release Doctor: check Expo, React Native and Unity release risks before connecting app stores. CLI + MCP for Claude Code and Codex.

Verdict
BLOCK
Grade
F
Trust score
57 /100
Exposed tools
200 139r · 96w · 12d
Transport
stdio
License
NOASSERTION
Stars
22
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

🌐 Homepage · 🌱 Try Release Doctor · 📦 npm · 🇰🇷 한국어

How many tabs do you have open right now to ship one app?

Play Console · App Store Connect · Firebase · AdMob · Google Cloud IAM... Write release notes, check screenshot specs, reply to reviews, wire up Firebase — all in separate dashboards, all manual.

Mimi Seed handles all of this through Claude Code or Codex conversation.

"Is my app ready to ship?"
→ Readiness Score 87/100 · 2 blockers: missing 6.9" screenshots, What's New empty

"Write release notes from commits since the last tag, Korean and English, and push to Play Store"
→ 3 tones (concise / detailed / marketing) × 2 locales generated · Apply now?

"Reply to this 1-star review with an empathetic tone"
→ Draft ready · Review before posting?

"Add an Android app to Firebase and download google-services.json"
→ App created · Add SHA-1 fingerprint?

Try Release Doctor first — no account or store key

Target API · Billing · Expo · [Unity](docs/guides/unity-google-play-co

Read from source at commit 20f201476517OBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mimi-seed-mcp --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env MIMI_SEED_GOOGLE_CLIENT_SECRET=${MIMI_SEED_GOOGLE_CLIENT_SECRET} --env MIMI_SEED_TOKEN=${MIMI_SEED_TOKEN} --env PRESEED_GOOGLE_CLIENT_SECRET=${PRESEED_GOOGLE_CLIENT_SECRET} -- npx -y @yoonion/[email protected]
claude-desktop
{
  "mcpServers": {
    "mimi-seed-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@yoonion/[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "MIMI_SEED_GOOGLE_CLIENT_SECRET": "${MIMI_SEED_GOOGLE_CLIENT_SECRET}",
        "MIMI_SEED_TOKEN": "${MIMI_SEED_TOKEN}",
        "PRESEED_GOOGLE_CLIENT_SECRET": "${PRESEED_GOOGLE_CLIENT_SECRET}"
      }
    }
  }
}
03

Exposed tools (200)

139 read · 96 write · 12 destructive. Blast radius: 12 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
admob_create_ad_unitwriteAdMob 광고 단위 생성 (v1beta — Limited Access)
admob_create_appwriteAdMob에 새 앱 등록 (v1beta — Limited Access). appStoreId 를 주면 스토어 게시 앱과 링크(Android=패키지명, iOS=App Store 숫자 ID), 없으면 manual(unlinked) 앱.
admob_get_reportreadAdMob 수익 리포트 (기간 지정)
admob_get_today_earningsread오늘 AdMob 수익 요약
admob_list_accountsreadAdMob 계정 목록 조회
admob_list_ad_unitsreadAdMob 광고 단위 목록
admob_list_appsreadAdMob에 등록된 앱 목록
android_check_billing_complianceread
android_generate_keystoreread
android_signing_setupread
appstore_add_beta_testerswrite
appstore_add_product_to_reviewwriteApp Store IAP/구독 상품을 **단독으로** 심사에 제출한다 — consumable/non_consumable 은
appstore_add_version_to_review_submissionwrite이미 존재하는 심사 묶음에 앱 버전을 항목으로 추가한다 (POST /reviewSubmissionItems).
appstore_attach_buildread
appstore_beta_statusread
appstore_cancel_reviewread
appstore_check_submission_risksread
appstore_create_app_info_localizationwrite
appstore_create_inapp_purchasewrite
appstore_create_subscriptionwrite
appstore_create_versionwrite
appstore_declare_encryptionread
appstore_delete_previewdestructive
appstore_delete_productdestructive⚠️ 비가역. App Store IAP 상품 삭제. MISSING_METADATA / WAITING_FOR_REVIEW 상태만 가능 — 이미 승인(READY_FOR_SALE)된 상품은 Console에서
appstore_delete_screenshotdestructiveApp Store 개별 스크린샷 삭제
appstore_delete_screenshot_setdestructiveApp Store 스크린샷 셋 전체 삭제 (디스플레이 타입 교체 시 먼저 정리)
appstore_get_age_ratingread
appstore_get_appreadApp Store Connect 앱 상세 정보
appstore_get_app_inforeadApp Store 앱 정보 (카테고리, 연령 등급, state). state=READY_FOR_DISTRIBUTION이 라이브, 그 외가 편집 가능 appInfo.
appstore_get_availabilityread
appstore_get_finance_reportread
appstore_get_metadatareadApp Store 버전 메타데이터 (설명문, 키워드, What\
appstore_get_review_notesreadApp Store 심사 리뷰어 노트(Notes for App Review) 조회. 현재 등록된 notes, contactEmail 확인용.
appstore_get_sales_reportread
appstore_get_weekly_insightread
appstore_list_app_info_localizationsread
appstore_list_appsreadApp Store Connect 앱 목록 조회
appstore_list_beta_groupsreadTestFlight 베타 그룹 목록
appstore_list_buildsreadTestFlight 빌드 목록
appstore_list_previewsread
appstore_list_product_localizationsreadApp Store IAP/구독 상품의 현지화(표시 이름·설명) 목록 조회. locale / name / description / state 반환.
appstore_list_productsreadApp Store의 모든 IAP 상품(구독 + 일회성) 통합 조회. productId / internalId / name / status / type 반환.
appstore_list_review_submissionsreadApp Store 심사 제출 묶음(reviewSubmissions) + 내부 항목 조회 — 읽기 전용.
appstore_list_reviewsread
appstore_list_screenshotsreadApp Store 스크린샷 셋 + 이미지 목록 조회 (로컬라이제이션 단위). 디스플레이 타입별로 그룹핑됨
appstore_list_versionsreadApp Store 버전 목록 (심사 상태 포함)
appstore_notify_beta_testersread
appstore_phased_releaseread
appstore_plan_releaseread
appstore_release_statusread
appstore_release_versionread
appstore_remove_review_submission_itemdestructive심사 제출 묶음에서 항목을 제거한다 (removed=true PATCH) — ASC 웹
appstore_reply_reviewread
appstore_set_beta_group_buildwrite
appstore_set_territory_availabilitywrite
appstore_submit_beta_reviewwrite
appstore_submit_for_reviewwrite
appstore_update_age_ratingwrite
appstore_update_app_info_localizationwrite
appstore_update_beta_review_detailwrite
appstore_update_beta_test_infowrite
appstore_update_localizationwriteApp Store 버전 로컬라이제이션(메타데이터) 수정 — localizationId 직접 지정. 이 버전의 새로운 기능(whatsNew), 설명(description), 키워드, 프로모션 텍스트를 편집. 수정 가능한 상태(PREPARE_FOR_SUBMISSION 등)인 버전에서만 반영됨
appstore_update_productwriteApp Store IAP 상품의 reference name 변경. productId / 유형은 변경 불가.
appstore_update_product_localizationwriteApp Store IAP/구독 상품의 현지화(표시 이름·설명)를 로케일 단위로 upsert — 있으면 수정, 없으면 생성.
appstore_update_product_review_notewrite기존 App Store IAP/구독 상품의 App Review 노트를 수정. appstore_list_products의 productId/type을 사용.
appstore_update_release_typewrite
appstore_update_review_noteswriteApp Store 심사 리뷰어 노트(Notes for App Review) 등록/수정. versionId 버전에 appStoreReviewDetail.notes를 PATCH하거나 없으면 POST로 생성. 심사 시 리뷰어에게 전달되는 테스트 계정·기능 안내 텍스트 작성에 사용. 4000자 권장 한도.
appstore_update_version_stringwrite기존 App Store 버전 레코드의 versionString 을 변경 (예: 2.0.5 → 2.0.6).
appstore_update_whats_newwriteApp Store
appstore_update_whats_to_testwrite
appstore_upload_previewwrite
appstore_upload_product_review_screenshotwrite
appstore_upload_screenshotwrite
appstore_verify_credentialsread
bigquery_auth_statusread현재 BigQuery 인증 상태 조회 — 어떤 인증(서비스 계정/OAuth)이 사용되는지 확인
bigquery_get_table_schemareadBigQuery 테이블 스키마(컬럼 정보) 조회
bigquery_list_datasetsreadBigQuery 프로젝트의 데이터셋 목록 조회
bigquery_list_tablesreadBigQuery 데이터셋의 테이블 목록 조회
bigquery_run_querywriteBigQuery 읽기 전용 SQL 쿼리 실행 — 단일 SELECT 문만 허용 (API 호출 전 어휘 검사로 SELECT / WITH / FROM(파이프 문법) 으로 시작하는
ci_cancel_buildwrite진행 중인 빌드를 취소합니다. (GitHub Actions run / GitLab pipeline)
ci_get_build_statuswrite특정 빌드(GitHub Actions run / GitLab pipeline)의 현재 상태를 조회합니다.
ci_list_recent_buildsread최근 빌드 목록을 조회합니다. 특정 브랜치나 워크플로로 필터링 가능.
ci_list_workflowsread
ci_save_configwrite
ci_trigger_buildwrite
facebook_current_configread현재 저장된 Facebook 페이지 설정을 확인합니다.
facebook_get_pagereadFacebook 페이지 정보 조회 + 저장된 토큰 유효성 검증.
facebook_list_pagesreadUser Access Token으로 접근 가능한 Facebook 페이지 목록을 조회합니다. 페이지별 Page Access Token도 함께 반환.
facebook_post_multi_photowrite
facebook_post_photowrite
facebook_save_configwrite
firebase_create_android_appwriteFirebase에 새 Android 앱 등록
firebase_create_ios_appwriteFirebase에 새 iOS 앱 등록
firebase_create_projectwrite
firebase_create_web_appwriteFirebase에 새 Web 앱 등록
firebase_delete_android_appdestructiveFirebase Android 앱 삭제
firebase_delete_ios_appdestructiveFirebase iOS 앱 삭제
firebase_delete_web_appdestructiveFirebase Web 앱 삭제
firebase_enable_common_serviceswriteFirebase 기본 서비스 일괄 활성화 (Firestore, Auth, Storage, FCM 등)
firebase_enable_servicewriteGCP 서비스 활성화 (예: firestore.googleapis.com)
firebase_get_analytics_detailsread프로젝트의 GA4 링크 상세 — 연결된 analyticsProperty + 앱↔data stream 매핑 조회.
firebase_get_android_configreadgoogle-services.json 다운로드
firebase_get_ios_configreadGoogleService-Info.plist 다운로드
firebase_get_projectreadFirebase 프로젝트 상세 정보 조회
firebase_get_remote_config_overviewread
firebase_get_web_configreadFirebase Web 설정 (firebaseConfig 객체) 조회
firebase_link_analyticsread
firebase_list_android_appsreadFirebase 프로젝트의 Android 앱 목록
firebase_list_enabled_servicesread프로젝트에서 활성화된 GCP 서비스 목록
firebase_list_ios_appsreadFirebase 프로젝트의 iOS 앱 목록
firebase_list_projectsread내 Firebase 프로젝트 목록 조회
firebase_list_web_appsreadFirebase 프로젝트의 Web 앱 목록
ga4_create_bigquery_linkwriteGA4 → BigQuery export 링크 생성. confirm 생략/false 시 읽기 전용 계획만 반환하고, confirm: true 일 때만 계획을 재검사한 뒤 생성한다. 기존 링크가 있으면 no-op.
ga4_create_data_streamwriteGA4 property 에 data stream 생성. web → measurementId(G-XXXX) 반환, android/ios → firebaseAppId 반환(Firebase 링크 시). RN 앱은 android/ios 스트림 사용.
ga4_create_propertywrite새 GA4 property 생성. 생성 후 ga4_create_data_stream 으로 플랫폼별 stream(웹=measurement ID, 앱=firebaseAppId)을 붙인다.
ga4_list_account_summariesread접근 가능한 Google Analytics 계정 + 각 계정의 GA4 property 요약. accountId / propertyId 를 확인할 때 먼저 호출. analytics.edit 스코프 필요(없으면 재로그인 안내).
ga4_list_data_streamsreadGA4 property 의 data stream 목록 (measurementId / firebaseAppId 평탄화).
ga4_list_propertiesread특정 GA 계정 하위 GA4 property 목록.
ga4_plan_bigquery_linkreadGA4 → BigQuery export 링크 생성 계획을 읽기 전용으로 점검. 기존 링크, 대상 프로젝트, 데이터셋 위치와 export 옵션을 반환하며 원격 상태를 변경하지 않는다.
ga4_run_reportwriteGA4 Data API 리포트 (활성 사용자·이벤트 등). dimensions/metrics 는 쉼표 구분 GA4 API 이름.
gcp_create_budgetwrite
gcp_get_billing_inforead
gcp_list_billing_projectsread
gcp_list_budgetsread결제 계정의 예산 목록 (금액·프로젝트 필터·알림 임계). 중복 생성 전 확인용.
generate_release_notes_from_commitsread
generate_review_replyread
googleads_config_statusreadGoogle Ads 연동 설정 현황 확인
googleads_get_campaign_reportread기간별 캠페인 성과 리포트 (클릭, 노출, 계정 통화 비용, 전환수, 전환당 비용). 설치 CPI나 코호트 ROAS가 아님.
googleads_get_uac_reportread앱 캠페인(UAC) 비용·전환 리포트. legacy installs/cpi 필드는 일반 전환 기반 별칭이며 설치수·설치 CPI·D7 ROAS로 단정하지 말 것.
googleads_list_accessible_customersreadOAuth 토큰으로 접근 가능한 Google Ads 계정 목록 (API 연결 확인용)
googleads_list_campaignsreadGoogle Ads 캠페인 목록 조회 (상태, 채널 타입, 일일 예산 포함)
googleads_save_configwriteGoogle Ads API 설정 저장 (Developer Token + 계정 ID). 최초 1회만 필요.
gsc_get_sitemapread특정 사이트맵 1개의 상세(타입별 submitted/indexed, 경고/오류, 처리 시각) 조회.
gsc_inspect_urlreadURL 1개의 실제 색인 상태 검사 (coverageState, robots.txt 허용 여부, 마지막 크롤 시각, 정규 URL, 리치 결과). 사이트맵 리포트보다 정확한 색인 진단의 단일 출처.
gsc_list_sitemapsread속성에 제출된 사이트맵 목록 (마지막 다운로드 시각, 경고/오류 수, submitted/indexed 카운트). ⚠️ 사이트맵 리포트의 indexed 수치는 신뢰도 낮음 — 실제 색인 여부는 gsc_inspect_url 로 확인.
gsc_list_sitesreadSearch Console에 등록된(권한 있는) 속성 목록 + 권한 레벨 조회. siteUrl 값을 확인할 때 먼저 호출.
gsc_search_analyticsread검색 성과 데이터 조회 (클릭·노출·CTR·평균순위). dimensions로 query/page/country/device/date/searchAppearance 별 분해. 요약(가중 평균순위 포함) + rows 반환.
gsc_submit_sitemapwrite사이트맵을 Search Console에 제출(또는 재제출)해 재크롤을 유도. webmasters read-write 스코프 필요.
iam_add_iam_policy_bindingwrite
iam_create_keywrite
iam_create_service_accountwrite새 서비스 계정 생성. accountId는 이메일의 로컬 파트 (예:
iam_list_keysread주어진 서비스 계정의 기존 키 목록. keyId / keyType / 만료시간 반환. 회수할 키 찾을 때 사용.
iam_list_service_accountsread주어진 projectId의 서비스 계정 목록. 이메일 / displayName / disabled 상태 반환.
instagram_get_accountreadInstagram 계정 정보 조회 + 저장된 토큰 유효성 검증.
instagram_post_carouselwrite
instagram_post_imagewrite
instagram_save_configwrite
jenkins_create_credentialwrite
jenkins_create_jobwrite
jenkins_delete_credentialdestructive
jenkins_get_build_statusread큐에서 배정받은 정확한 job 과 build_number 의 building/result 를 조회합니다. 빌드를 새로 실행하지 않습니다.
jenkins_get_job_configread
jenkins_get_queue_itemread
jenkins_list_credentialsread
jenkins_list_jobsread
jenkins_save_configwrite
jenkins_statusread
jenkins_trigger_buildwrite
jenkins_update_jobwrite
jenkins_upload_keystorewrite
jenkins_upload_playstore_sawrite
mimi_seed_auth_startwrite
mimi_seed_auth_statusreadMimi Seed MCP 인증 상태 확인 (만료 시 refresh_token으로 자동 갱신 시도)
mimi_seed_remote_sync_credentialswrite
mimi_seed_statusread
naver_check_pageread
naver_indexnow_submitwrite네이버 IndexNow 로 새로 만들거나 수정·삭제한 URL 을 즉시 알려 수집을 앞당긴다 (IndexNow 참여 엔진끼리 공유됨). 사전 조건: 사이트 루트에
playstore_cancel_recovery_actionread
playstore_check_submission_risksread
playstore_create_onetime_productwrite
playstore_create_recovery_actionwrite
playstore_create_subscriptionwrite
playstore_delete_all_imagesdestructiveGoogle Play 리스팅 특정 imageType의 이미지 전체 삭제 (교체 전 정리). ⚠️ commit이 Play Console의 미게시 리스팅 변경을 덮어쓸 수 있음.
playstore_delete_productdestructive⚠️ 비가역. Google Play IAP 상품 삭제. 활성 baseplan + 구독자 있는 구독은 삭제 불가.
playstore_delete_service_accountdestructive등록된 패키지별 서비스 계정 삭제. default(레거시) SA는 영향 없음.
playstore_deploy_recovery_actionwrite
playstore_get_appreadGoogle Play 앱 세부정보 조회 — 개발자 연락처(이메일·전화·웹사이트)·기본 언어 등 (edits.details). 수정은 playstore_update_details.
playstore_get_financial_reportread
playstore_get_listingreadGoogle Play 스토어 리스팅 조회 (제목, 설명문 등)
playstore_get_statisticsreadGoogle Play Developer Reporting API / Android vitals 통계 조회. ANR/Crash/Error count를 기간·버전·기기·국가 등으로 분해해 확인
playstore_list_financial_reportsread
playstore_list_imagesreadGoogle Play 리스팅 이미지 목록 조회 (imageType별)
playstore_list_inapp_productsreadGoogle Play 인앱 상품 목록
playstore_list_productsreadGoogle Play의 모든 IAP 상품(구독 + 일회성) 통합 조회. productId / name / status / type / price / currency 반환.
playstore_list_recovery_actionsread
playstore_list_reviewsreadGoogle Play 리뷰 목록 조회. developerComment 가 null 이면 미답변, 답변이 있으면 본문과 수정 시각을 반환한다 (답변은 리뷰당 하나 — playstore_reply_review 는 기존 답변을 교체한다).
playstore_list_service_accountsread등록된 패키지별 서비스 계정 + default(레거시) SA 정보 요약. clientEmail / projectId 만 노출 (private_key 미노출).
playstore_list_subscriptionsreadGoogle Play 구독 상품 목록
playstore_list_tracksreadGoogle Play 릴리스 트랙 현황 (프로덕션/베타/알파/내부)
playstore_plan_releaseread
playstore_promote_releaseread
playstore_register_service_accountread
playstore_replace_imageswriteGoogle Play 리스팅 이미지 일괄 교체 (한 edit 세션: deleteall → 순서대로 upload → commit). 스크린샷 5~8장 한 번에 교체 시 효율적. 업로드 순서가 스토어 노출 순서. ⚠️ commit이 Play Console의 미게시 리스팅 변경을 덮어쓸 수 있음.
playstore_reply_reviewreadGoogle Play 리뷰에 답변
playstore_submit_releasewrite
playstore_update_detailswriteGoogle Play 앱 세부정보(개발자 연락처·기본 언어) 수정 — 연락처 이메일/전화/웹사이트, 기본 언어. 스토어 리스팅(제목·설명)과는 별개이며, 넘긴 필드만 부분 갱신(edits.details.patch). ⚠️ Console 에서 같은 앱을 편집·미게시 중이면 충돌할 수 있음.
playstore_update_listingwriteGoogle Play 스토어 리스팅 수정 또는 새 언어 생성. 기존 언어는 넘긴 필드만 부분 갱신(edits.listings.patch)해 생략한 필드와 프로모 영상(video)을 보존한다. 새 언어는 title·shortDescription·fullDescription을 모두 전달해야 하며 전체 리스팅을 생성한다. ⚠️ Play API 편집과 Console 동시 편집은 충돌 — Console에서 같은 리스팅을 편집·미게시 중이면 그 변경이 덮어써질 수 있음.
playstore_update_productwriteGoogle Play IAP 상품의 표시 이름 변경 (현재 name 필드만 수정 가능). productId / type / 가격은 변경 불가.
playstore_update_product_listingwriteGoogle Play 인앱 상품(소모성/비소모성)의 언어별 제목·설명을 갱신. 넘긴 로케일만 덮어쓰고 나머지 언어는 보존한다.
playstore_update_product_statewriteGoogle Play 인앱 상품의 구매 옵션을 활성화/비활성화 — Play Console 의 DRAFT → 활성 토글.
04

Trust audit

BLOCKgrade F · trust 57/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (2 observation(s))
Shell
declared (4 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/install.mjs:48
const r = exec(bin, argv, { cwd, stdio: quiet ? ['ignore', 'pipe', 'pipe'] : 'inherit' });
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/src/init.ts:153
const callback = `http://127.0.0.1:${port}/cb`;
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/mcp-server/src/__tests__/iam-tools.test.ts:93
private_key: '-----BEGIN PRIVATE KEY-----\nredacted-key-material\n-----END PRIVATE KEY-----',
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/mcp-server/src/__tests__/remote-sync.test.ts:8
const appStorePrivateKey = '-----BEGIN PRIVATE KEY-----\nredacted-app-store-key\n-----END PRIVATE KEY-----';
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/mcp-server/src/__tests__/remote-sync.test.ts:9
const playPrivateKey = '-----BEGIN PRIVATE KEY-----\nredacted-play-key\n-----END PRIVATE KEY-----';
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/mcp-server/src/__tests__/secret-output.test.ts:70
const SERVICE_ACCOUNT_PEM = '-----BEGIN PRIVATE KEY-----\nsecret-key-material\n-----END PRIVATE KEY-----\n';
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
appstore_delete_preview, appstore_delete_product, appstore_delete_screenshot, appstore_delete_screenshot_set, appstore_remove_review_submission_item, firebase_delete_android_app, firebase_delete_ios_a
Why it matters. 12 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.codexignore
.codexignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
plugins/mimi-seed/.codexignore
.codexignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
packages/mcp-server/src/__tests__/appstore-previews.test.ts:116
const md5 = crypto.createHash('md5').update(fs.readFileSync(videoPath)).digest('hex');
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
packages/mcp-server/src/__tests__/appstore-screenshots.test.ts:111
sourceFileChecksum: crypto.createHash('md5').update(fileBytes).digest('hex'),
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
packages/mcp-server/src/appstore/analytics.ts:114
const actual = crypto.createHash('md5').update(bytes).digest('hex');
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
packages/mcp-server/src/appstore/previews.ts:220
const hash = crypto.createHash('md5');
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
packages/mcp-server/src/appstore/product-review.ts:177
const checksum = crypto.createHash('md5').update(buffer).digest('hex');
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/mcp-server/src/__tests__/package-name.test.ts:48
'../../.ssh/id_rsa',
Why it matters. touches a credential store
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/ci.yml:167
run: bash ../../.github/scripts/publish-if-new.sh mcp-server
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/ci.yml:173
run: bash ../../.github/scripts/publish-if-new.sh cli
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cli/src/__tests__/credentials.test.ts:307
readFileSync(new URL('../../../mcp-server/package.json', import.meta.url), 'utf8'),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cli/src/__tests__/mcp-bin-pin.test.ts:25
JSON.parse(fs.readFileSync(fileURLToPath(new URL('../../package.json', import.meta.url)), 'utf8')) as { version: string }
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cli/src/__tests__/mcp-restart.test.ts:92
expect(ok('@yoonion/mimi-seed-mcp@x/../../vitest')).toBe(false);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp-server/src/__tests__/instagram-browser-login.test.ts:14
const req=request(`http://127.0.0.1:${start.callbackPort}${path}?${new URLSearchParams(params)}`,res=>{res.resume();res.on('end',()=>resolve(res.statusCode!));});req.on('error',reject);req.end();
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp-server/src/__tests__/jenkins-url-warning.test.ts:14
'http://192.168.0.10:8080',
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp-server/src/__tests__/jenkins-url-warning.test.ts:15
'http://10.0.0.5',
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp-server/src/__tests__/jenkins-url-warning.test.ts:16
'http://172.20.1.1:8080',
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/cli/package.json
@anthropic-ai/sdk, kleur, open, @eslint/js, @types/node, @vitest/coverage-v8, eslint, tsup
Why it matters. 12 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 20f201476517full audit observations/trust-audit/mcp-server/jeonghwanko__mimi-seed-sdk.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1220f201476517BLOCKF57first audit
06

Questions

What is the @yoonion/mimi-seed-mcp MCP server?

Release Doctor: check Expo, React Native and Unity release risks before connecting app stores. CLI + MCP for Claude Code and Codex.

What tools does @yoonion/mimi-seed-mcp expose?

200 in total: 139 read-only, 96 that write, and 12 that can delete or overwrite (appstore_delete_preview, appstore_delete_product, appstore_delete_screenshot, appstore_delete_screenshot_set, appstore_remove_review_submission_item). Every one is listed on this page with its risk.

Is @yoonion/mimi-seed-mcp safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (57/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 12 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does @yoonion/mimi-seed-mcp need?

It reads ANTHROPIC_API_KEY, MIMI_SEED_GOOGLE_CLIENT_SECRET, MIMI_SEED_TOKEN and PRESEED_GOOGLE_CLIENT_SECRET from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @yoonion/mimi-seed-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @yoonion/mimi-seed-mcp at 0.21.5.

How current is this page?

The grade is for one exact copy of the source (20f201476517), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement