shipshots-mcp 0.8.0 → 0.10.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/README.md CHANGED
@@ -196,6 +196,18 @@ The validator understands same-component overlap, so text sitting on a button or
196
196
 
197
197
  The quality pass checks clipping, text/device overlap, poor spacing, low contrast, and connected-strip bounds. It understands intentional carousel bleed.
198
198
 
199
+ ### Install Campaigns (Admin Dogfood)
200
+
201
+ - `plan_install_campaign`
202
+ - `upload_campaign_asset`
203
+ - `save_install_campaign`
204
+ - `render_campaign_pack`
205
+ - `get_campaign`
206
+ - `get_campaign_pack`
207
+ - `record_campaign_result`
208
+
209
+ The install-campaign workflow turns portrait app recordings into a fixed pack of English and Thai TikTok/Meta creative: three concepts, two hooks each, a 9:16 narrated video and dedicated 4:5 and 1:1 posters per variant. Rendering is asynchronous; poll with `get_campaign` and retrieve the private ZIP with `get_campaign_pack`.
210
+
199
211
  ### Batch Operations
200
212
 
201
213
  - `batch_add_layers`
@@ -1,4 +1,15 @@
1
1
  import type { CanvasProject, LocaleStrategy, MarketingMode } from "./types.js";
2
+ export type CampaignView = {
3
+ id: string;
4
+ projectId: string;
5
+ name: string;
6
+ status: string;
7
+ error?: string | null;
8
+ bundleUrl?: string | null;
9
+ progress?: Record<string, number>;
10
+ variants?: Array<Record<string, unknown>>;
11
+ [key: string]: unknown;
12
+ };
2
13
  export type ProjectQualityReport = {
3
14
  projectId: string;
4
15
  mode: "check" | "fix";
@@ -94,5 +105,55 @@ export declare class ApiClient {
94
105
  deleteProject(id: string): Promise<void>;
95
106
  submitFeedback(email: string, category: string, message: string): Promise<void>;
96
107
  getProjectUrl(projectId: string): string;
108
+ /** Absolutize an app-relative path (e.g. a render job's /api/images/{id} output). */
109
+ absoluteUrl(path: string): string;
110
+ /** GET the ad plan: brief slots, angles + voice guidance, per-angle defaults. */
111
+ planAdVideo(projectId: string): Promise<Record<string, unknown>>;
112
+ /** Trigger a server-side ad-video render. Returns the job id + config summary. */
113
+ createAdVideo(projectId: string, body: {
114
+ angle: string;
115
+ overrides?: Record<string, unknown>;
116
+ }): Promise<{
117
+ jobId: string;
118
+ status: string;
119
+ ad: Record<string, unknown>;
120
+ }>;
121
+ createInstallCampaign(projectId: string, brief: Record<string, unknown>): Promise<{
122
+ campaign: CampaignView;
123
+ scaffold: Record<string, unknown>;
124
+ }>;
125
+ uploadCampaignAsset(projectId: string, filePath: string, campaignId?: string): Promise<Record<string, unknown>>;
126
+ saveInstallCampaign(campaignId: string, plan: Record<string, unknown>): Promise<CampaignView>;
127
+ getCampaign(campaignId: string): Promise<CampaignView>;
128
+ renderCampaign(campaignId: string): Promise<CampaignView>;
129
+ getCampaignPack(campaignId: string): Promise<{
130
+ campaignId: string;
131
+ assetId: string;
132
+ url: string;
133
+ }>;
134
+ recordCampaignResult(campaignId: string, variantId: string, feedback: {
135
+ platform: string;
136
+ verdict: string;
137
+ notes?: string;
138
+ }): Promise<Record<string, unknown>>;
139
+ getRenderJob(jobId: string): Promise<RenderJobStatus>;
140
+ /**
141
+ * Poll a render job until it completes. Throws on failure or timeout.
142
+ * Renders typically take 1-3 minutes on the worker.
143
+ */
144
+ waitForRenderJob(jobId: string, { intervalMs, timeoutMs }?: {
145
+ intervalMs?: number;
146
+ timeoutMs?: number;
147
+ }): Promise<RenderJobStatus>;
97
148
  }
149
+ export type RenderJobStatus = {
150
+ jobId: string;
151
+ status: "queued" | "rendering" | "completed" | "failed";
152
+ format: string;
153
+ progress: number | null;
154
+ url: string | null;
155
+ error: string | null;
156
+ createdAt?: string;
157
+ completedAt?: string | null;
158
+ };
98
159
  //# sourceMappingURL=api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { readFileSync, statSync } from "fs";
2
2
  import { extname } from "path";
3
3
  const MAX_IMAGE_SIZE = 10 * 1024 * 1024; // 10 MB
4
+ const MAX_RECORDING_SIZE = 100 * 1024 * 1024; // 100 MB
4
5
  /** Block requests to private/internal network addresses. */
5
6
  function isPrivateUrl(urlString) {
6
7
  try {
@@ -220,5 +221,165 @@ export class ApiClient {
220
221
  getProjectUrl(projectId) {
221
222
  return `${this.baseUrl}/p/${projectId}`;
222
223
  }
224
+ /** Absolutize an app-relative path (e.g. a render job's /api/images/{id} output). */
225
+ absoluteUrl(path) {
226
+ return path.startsWith("/") ? `${this.baseUrl}${path}` : path;
227
+ }
228
+ /** GET the ad plan: brief slots, angles + voice guidance, per-angle defaults. */
229
+ async planAdVideo(projectId) {
230
+ const res = await fetch(`${this.baseUrl}/api/projects/${projectId}/export/ad`, {
231
+ headers: this.authHeaders,
232
+ });
233
+ if (!res.ok)
234
+ throw await apiError("Failed to plan ad video", res);
235
+ return res.json();
236
+ }
237
+ /** Trigger a server-side ad-video render. Returns the job id + config summary. */
238
+ async createAdVideo(projectId, body) {
239
+ const res = await fetch(`${this.baseUrl}/api/projects/${projectId}/export/ad`, {
240
+ method: "POST",
241
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
242
+ body: JSON.stringify(body),
243
+ });
244
+ if (!res.ok)
245
+ throw await apiError("Failed to create ad video", res);
246
+ return res.json();
247
+ }
248
+ async createInstallCampaign(projectId, brief) {
249
+ const res = await fetch(`${this.baseUrl}/api/projects/${projectId}/campaigns`, {
250
+ method: "POST",
251
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
252
+ body: JSON.stringify(brief),
253
+ });
254
+ if (!res.ok)
255
+ throw await apiError("Failed to create campaign plan", res);
256
+ return res.json();
257
+ }
258
+ async uploadCampaignAsset(projectId, filePath, campaignId) {
259
+ const ext = extname(filePath).slice(1).toLowerCase();
260
+ const types = {
261
+ mp4: "video/mp4",
262
+ mov: "video/quicktime",
263
+ webm: "video/webm",
264
+ png: "image/png",
265
+ jpg: "image/jpeg",
266
+ jpeg: "image/jpeg",
267
+ webp: "image/webp",
268
+ };
269
+ const contentType = types[ext];
270
+ if (!contentType) {
271
+ throw new Error("Unsupported campaign asset. Use MP4, MOV, WebM, PNG, JPEG, or WebP.");
272
+ }
273
+ const file = statSync(filePath);
274
+ const limit = contentType.startsWith("video/") ? MAX_RECORDING_SIZE : MAX_IMAGE_SIZE;
275
+ if (file.size > limit) {
276
+ throw new Error(`Campaign asset exceeds the ${Math.round(limit / 1024 / 1024)}MB limit`);
277
+ }
278
+ const request = await fetch(`${this.baseUrl}/api/projects/${projectId}/creative-assets/uploads`, {
279
+ method: "POST",
280
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
281
+ body: JSON.stringify({
282
+ filename: filePath.split(/[\\/]/).at(-1) ?? `asset.${ext}`,
283
+ contentType,
284
+ sizeBytes: file.size,
285
+ ...(campaignId ? { campaignId } : {}),
286
+ }),
287
+ });
288
+ if (!request.ok)
289
+ throw await apiError("Failed to create campaign upload", request);
290
+ const upload = (await request.json());
291
+ const buffer = readFileSync(filePath);
292
+ const put = await fetch(upload.uploadUrl, {
293
+ method: "PUT",
294
+ headers: {
295
+ ...upload.headers,
296
+ ...(upload.requiresAuth ? this.authHeaders : {}),
297
+ },
298
+ body: new Uint8Array(buffer),
299
+ });
300
+ if (!put.ok)
301
+ throw await apiError("Failed to upload campaign asset", put);
302
+ const finalize = await fetch(this.absoluteUrl(upload.finalizeUrl), {
303
+ method: "POST",
304
+ headers: this.authHeaders,
305
+ });
306
+ if (!finalize.ok)
307
+ throw await apiError("Failed to validate campaign asset", finalize);
308
+ return finalize.json();
309
+ }
310
+ async saveInstallCampaign(campaignId, plan) {
311
+ const res = await fetch(`${this.baseUrl}/api/campaigns/${campaignId}/plan`, {
312
+ method: "PUT",
313
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
314
+ body: JSON.stringify({ plan }),
315
+ });
316
+ if (!res.ok)
317
+ throw await apiError("Failed to save campaign plan", res);
318
+ return res.json();
319
+ }
320
+ async getCampaign(campaignId) {
321
+ const res = await fetch(`${this.baseUrl}/api/campaigns/${campaignId}`, {
322
+ headers: this.authHeaders,
323
+ });
324
+ if (!res.ok)
325
+ throw await apiError("Failed to get campaign", res);
326
+ return res.json();
327
+ }
328
+ async renderCampaign(campaignId) {
329
+ const current = await this.getCampaign(campaignId);
330
+ const operation = current.status === "partial_failure" ? "retry" : "render";
331
+ const res = await fetch(`${this.baseUrl}/api/campaigns/${campaignId}/${operation}`, {
332
+ method: "POST",
333
+ headers: this.authHeaders,
334
+ });
335
+ if (!res.ok)
336
+ throw await apiError("Failed to start campaign render", res);
337
+ return res.json();
338
+ }
339
+ async getCampaignPack(campaignId) {
340
+ const res = await fetch(`${this.baseUrl}/api/campaigns/${campaignId}/export`, {
341
+ headers: this.authHeaders,
342
+ });
343
+ if (!res.ok)
344
+ throw await apiError("Campaign pack is not ready", res);
345
+ return res.json();
346
+ }
347
+ async recordCampaignResult(campaignId, variantId, feedback) {
348
+ const res = await fetch(`${this.baseUrl}/api/campaigns/${campaignId}/variants/${variantId}/feedback`, {
349
+ method: "POST",
350
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
351
+ body: JSON.stringify(feedback),
352
+ });
353
+ if (!res.ok)
354
+ throw await apiError("Failed to record campaign result", res);
355
+ return res.json();
356
+ }
357
+ async getRenderJob(jobId) {
358
+ const res = await fetch(`${this.baseUrl}/api/render-jobs/${jobId}`, {
359
+ headers: this.authHeaders,
360
+ });
361
+ if (!res.ok)
362
+ throw await apiError(`Failed to get render job ${jobId}`, res);
363
+ return res.json();
364
+ }
365
+ /**
366
+ * Poll a render job until it completes. Throws on failure or timeout.
367
+ * Renders typically take 1-3 minutes on the worker.
368
+ */
369
+ async waitForRenderJob(jobId, { intervalMs = 3000, timeoutMs = 600_000 } = {}) {
370
+ const deadline = Date.now() + timeoutMs;
371
+ for (;;) {
372
+ const job = await this.getRenderJob(jobId);
373
+ if (job.status === "completed")
374
+ return job;
375
+ if (job.status === "failed") {
376
+ throw new Error(`Render job ${jobId} failed: ${job.error ?? "unknown error"}`);
377
+ }
378
+ if (Date.now() >= deadline) {
379
+ throw new Error(`Render job ${jobId} did not finish within ${Math.round(timeoutMs / 1000)}s (status: ${job.status}). Check it later in the web editor or via the render job API.`);
380
+ }
381
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
382
+ }
383
+ }
223
384
  }
224
385
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -22,6 +22,8 @@ import { registerFeedbackTools } from "./tools/feedback.js";
22
22
  import { registerQualityTools } from "./tools/quality.js";
23
23
  import { registerWorkflowTools } from "./tools/workflow.js";
24
24
  import { registerComponentTools } from "./tools/components.js";
25
+ import { registerAdTools } from "./tools/ad.js";
26
+ import { registerCampaignTools } from "./tools/campaign.js";
25
27
  const apiUrl = process.env.SHIPSHOTS_API_URL;
26
28
  if (!apiUrl) {
27
29
  console.error("Error: SHIPSHOTS_API_URL environment variable is required.\n" +
@@ -52,6 +54,8 @@ registerLayoutTools(server, api);
52
54
  registerFeedbackTools(server, api);
53
55
  registerWorkflowTools(server, api);
54
56
  registerComponentTools(server, api);
57
+ registerAdTools(server, api);
58
+ registerCampaignTools(server, api);
55
59
  const transport = new StdioServerTransport();
56
60
  await server.connect(transport);
57
61
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ApiClient } from "../api-client.js";
3
+ /**
4
+ * Ad-video tools: a plan/create pair. The app owns structure (screen
5
+ * selection, brand, pacing) and the format owns the craft; the agent's job is
6
+ * the native-voice captions. plan_ad_video hands the agent everything needed
7
+ * to write them; create_ad_video triggers the server-side render and polls to
8
+ * a download URL.
9
+ */
10
+ export declare function registerAdTools(server: McpServer, api: ApiClient): void;
11
+ //# sourceMappingURL=ad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ad.d.ts","sourceRoot":"","sources":["../../src/tools/ad.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CA4FvE"}
@@ -0,0 +1,82 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Ad-video tools: a plan/create pair. The app owns structure (screen
4
+ * selection, brand, pacing) and the format owns the craft; the agent's job is
5
+ * the native-voice captions. plan_ad_video hands the agent everything needed
6
+ * to write them; create_ad_video triggers the server-side render and polls to
7
+ * a download URL.
8
+ */
9
+ export function registerAdTools(server, api) {
10
+ server.tool("plan_ad_video", `Plan a vertical (9:16, 1080x1920) hook-first video ad for Meta/TikTok from a project. Returns the ad brief: per-screen slots (role, screenshot availability, store copy), the available angles with their voice guidance, and each angle's default captions.
11
+
12
+ The defaults are the project's store copy — the WRONG register for a feed ad. Pick an angle, write native-voice captions following its voiceGuidance and hookGuidance, then call create_ad_video with your captions. Screens without device screenshots cannot be used as hook or beats.`, {
13
+ project_id: z.string().describe("Project ID"),
14
+ }, async ({ project_id }) => {
15
+ const plan = await api.planAdVideo(project_id);
16
+ return {
17
+ content: [
18
+ {
19
+ type: "text",
20
+ text: JSON.stringify(plan, null, 2),
21
+ },
22
+ ],
23
+ };
24
+ });
25
+ server.tool("create_ad_video", `Render a vertical (9:16, 1080x1920, ~30fps) hook-first video ad on the render service and return a download URL. Call plan_ad_video first and write native-voice captions per the chosen angle's voice guidance — omitted captions fall back to store copy, which reads as an ad and performs worse in feeds.
26
+
27
+ Pro plan required. Renders take roughly 1-3 minutes; this call waits for completion. One render at a time per account — a 429 means another render is in progress. Keep beats at or under the angle's maxBeats. The returned URL requires your bearer token to download.`, {
28
+ project_id: z.string().describe("Project ID"),
29
+ angle: z.string().describe("Ad angle id from plan_ad_video (e.g. mascot-led, feature-demo, relatable-habit)"),
30
+ hook_text: z.string().optional().describe("Native-voice hook line (supports \\n line breaks)"),
31
+ hook_screen: z.string().optional().describe("Screen id or name to use for the hook visual (defaults per angle)"),
32
+ beats: z
33
+ .array(z.object({
34
+ screen: z.string().describe("Screen id or name"),
35
+ caption: z.string().optional().describe("Native-voice caption for this beat"),
36
+ caption_position: z.enum(["top", "center", "bottom"]).optional(),
37
+ }))
38
+ .optional()
39
+ .describe("Ordered beat selection with captions. When present this defines which screens appear and in what order."),
40
+ cta_headline: z.string().optional().describe("Closing card headline, e.g. the app tagline"),
41
+ cta_sub: z.string().optional().describe("Closing card button text (default: 'Free on the App Store')"),
42
+ }, async ({ project_id, angle, hook_text, hook_screen, beats, cta_headline, cta_sub }) => {
43
+ const overrides = {};
44
+ if (hook_text !== undefined || hook_screen !== undefined) {
45
+ overrides.hook = {
46
+ ...(hook_text !== undefined ? { text: hook_text } : {}),
47
+ ...(hook_screen !== undefined ? { screen: hook_screen } : {}),
48
+ };
49
+ }
50
+ if (beats !== undefined) {
51
+ overrides.beats = beats.map((b) => ({
52
+ screen: b.screen,
53
+ ...(b.caption !== undefined ? { caption: b.caption } : {}),
54
+ ...(b.caption_position !== undefined ? { captionPosition: b.caption_position } : {}),
55
+ }));
56
+ }
57
+ if (cta_headline !== undefined || cta_sub !== undefined) {
58
+ overrides.cta = {
59
+ ...(cta_headline !== undefined ? { headline: cta_headline } : {}),
60
+ ...(cta_sub !== undefined ? { sub: cta_sub } : {}),
61
+ };
62
+ }
63
+ const created = await api.createAdVideo(project_id, { angle, overrides });
64
+ const job = await api.waitForRenderJob(created.jobId);
65
+ const url = job.url ? api.absoluteUrl(job.url) : null;
66
+ return {
67
+ content: [
68
+ {
69
+ type: "text",
70
+ text: JSON.stringify({
71
+ jobId: created.jobId,
72
+ status: job.status,
73
+ url,
74
+ ad: created.ad,
75
+ note: "Downloading the MP4 requires your API token: curl -H 'Authorization: Bearer $SHIPSHOTS_API_TOKEN' -o ad.mp4 <url>",
76
+ }, null, 2),
77
+ },
78
+ ],
79
+ };
80
+ });
81
+ }
82
+ //# sourceMappingURL=ad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ad.js","sourceRoot":"","sources":["../../src/tools/ad.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ApiClient } from "../api-client.js";
3
+ export declare function registerCampaignTools(server: McpServer, api: ApiClient): void;
4
+ //# sourceMappingURL=campaign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../src/tools/campaign.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6ClD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAsJ7E"}
@@ -0,0 +1,153 @@
1
+ import { z } from "zod";
2
+ const hexColor = z.string().regex(/^#[0-9a-fA-F]{6}$/);
3
+ const mediaRef = z.object({
4
+ asset_id: z.string().describe("Ready campaign recording asset id"),
5
+ trim_start_ms: z.number().int().min(0).optional(),
6
+ trim_end_ms: z.number().int().positive().optional(),
7
+ overlay_asset_id: z.string().optional().describe("Optional ready mascot/brand image asset id"),
8
+ });
9
+ const variant = z.object({
10
+ concept: z.enum(["mascot-led", "feature-demo", "relatable-habit"]),
11
+ locale: z.enum(["en", "th"]),
12
+ hook: z.object({
13
+ id: z.string().regex(/^[a-z0-9][a-z0-9-]{0,39}$/).describe("Stable lowercase slug, e.g. hook-a"),
14
+ text: z.string(),
15
+ narration: z.string(),
16
+ media: mediaRef,
17
+ }),
18
+ beats: z.array(z.object({
19
+ caption: z.string(),
20
+ narration: z.string(),
21
+ media: mediaRef,
22
+ })).min(2).max(3),
23
+ cta: z.object({
24
+ headline: z.string(),
25
+ button: z.string(),
26
+ narration: z.string(),
27
+ }),
28
+ copy: z.object({
29
+ tiktok_caption: z.string(),
30
+ meta_primary_text: z.string(),
31
+ meta_headline: z.string(),
32
+ meta_call_to_action: z.enum(["INSTALL_MOBILE_APP", "DOWNLOAD"]).optional(),
33
+ }),
34
+ });
35
+ function mapMedia(input) {
36
+ return {
37
+ assetId: input.asset_id,
38
+ trimStartMs: input.trim_start_ms ?? 0,
39
+ ...(input.trim_end_ms !== undefined ? { trimEndMs: input.trim_end_ms } : {}),
40
+ ...(input.overlay_asset_id ? { overlayAssetId: input.overlay_asset_id } : {}),
41
+ };
42
+ }
43
+ export function registerCampaignTools(server, api) {
44
+ server.tool("plan_install_campaign", `Create a generic paid-install campaign draft and return its fixed 3 concepts × 2 hooks × English/Thai scaffold plus required media. Upload the requested portrait recordings next, then author native localized variants and call save_install_campaign. This does not render or spend money.`, {
45
+ project_id: z.string(),
46
+ name: z.string().describe("Campaign name"),
47
+ app_name: z.string(),
48
+ audience: z.string(),
49
+ promise: z.string().describe("Single core promise, e.g. Hydration that sticks"),
50
+ primary_color: hexColor,
51
+ secondary_color: hexColor,
52
+ text_color: hexColor.optional(),
53
+ accent_color: hexColor.optional(),
54
+ icon_asset_id: z.string().optional(),
55
+ cta_button: z.string().optional(),
56
+ }, async (input) => {
57
+ const result = await api.createInstallCampaign(input.project_id, {
58
+ name: input.name,
59
+ objective: "app_install",
60
+ appName: input.app_name,
61
+ audience: input.audience,
62
+ promise: input.promise,
63
+ platforms: ["tiktok", "meta_reels"],
64
+ locales: ["en", "th"],
65
+ brand: {
66
+ primaryColor: input.primary_color,
67
+ secondaryColor: input.secondary_color,
68
+ textColor: input.text_color ?? "#ffffff",
69
+ ...(input.accent_color ? { accentColor: input.accent_color } : {}),
70
+ ...(input.icon_asset_id ? { iconAssetId: input.icon_asset_id } : {}),
71
+ },
72
+ ctaButton: input.cta_button ?? "Download now",
73
+ });
74
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
75
+ });
76
+ server.tool("upload_campaign_asset", `Upload and validate one local portrait screen recording or brand image for a campaign. Recordings must be MP4/MOV/WebM, portrait, at least 720px wide, and 2-8 seconds for use in a saved plan. Returns the asset id to reference in save_install_campaign.`, {
77
+ project_id: z.string(),
78
+ file_path: z.string().describe("Absolute local file path"),
79
+ campaign_id: z.string().optional(),
80
+ }, async ({ project_id, file_path, campaign_id }) => {
81
+ const result = await api.uploadCampaignAsset(project_id, file_path, campaign_id);
82
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
83
+ });
84
+ server.tool("save_install_campaign", `Validate and save the complete campaign plan. Supply exactly 12 variants: three concepts, two stable hook ids per concept, and both en/th locales for every hook. Within each concept+locale, make the two hooks materially different while keeping beats and CTA identical so the comparison is controlled. Copy must be authored naturally in each language. Every hook and beat must use a validated portrait recording.`, {
85
+ campaign_id: z.string(),
86
+ variants: z.array(variant).length(12),
87
+ }, async ({ campaign_id, variants }) => {
88
+ const plan = {
89
+ version: 1,
90
+ variants: variants.map((item) => ({
91
+ concept: item.concept,
92
+ locale: item.locale,
93
+ hook: {
94
+ id: item.hook.id,
95
+ text: item.hook.text,
96
+ narration: item.hook.narration,
97
+ media: mapMedia(item.hook.media),
98
+ },
99
+ beats: item.beats.map((beat) => ({
100
+ caption: beat.caption,
101
+ narration: beat.narration,
102
+ media: mapMedia(beat.media),
103
+ })),
104
+ cta: item.cta,
105
+ copy: {
106
+ tiktokCaption: item.copy.tiktok_caption,
107
+ metaPrimaryText: item.copy.meta_primary_text,
108
+ metaHeadline: item.copy.meta_headline,
109
+ metaCallToAction: item.copy.meta_call_to_action ?? "INSTALL_MOBILE_APP",
110
+ },
111
+ })),
112
+ };
113
+ const result = await api.saveInstallCampaign(campaign_id, plan);
114
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
115
+ });
116
+ server.tool("render_campaign_pack", `Start asynchronous generation of a saved install campaign. The campaign produces 12 narrated 9:16 videos plus 24 dedicated posters and a ZIP. If the campaign has partial failures, this retries only failed variants. Use get_campaign to poll; this call does not wait for the full render.`, { campaign_id: z.string() }, async ({ campaign_id }) => {
117
+ const result = await api.renderCampaign(campaign_id);
118
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
119
+ });
120
+ server.tool("get_campaign", `Get campaign progress, per-variant errors and output URLs. Poll this after render_campaign_pack until status is completed or partial_failure.`, { campaign_id: z.string() }, async ({ campaign_id }) => {
121
+ const result = await api.getCampaign(campaign_id);
122
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
123
+ });
124
+ server.tool("get_campaign_pack", `Return the completed campaign ZIP URL. The URL is private and must be downloaded with the configured Shipshots bearer token.`, { campaign_id: z.string() }, async ({ campaign_id }) => {
125
+ const result = await api.getCampaignPack(campaign_id);
126
+ const url = api.absoluteUrl(result.url);
127
+ return {
128
+ content: [{
129
+ type: "text",
130
+ text: JSON.stringify({
131
+ ...result,
132
+ url,
133
+ note: "curl -H 'Authorization: Bearer $SHIPSHOTS_API_TOKEN' -o campaign.zip <url>",
134
+ }, null, 2),
135
+ }],
136
+ };
137
+ });
138
+ server.tool("record_campaign_result", `Manually mark a rendered variant as a winner, loser, or unrated for TikTok or Meta Reels after evaluating it externally.`, {
139
+ campaign_id: z.string(),
140
+ variant_id: z.string(),
141
+ platform: z.enum(["tiktok", "meta_reels"]),
142
+ verdict: z.enum(["winner", "loser", "unrated"]),
143
+ notes: z.string().max(2000).optional(),
144
+ }, async ({ campaign_id, variant_id, platform, verdict, notes }) => {
145
+ const result = await api.recordCampaignResult(campaign_id, variant_id, {
146
+ platform,
147
+ verdict,
148
+ ...(notes ? { notes } : {}),
149
+ });
150
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
151
+ });
152
+ }
153
+ //# sourceMappingURL=campaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../src/tools/campaign.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.8.0";
1
+ export declare const VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.8.0";
1
+ export const VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "shipshots-mcp",
3
- "version": "0.8.0",
4
- "description": "MCP server for Shipshots — create App Store & Play Store screenshots programmatically via Claude or any MCP client",
3
+ "version": "0.10.0",
4
+ "description": "MCP server for Shipshots — create app store assets, preview videos, and paid-social campaign creative with your AI assistant",
5
5
  "mcpName": "io.github.gurkang/shipshots",
6
6
  "type": "module",
7
7
  "license": "MIT",
@@ -28,7 +28,11 @@
28
28
  "windsurf",
29
29
  "gemini",
30
30
  "app-store-screenshots",
31
- "play-store-screenshots"
31
+ "play-store-screenshots",
32
+ "ad-creative",
33
+ "tiktok-ads",
34
+ "meta-ads",
35
+ "app-marketing-video"
32
36
  ],
33
37
  "bin": {
34
38
  "shipshots-mcp": "dist/index.js"