@yoonion/mimi-seed-mcp 0.3.11 → 0.3.12
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/dist/appstore/tools.d.ts +24 -0
- package/dist/appstore/tools.js +40 -0
- package/dist/index.js +63 -0
- package/package.json +1 -1
package/dist/appstore/tools.d.ts
CHANGED
|
@@ -2,6 +2,30 @@ export declare function apiGet(path: string, params?: Record<string, string>): P
|
|
|
2
2
|
export declare function listApps(): Promise<any>;
|
|
3
3
|
export declare function getApp(appId: string): Promise<any>;
|
|
4
4
|
export declare function listVersions(appId: string): Promise<any>;
|
|
5
|
+
export type ApplePlatform = 'IOS' | 'MAC_OS' | 'TV_OS' | 'VISION_OS';
|
|
6
|
+
export type AppleReleaseType = 'MANUAL' | 'AFTER_APPROVAL' | 'SCHEDULED';
|
|
7
|
+
export interface CreateVersionInput {
|
|
8
|
+
appId: string;
|
|
9
|
+
versionString: string;
|
|
10
|
+
platform: ApplePlatform;
|
|
11
|
+
copyright?: string;
|
|
12
|
+
releaseType?: AppleReleaseType;
|
|
13
|
+
earliestReleaseDate?: string;
|
|
14
|
+
buildId?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function createVersion(input: CreateVersionInput): Promise<{
|
|
17
|
+
id: any;
|
|
18
|
+
version: any;
|
|
19
|
+
platform: any;
|
|
20
|
+
state: any;
|
|
21
|
+
releaseType: any;
|
|
22
|
+
createdDate: any;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function attachBuildToVersion(versionId: string, buildId: string): Promise<{
|
|
25
|
+
versionId: string;
|
|
26
|
+
buildId: string;
|
|
27
|
+
ok: boolean;
|
|
28
|
+
}>;
|
|
5
29
|
export declare function getVersionLocalizations(versionId: string): Promise<any>;
|
|
6
30
|
export interface LocalizationUpdateFields {
|
|
7
31
|
whatsNew?: string;
|
package/dist/appstore/tools.js
CHANGED
|
@@ -107,6 +107,46 @@ export async function listVersions(appId) {
|
|
|
107
107
|
createdDate: v.attributes?.createdDate,
|
|
108
108
|
}));
|
|
109
109
|
}
|
|
110
|
+
export async function createVersion(input) {
|
|
111
|
+
const attributes = {
|
|
112
|
+
platform: input.platform,
|
|
113
|
+
versionString: input.versionString,
|
|
114
|
+
};
|
|
115
|
+
if (input.copyright !== undefined)
|
|
116
|
+
attributes.copyright = input.copyright;
|
|
117
|
+
if (input.releaseType !== undefined)
|
|
118
|
+
attributes.releaseType = input.releaseType;
|
|
119
|
+
if (input.earliestReleaseDate !== undefined)
|
|
120
|
+
attributes.earliestReleaseDate = input.earliestReleaseDate;
|
|
121
|
+
const relationships = {
|
|
122
|
+
app: { data: { type: 'apps', id: input.appId } },
|
|
123
|
+
};
|
|
124
|
+
if (input.buildId) {
|
|
125
|
+
relationships.build = { data: { type: 'builds', id: input.buildId } };
|
|
126
|
+
}
|
|
127
|
+
const created = await apiPost('/appStoreVersions', {
|
|
128
|
+
data: {
|
|
129
|
+
type: 'appStoreVersions',
|
|
130
|
+
attributes,
|
|
131
|
+
relationships,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
return {
|
|
135
|
+
id: created?.data?.id,
|
|
136
|
+
version: created?.data?.attributes?.versionString,
|
|
137
|
+
platform: created?.data?.attributes?.platform,
|
|
138
|
+
state: created?.data?.attributes?.appStoreState ?? created?.data?.attributes?.state,
|
|
139
|
+
releaseType: created?.data?.attributes?.releaseType,
|
|
140
|
+
createdDate: created?.data?.attributes?.createdDate,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export async function attachBuildToVersion(versionId, buildId) {
|
|
144
|
+
// /relationships/build 엔드포인트는 204 No Content 반환
|
|
145
|
+
await apiPatch(`/appStoreVersions/${versionId}/relationships/build`, {
|
|
146
|
+
data: { type: 'builds', id: buildId },
|
|
147
|
+
});
|
|
148
|
+
return { versionId, buildId, ok: true };
|
|
149
|
+
}
|
|
110
150
|
// ─── 로컬라이제이션 (메타데이터) ───
|
|
111
151
|
export async function getVersionLocalizations(versionId) {
|
|
112
152
|
const data = await apiGet(`/appStoreVersions/${versionId}/appStoreVersionLocalizations`, {
|
package/dist/index.js
CHANGED
|
@@ -705,6 +705,69 @@ server.tool('appstore_list_versions', 'App Store 버전 목록 (심사 상태
|
|
|
705
705
|
const versions = await appstore.listVersions(appId);
|
|
706
706
|
return { content: [{ type: 'text', text: JSON.stringify(versions, null, 2) }] };
|
|
707
707
|
});
|
|
708
|
+
server.tool('appstore_create_version', [
|
|
709
|
+
'App Store 새 버전 레코드 생성 — POST /v1/appStoreVersions.',
|
|
710
|
+
'새 versionString(예: "1.2.3")으로 PREPARE_FOR_SUBMISSION 상태의 버전을 만듦.',
|
|
711
|
+
'buildId를 함께 주면 생성과 동시에 빌드 연결. 나중에 붙이려면 appstore_attach_build 사용.',
|
|
712
|
+
'releaseType: MANUAL(개발자가 출시) / AFTER_APPROVAL(승인 후 자동) / SCHEDULED(earliestReleaseDate 필요).',
|
|
713
|
+
].join(' '), {
|
|
714
|
+
appId: z.string().describe('App Store 앱 ID (appstore_list_apps 결과의 id, 숫자형)'),
|
|
715
|
+
versionString: z.string().describe('버전 문자열 (예: "1.2.3")'),
|
|
716
|
+
platform: z
|
|
717
|
+
.enum(['IOS', 'MAC_OS', 'TV_OS', 'VISION_OS'])
|
|
718
|
+
.default('IOS')
|
|
719
|
+
.describe('플랫폼 (기본 IOS)'),
|
|
720
|
+
copyright: z.string().optional().describe('저작권 표기 (예: "© 2026 Foo Inc.")'),
|
|
721
|
+
releaseType: z
|
|
722
|
+
.enum(['MANUAL', 'AFTER_APPROVAL', 'SCHEDULED'])
|
|
723
|
+
.optional()
|
|
724
|
+
.describe('출시 방식 (생략 시 Apple 기본값)'),
|
|
725
|
+
earliestReleaseDate: z
|
|
726
|
+
.string()
|
|
727
|
+
.optional()
|
|
728
|
+
.describe('SCHEDULED일 때 가장 빠른 출시 시각 (ISO 8601, 예: "2026-05-01T00:00:00Z")'),
|
|
729
|
+
buildId: z
|
|
730
|
+
.string()
|
|
731
|
+
.optional()
|
|
732
|
+
.describe('연결할 빌드 ID (appstore_list_builds 결과). 생략 시 버전만 생성하고 나중에 attach.'),
|
|
733
|
+
}, async ({ appId, versionString, platform, copyright, releaseType, earliestReleaseDate, buildId }) => {
|
|
734
|
+
const result = await appstore.createVersion({
|
|
735
|
+
appId,
|
|
736
|
+
versionString,
|
|
737
|
+
platform,
|
|
738
|
+
copyright,
|
|
739
|
+
releaseType,
|
|
740
|
+
earliestReleaseDate,
|
|
741
|
+
buildId,
|
|
742
|
+
});
|
|
743
|
+
return {
|
|
744
|
+
content: [
|
|
745
|
+
{
|
|
746
|
+
type: 'text',
|
|
747
|
+
text: `✅ 버전 ${versionString} (${platform}) 생성됨${buildId ? ` + 빌드 ${buildId} 연결됨` : ''}.\n\n${JSON.stringify(result, null, 2)}`,
|
|
748
|
+
},
|
|
749
|
+
],
|
|
750
|
+
};
|
|
751
|
+
});
|
|
752
|
+
server.tool('appstore_attach_build', [
|
|
753
|
+
'App Store 버전에 업로드된 빌드를 연결 — PATCH /v1/appStoreVersions/{id}/relationships/build.',
|
|
754
|
+
'TestFlight에 업로드되어 processingState=VALID 상태인 빌드만 연결 가능.',
|
|
755
|
+
'편집 가능한 버전(PREPARE_FOR_SUBMISSION 등)에서만 변경됨.',
|
|
756
|
+
'buildId는 appstore_list_builds 결과 사용.',
|
|
757
|
+
].join(' '), {
|
|
758
|
+
versionId: z.string().describe('App Store 버전 ID (appstore_list_versions 또는 appstore_create_version 결과)'),
|
|
759
|
+
buildId: z.string().describe('빌드 ID (appstore_list_builds 결과)'),
|
|
760
|
+
}, async ({ versionId, buildId }) => {
|
|
761
|
+
const result = await appstore.attachBuildToVersion(versionId, buildId);
|
|
762
|
+
return {
|
|
763
|
+
content: [
|
|
764
|
+
{
|
|
765
|
+
type: 'text',
|
|
766
|
+
text: `✅ 빌드 ${buildId}가 버전 ${versionId}에 연결됐어.\n\n${JSON.stringify(result, null, 2)}`,
|
|
767
|
+
},
|
|
768
|
+
],
|
|
769
|
+
};
|
|
770
|
+
});
|
|
708
771
|
server.tool('appstore_get_metadata', 'App Store 버전 메타데이터 (설명문, 키워드, What\'s New)', { versionId: z.string().describe('버전 ID') }, async ({ versionId }) => {
|
|
709
772
|
const localizations = await appstore.getVersionLocalizations(versionId);
|
|
710
773
|
return { content: [{ type: 'text', text: JSON.stringify(localizations, null, 2) }] };
|
package/package.json
CHANGED