shipshots-mcp 0.6.0 → 0.7.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.
Files changed (48) hide show
  1. package/README.md +227 -117
  2. package/dist/api-client.d.ts +58 -13
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +25 -5
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/image-resolver.d.ts +4 -0
  7. package/dist/image-resolver.d.ts.map +1 -0
  8. package/dist/image-resolver.js +12 -0
  9. package/dist/image-resolver.js.map +1 -0
  10. package/dist/index.js +6 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/mode-rules.d.ts +21 -0
  13. package/dist/mode-rules.d.ts.map +1 -0
  14. package/dist/mode-rules.js +48 -0
  15. package/dist/mode-rules.js.map +1 -0
  16. package/dist/tools/batch.d.ts.map +1 -1
  17. package/dist/tools/batch.js +16 -2
  18. package/dist/tools/batch.js.map +1 -1
  19. package/dist/tools/components.d.ts +4 -0
  20. package/dist/tools/components.d.ts.map +1 -0
  21. package/dist/tools/components.js +215 -0
  22. package/dist/tools/components.js.map +1 -0
  23. package/dist/tools/export.d.ts.map +1 -1
  24. package/dist/tools/export.js +159 -5
  25. package/dist/tools/export.js.map +1 -1
  26. package/dist/tools/layers.d.ts.map +1 -1
  27. package/dist/tools/layers.js +1 -7
  28. package/dist/tools/layers.js.map +1 -1
  29. package/dist/tools/project.d.ts.map +1 -1
  30. package/dist/tools/project.js +29 -3
  31. package/dist/tools/project.js.map +1 -1
  32. package/dist/tools/quality.d.ts +4 -0
  33. package/dist/tools/quality.d.ts.map +1 -0
  34. package/dist/tools/quality.js +80 -0
  35. package/dist/tools/quality.js.map +1 -0
  36. package/dist/tools/workflow.d.ts +4 -0
  37. package/dist/tools/workflow.d.ts.map +1 -0
  38. package/dist/tools/workflow.js +466 -0
  39. package/dist/tools/workflow.js.map +1 -0
  40. package/dist/types.d.ts +21 -0
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/validation.d.ts +1 -0
  43. package/dist/validation.d.ts.map +1 -1
  44. package/dist/validation.js +35 -16
  45. package/dist/validation.js.map +1 -1
  46. package/dist/version.d.ts +1 -1
  47. package/dist/version.js +1 -1
  48. package/package.json +1 -1
package/README.md CHANGED
@@ -1,12 +1,8 @@
1
1
  # Shipshots MCP Server
2
2
 
3
- MCP server that lets Claude (or any MCP client) create App Store & Play Store screenshots programmatically via the [Shipshots](https://shipshots.app) API.
3
+ `shipshots-mcp` lets MCP-compatible agents create and improve Shipshots projects through the Shipshots API.
4
4
 
5
- ## What is Shipshots?
6
-
7
- [Shipshots](https://shipshots.app) is an App Store and Play Store screenshot builder for developers. Instead of hiring a designer or wrestling with Figma templates, you design screenshots in a visual canvas editor or let your AI coding assistant handle it entirely via MCP. Your assistant already knows your app from the codebase -- the features, the copy, the colors -- so it creates store-ready visuals that actually match your product.
8
-
9
- **Supported MCP clients:** Claude Code, Claude Desktop, Cursor, Windsurf, Gemini, and any MCP-compatible client.
5
+ Agents can use it to build App Store screenshots, Play Store screenshots, social carousels, paid ads, launch graphics, and preview/export assets while the user keeps final control in the Shipshots web editor.
10
6
 
11
7
  ## Quick Setup
12
8
 
@@ -14,23 +10,31 @@ MCP server that lets Claude (or any MCP client) create App Store & Play Store sc
14
10
  npx shipshots-mcp init --token sb_your_token_here
15
11
  ```
16
12
 
17
- This auto-configures your MCP client. It supports Claude Code, Claude Desktop, Cursor, and more.
13
+ Get a token from Shipshots at:
14
+
15
+ ```text
16
+ Dashboard -> Setup MCP
17
+ ```
18
+
19
+ or:
18
20
 
19
- Get your token at [shipshots.app/dashboard/setup](https://shipshots.app/dashboard/setup).
21
+ ```text
22
+ Dashboard -> Settings -> MCP Tokens
23
+ ```
20
24
 
21
- ### Options
25
+ ### Setup Options
22
26
 
23
27
  ```bash
24
- npx shipshots-mcp init --token sb_... --client claude-code # .mcp.json in current dir
25
- npx shipshots-mcp init --token sb_... --client claude-desktop # Claude Desktop config
26
- npx shipshots-mcp init --token sb_... --client cursor # .cursor/mcp.json
27
- npx shipshots-mcp init --token sb_... --client stdout # Print config to terminal
28
- npx shipshots-mcp init --token sb_... --url http://localhost:3000 # Custom API URL
28
+ npx shipshots-mcp init --token sb_... --client claude-code
29
+ npx shipshots-mcp init --token sb_... --client claude-desktop
30
+ npx shipshots-mcp init --token sb_... --client cursor
31
+ npx shipshots-mcp init --token sb_... --client stdout
32
+ npx shipshots-mcp init --token sb_... --url http://localhost:3000
29
33
  ```
30
34
 
31
- ## Manual Setup
35
+ Use `--url http://localhost:3000` for local development.
32
36
 
33
- If you prefer to configure manually, add this to your MCP client's config:
37
+ ## Manual MCP Config
34
38
 
35
39
  ```json
36
40
  {
@@ -47,142 +51,248 @@ If you prefer to configure manually, add this to your MCP client's config:
47
51
  }
48
52
  ```
49
53
 
50
- **Config file locations:**
51
- - Claude Code: `.mcp.json` in your project
52
- - Claude Desktop (macOS): `~/Library/Application Support/Claude/claude_desktop_config.json`
53
- - Claude Desktop (Windows): `%APPDATA%/Claude/claude_desktop_config.json`
54
- - Cursor: `.cursor/mcp.json` in your project
54
+ Config locations vary by client:
55
55
 
56
- ## Getting Your API Token
56
+ - Claude Code: `.mcp.json` in the current project
57
+ - Claude Desktop macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
58
+ - Claude Desktop Windows: `%APPDATA%/Claude/claude_desktop_config.json`
59
+ - Cursor: `.cursor/mcp.json`
57
60
 
58
- 1. Sign in at [shipshots.app](https://shipshots.app)
59
- 2. Go to **Dashboard > Setup MCP** (or **Settings > MCP Tokens**)
60
- 3. Click **Create Token** and copy the `sb_`-prefixed token
61
+ ## Local Development
61
62
 
62
- ## Features
63
+ Start the app and render worker from the repository root:
63
64
 
64
- - **30+ tools** for creating and managing screenshots programmatically
65
- - **Semantic positioning** -- place layers using natural descriptions (`position: "top-center"`, `size: "large"`) instead of pixel coordinates
66
- - **Layout presets** -- apply centered, diagonal, mirrored-diagonal, side-by-side, or text-hero layouts in one call
67
- - **Layout validation** -- automatic checks for clipping, overlap, contrast, and spacing after every change, with actionable suggestions
68
- - **Rich text** -- bold, italic, and colored text via markup syntax (`**bold**`, `*italic*`, `{#FF0000}red{/}`)
69
- - **Device frames** -- iPhone, iPad, Android phone/tablet, and MacBook mockups with configurable status bar, bottom fade, and screenshot upload
70
- - **Connected screen strips** -- link screens into panoramic layouts where layers can span across screen boundaries
71
- - **Background options** -- solid colors, gradients, background images, and noise textures
72
- - **Video config** -- set animation presets (fade-rise, parallax, zoom-pop, etc.), duration, and FPS
73
- - **Batch operations** -- add, update, or remove multiple layers in a single call
74
- - **Visual feedback loop** -- render screen previews to see exactly what your design looks like, then iterate
65
+ ```bash
66
+ make local
67
+ ```
68
+
69
+ Then point the MCP server at the local app:
70
+
71
+ ```json
72
+ {
73
+ "mcpServers": {
74
+ "shipshots_local": {
75
+ "command": "node",
76
+ "args": ["/absolute/path/to/screenshotbuilder/packages/mcp/dist/index.js"],
77
+ "env": {
78
+ "SHIPSHOTS_API_URL": "http://localhost:3000",
79
+ "SHIPSHOTS_API_TOKEN": "sb_local_user_token"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ Build the MCP package after code changes:
87
+
88
+ ```bash
89
+ cd packages/mcp
90
+ pnpm run build
91
+ pnpm test
92
+ ```
93
+
94
+ When both local and production MCP servers are configured, ask the agent to call `start_design_workflow` or `get_server_info` first. The response identifies whether the server writes to local development, production, or a custom API.
95
+
96
+ ## Recommended Agent Workflow
97
+
98
+ For new marketing work, agents should start with the workflow tools rather than jumping directly into primitive layer calls:
99
+
100
+ 1. `start_design_workflow`
101
+ 2. `plan_marketing_campaign`
102
+ 3. `suggest_creative_directions`
103
+ 4. `create_marketing_project` or `set_marketing_mode`
104
+ 5. Layer/component creation and screenshot upload
105
+ 6. `run_quality_pass`
106
+ 7. `audit_marketing_quality`
107
+ 8. Thumbnail or screen preview
108
+ 9. Export or hand off the editor URL
109
+
110
+ This keeps the asset mode-aware. A social carousel, paid ad, and App Store screenshot set should not be judged by the same panel-count and CTA rules.
111
+
112
+ ## Marketing Modes
113
+
114
+ | Mode | Panel range | Device required | Notes |
115
+ | --- | ---: | --- | --- |
116
+ | `app_store` | 5-10 | Yes | App Store screenshot arc |
117
+ | `play_store` | 2-8 | Yes | Google Play screenshot arc |
118
+ | `social_carousel` | 3-10 | No | Swipeable social/LinkedIn/Instagram carousel |
119
+ | `paid_ad` | 1-3 | No | Claim, proof, CTA |
120
+ | `launch_graphic` | 1-5 | No | Product launch or announcement graphics |
121
+
122
+ Campaign metadata is stored on `project.campaign`. Screen roles are stored on `screen.marketingRole`.
123
+
124
+ ## Tool Groups
125
+
126
+ ### Workflow and Marketing
127
+
128
+ - `start_design_workflow` - returns server target, supported modes, guardrails, and current project context
129
+ - `set_marketing_mode` - persists campaign metadata on an existing project
130
+ - `plan_marketing_campaign` - suggests panel roles and copy structure
131
+ - `suggest_creative_directions` - returns creative directions such as safe store, bold carousel, or premium editorial
132
+ - `create_marketing_project` - creates a generic mode-aware project with starter screens and optional screenshots
133
+ - `audit_marketing_quality` - runs mode-aware marketing review plus layout quality context
134
+
135
+ ### Project Management
136
+
137
+ - `create_project`
138
+ - `get_project`
139
+ - `delete_project`
140
+ - `list_projects`
141
+ - `list_templates`
142
+ - `get_project_url`
143
+ - `get_server_info`
144
+
145
+ ### Screen Management
146
+
147
+ - `add_screen`
148
+ - `update_screen`
149
+ - `remove_screen`
150
+ - `duplicate_screen`
151
+ - `connect_screens`
152
+ - `reorder_screens`
153
+
154
+ ### Layer Management
155
+
156
+ - `add_text_layer`
157
+ - `add_device_frame_layer`
158
+ - `add_image_layer`
159
+ - `add_shape_layer`
160
+ - `add_badge_layer`
161
+ - `add_arrow_layer`
162
+ - `update_layer`
163
+ - `remove_layer`
164
+ - `duplicate_layer`
165
+ - `move_layer`
166
+ - `reorder_layers`
167
+ - `align_layer`
168
+ - `align_layers`
169
+ - `upload_screenshot`
170
+
171
+ ### Grouped Marketing Components
172
+
173
+ These tools create flat shape+text layers with shared component metadata:
174
+
175
+ - `add_button_component`
176
+ - `add_pill_component`
177
+ - `add_callout_component`
178
+ - `add_proof_chip_component`
179
+ - `add_rating_component`
180
+ - `add_feature_tag_component`
181
+ - `update_component`
182
+ - `remove_component`
183
+
184
+ The validator understands same-component overlap, so text sitting on a button or pill is not treated like accidental overlap.
185
+
186
+ ### Layout, Quality, and Validation
187
+
188
+ - `apply_layout`
189
+ - `validate_screen`
190
+ - `run_quality_pass`
191
+
192
+ `run_quality_pass` has two modes:
193
+
194
+ - Check mode reports issues without changing the project.
195
+ - Fix mode applies deterministic geometry and contrast fixes only.
196
+
197
+ The quality pass checks clipping, text/device overlap, poor spacing, low contrast, and connected-strip bounds. It understands intentional carousel bleed.
198
+
199
+ ### Batch Operations
200
+
201
+ - `batch_add_layers`
202
+ - `batch_update_layers`
203
+ - `batch_remove_layers`
204
+
205
+ ### Video
206
+
207
+ - `update_video_config`
208
+ - `list_video_presets`
209
+
210
+ ### Export and Preview
211
+
212
+ - `get_screen_preview`
213
+ - `get_strip_preview`
214
+ - `get_thumbnail_preview`
215
+ - `get_contact_sheet_preview`
216
+ - `export_screenshot`
217
+ - `export_marketing_bundle`
218
+
219
+ Preview tools accept a `scale` where supported. Thumbnail-scale previews are useful for iteration because store screenshots and social carousels often fail at small sizes before they fail at full size.
220
+
221
+ `get_contact_sheet_preview` returns ordered thumbnail image outputs through MCP. It is not currently a single stitched image.
222
+
223
+ `export_marketing_bundle` returns MCP image outputs with suggested filenames. It is not currently a ZIP download from MCP.
224
+
225
+ ### Design Data
226
+
227
+ - `list_fonts`
228
+ - `list_palettes`
229
+ - `list_gradients`
75
230
 
76
231
  ## Supported Export Sizes
77
232
 
78
- ### App Store (iOS)
233
+ ### App Store
79
234
 
80
235
  | Display | Size |
81
- |---------|------|
236
+ | --- | --- |
82
237
  | iPhone 6.9" | 1260 x 2736 |
83
238
  | iPhone 6.5" | 1242 x 2688 |
84
239
  | iPhone 6.3" | 1206 x 2622 |
85
240
  | iPhone 6.1" | 1170 x 2532 |
86
241
  | iPhone 5.5" | 1242 x 2208 |
87
242
  | iPad 13" | 2064 x 2752 |
88
- | iPad 12.9" (Gen 2) | 2048 x 2732 |
243
+ | iPad 12.9" | 2048 x 2732 |
89
244
  | iPad 11" | 1668 x 2388 |
90
245
 
91
- ### Google Play Store (Android)
246
+ ### Google Play
92
247
 
93
248
  | Display | Size |
94
- |---------|------|
249
+ | --- | --- |
95
250
  | Android Phone | 1080 x 1920 |
96
251
  | Android Pixel | 1080 x 2340 |
97
252
  | Android Galaxy | 1440 x 3200 |
98
253
  | Android 7" Tablet | 1200 x 1920 |
99
254
 
100
- Design once on the canvas (1260 x 2736), export all sizes from a single project.
101
-
102
- ## Available Tools
103
-
104
- ### Project Management
105
- - **create_project** -- Create a new project (optionally from a template)
106
- - **get_project** -- Fetch full project data
107
- - **delete_project** -- Delete a project
108
- - **list_projects** -- List all projects
109
- - **list_templates** -- List available template presets
110
- - **get_project_url** -- Get the editor URL for a project
111
-
112
- ### Screen Management
113
- - **add_screen** -- Add a new screen to a project
114
- - **update_screen** -- Update screen background, name, dimensions
115
- - **remove_screen** -- Remove a screen
116
- - **duplicate_screen** -- Duplicate a screen with all layers
117
- - **connect_screens** -- Link screens into a panoramic strip
118
- - **reorder_screens** -- Change screen order
119
-
120
- ### Layer Management
121
- - **add_text_layer** -- Add styled text with optional rich text markup
122
- - **add_device_frame_layer** -- Add iPhone/Android/iPad/MacBook mockup
123
- - **add_image_layer** -- Add an image from a URL or local file path
124
- - **add_shape_layer** -- Add rectangle, circle, or rounded rectangle
125
- - **add_badge_layer** -- Add a badge/pill element
126
- - **add_arrow_layer** -- Add an arrow or connector
127
- - **update_layer** -- Update any layer property
128
- - **remove_layer** -- Remove a layer
129
- - **duplicate_layer** -- Duplicate a layer
130
- - **move_layer** -- Move a layer to a different screen
131
- - **reorder_layers** -- Change layer z-order
132
- - **align_layer** -- Align a single layer (center, edges, etc.)
133
- - **align_layers** -- Align multiple layers relative to each other
134
- - **upload_screenshot** -- Upload a screenshot into a device frame
135
-
136
- ### Layout & Validation
137
- - **apply_layout** -- Reposition layers to a preset layout (centered, diagonal, mirrored-diagonal, side-by-side, text-hero)
138
- - **validate_screen** -- Check for clipping, overlap, contrast, and spacing issues
255
+ ### Social and Ads
139
256
 
140
- ### Batch Operations
141
- - **batch_add_layers** -- Add multiple layers at once
142
- - **batch_update_layers** -- Update multiple layers at once
143
- - **batch_remove_layers** -- Remove multiple layers at once
144
-
145
- ### Video
146
- - **update_video_config** -- Set animation preset, duration, fps
147
- - **list_video_presets** -- List available animation presets
148
-
149
- ### Export & Preview
150
- - **get_screen_preview** -- Render a screen preview as base64 JPEG
151
- - **get_strip_preview** -- Render a connected strip preview
152
- - **export_screenshot** -- Export a screen as PNG at a specific size
153
- - **get_server_info** -- Server version and feature info
154
- - **list_fonts** -- List available Google Fonts
155
- - **list_palettes** -- List curated color palettes
156
- - **list_gradients** -- List gradient presets
257
+ | Output | Size |
258
+ | --- | --- |
259
+ | Social Square | 1080 x 1080 |
260
+ | Social Portrait | 1080 x 1350 |
261
+ | Social Story | 1080 x 1920 |
262
+ | Ad Square | 1080 x 1080 |
263
+ | Ad Story | 1080 x 1920 |
157
264
 
158
265
  ## Example Prompts
159
266
 
160
- **Getting started:**
161
- - "Create app store screenshots for my fitness app with 5 screens"
162
- - "Create a project using the 'gradient-showcase' template"
163
- - "Set up screenshots for my React Native weather app"
267
+ ```text
268
+ Use the local Shipshots MCP server only. Call start_design_workflow first and confirm the target is local.
269
+ ```
164
270
 
165
- **Adding content:**
166
- - "Add an iPhone mockup showing the home screen to the first screenshot"
167
- - "Add the text 'Track your progress' at the top of screen 1 in bold white"
168
- - "Upload my app screenshot into the device frame"
271
+ ```text
272
+ Create a 4-panel social carousel for this app. Plan the arc, suggest creative directions, create the project, run the quality pass, audit it as social_carousel, and show thumbnail previews.
273
+ ```
169
274
 
170
- **Styling and layout:**
171
- - "Change the background of screen 2 to a blue-to-purple gradient"
172
- - "Apply a centered layout to all screens"
173
- - "Create a panoramic layout connecting screens 1, 2, and 3"
275
+ ```text
276
+ Create an App Store screenshot set from these real screenshots. Use app_store mode, make a 5-panel hook/feature/proof/CTA arc, run quality fixes only if deterministic, and report remaining issues.
277
+ ```
174
278
 
175
- **Validation and export:**
176
- - "Validate the layout of screen 1 and fix any issues"
177
- - "Show me a preview of screen 3"
178
- - "Export all screens for iPhone 6.9 and Google Play"
279
+ ```text
280
+ Audit this project as paid_ad, not app_store. Tell me what is weak before changing anything.
281
+ ```
179
282
 
180
283
  ## Environment Variables
181
284
 
182
285
  | Variable | Required | Description |
183
- |----------|----------|-------------|
184
- | `SHIPSHOTS_API_URL` | Yes | Shipshots instance URL (e.g., `https://shipshots.app`) |
185
- | `SHIPSHOTS_API_TOKEN` | Yes | API token from Dashboard > Settings > MCP Tokens |
286
+ | --- | --- | --- |
287
+ | `SHIPSHOTS_API_URL` | Yes | Shipshots instance URL, for example `https://shipshots.app` or `http://localhost:3000` |
288
+ | `SHIPSHOTS_API_TOKEN` | Yes | User API token from the dashboard |
289
+
290
+ ## Notes and Limits
291
+
292
+ - Free accounts are limited by the app's plan rules. Pro removes project and preview limits.
293
+ - Real app screenshots are still required for final App Store-grade output.
294
+ - The generic campaign workflow intentionally avoids hyper-specific app-vertical templates.
295
+ - Preview rendering depends on the app and render worker being reachable from the configured API.
186
296
 
187
297
  ## License
188
298
 
@@ -1,4 +1,49 @@
1
- import type { CanvasProject } from "./types.js";
1
+ import type { CanvasProject, LocaleStrategy, MarketingMode } from "./types.js";
2
+ export type ProjectQualityReport = {
3
+ projectId: string;
4
+ mode: "check" | "fix";
5
+ changed: boolean;
6
+ updatedAt?: string;
7
+ summary: {
8
+ status: "ready" | "needs-attention";
9
+ screenCount: number;
10
+ errorCount: number;
11
+ warningCount: number;
12
+ infoCount: number;
13
+ fixCount: number;
14
+ };
15
+ screens: Array<{
16
+ screenId: string;
17
+ screenName: string;
18
+ status: "ready" | "needs-attention";
19
+ warningsBefore: Array<Record<string, unknown>>;
20
+ fixes: Array<Record<string, unknown>>;
21
+ warningsAfter: Array<Record<string, unknown>>;
22
+ }>;
23
+ };
24
+ export type MarketingAuditReport = {
25
+ mode: MarketingMode;
26
+ localeStrategy: LocaleStrategy;
27
+ status: "ready" | "needs-improvement";
28
+ summary: {
29
+ screenCount: number;
30
+ recommendedMin: number;
31
+ recommendedMax: number;
32
+ warningCount: number;
33
+ infoCount: number;
34
+ deviceLayerCount: number;
35
+ mockedDeviceCount: number;
36
+ emptyDeviceCount: number;
37
+ };
38
+ issues: Array<Record<string, unknown>>;
39
+ nextActions: string[];
40
+ };
41
+ export type PreviewResult = {
42
+ base64: string;
43
+ width: number;
44
+ height: number;
45
+ mimeType: string;
46
+ };
2
47
  export declare class ApiClient {
3
48
  private baseUrl;
4
49
  private apiToken?;
@@ -18,18 +63,18 @@ export declare class ApiClient {
18
63
  url: string;
19
64
  }>;
20
65
  private postPreview;
21
- getScreenPreview(projectId: string, screenId: string): Promise<{
22
- base64: string;
23
- width: number;
24
- height: number;
25
- mimeType: string;
26
- }>;
27
- getStripPreview(projectId: string, screenIds: string[]): Promise<{
28
- base64: string;
29
- width: number;
30
- height: number;
31
- mimeType: string;
32
- }>;
66
+ getScreenPreview(projectId: string, screenId: string, scale?: number): Promise<PreviewResult>;
67
+ getStripPreview(projectId: string, screenIds: string[], scale?: number): Promise<PreviewResult>;
68
+ runQualityPass(projectId: string, body: {
69
+ screenIds?: string[];
70
+ mode?: "check" | "fix";
71
+ }): Promise<ProjectQualityReport>;
72
+ runMarketingAudit(projectId: string, body: {
73
+ mode?: MarketingMode;
74
+ targetLocale?: string;
75
+ localeStrategy?: LocaleStrategy;
76
+ appCategory?: string;
77
+ }): Promise<MarketingAuditReport>;
33
78
  listTemplates(): Promise<Array<{
34
79
  id: string;
35
80
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmChD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAS9C,OAAO,KAAK,WAAW,GAKtB;IAEK,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAC7B,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;KACrD,GACA,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IAe5C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9C,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IASV,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;YAmEb,WAAW;IAanB,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzE,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzE,aAAa,IAAI,OAAO,CAC5B,KAAK,CAAC;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CACH;IAgBK,YAAY,IAAI,OAAO,CAC3B,KAAK,CAAC;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,aAAa,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CACH;IAgBK,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAShB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAGzC"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,7 @@ export class ApiClient {
78
78
  if (!res.ok)
79
79
  throw await apiError(`Failed to get project ${id}`, res);
80
80
  const json = (await res.json());
81
- return json.data;
81
+ return { ...json.data, id: json.id, name: json.name };
82
82
  }
83
83
  async updateProject(id, data) {
84
84
  const res = await fetch(`${this.baseUrl}/api/projects/${id}`, {
@@ -160,11 +160,31 @@ export class ApiClient {
160
160
  throw await apiError("Failed to get preview", res);
161
161
  return res.json();
162
162
  }
163
- async getScreenPreview(projectId, screenId) {
164
- return this.postPreview(projectId, { screen_id: screenId });
163
+ async getScreenPreview(projectId, screenId, scale) {
164
+ return this.postPreview(projectId, { screen_id: screenId, ...(scale !== undefined ? { scale } : {}) });
165
165
  }
166
- async getStripPreview(projectId, screenIds) {
167
- return this.postPreview(projectId, { screen_ids: screenIds });
166
+ async getStripPreview(projectId, screenIds, scale) {
167
+ return this.postPreview(projectId, { screen_ids: screenIds, ...(scale !== undefined ? { scale } : {}) });
168
+ }
169
+ async runQualityPass(projectId, body) {
170
+ const res = await fetch(`${this.baseUrl}/api/projects/${projectId}/quality`, {
171
+ method: "POST",
172
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
173
+ body: JSON.stringify(body),
174
+ });
175
+ if (!res.ok)
176
+ throw await apiError("Failed to run quality pass", res);
177
+ return res.json();
178
+ }
179
+ async runMarketingAudit(projectId, body) {
180
+ const res = await fetch(`${this.baseUrl}/api/projects/${projectId}/marketing-audit`, {
181
+ method: "POST",
182
+ headers: { "Content-Type": "application/json", ...this.authHeaders },
183
+ body: JSON.stringify(body),
184
+ });
185
+ if (!res.ok)
186
+ throw await apiError("Failed to run marketing audit", res);
187
+ return res.json();
168
188
  }
169
189
  async listTemplates() {
170
190
  const res = await fetch(`${this.baseUrl}/api/templates`);
@@ -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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"}
@@ -0,0 +1,4 @@
1
+ import type { ApiClient } from "./api-client.js";
2
+ /** Upload local image paths through the API while leaving remote/API URLs untouched. */
3
+ export declare function resolveImageUrl(api: ApiClient, projectId: string, url: string): Promise<string>;
4
+ //# sourceMappingURL=image-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-resolver.d.ts","sourceRoot":"","sources":["../src/image-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wFAAwF;AACxF,wBAAsB,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYrG"}
@@ -0,0 +1,12 @@
1
+ /** Upload local image paths through the API while leaving remote/API URLs untouched. */
2
+ export async function resolveImageUrl(api, projectId, url) {
3
+ if (url === "" ||
4
+ url.startsWith("http://") ||
5
+ url.startsWith("https://") ||
6
+ url.startsWith("/api/images/")) {
7
+ return url;
8
+ }
9
+ const uploaded = await api.uploadImage(projectId, url);
10
+ return uploaded.url;
11
+ }
12
+ //# sourceMappingURL=image-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-resolver.js","sourceRoot":"","sources":["../src/image-resolver.ts"],"names":[],"mappings":"AAEA,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAc,EAAE,SAAiB,EAAE,GAAW;IAClF,IACE,GAAG,KAAK,EAAE;QACV,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1B,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAC9B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,GAAG,CAAC;AACtB,CAAC"}
package/dist/index.js CHANGED
@@ -19,6 +19,9 @@ import { registerBatchTools } from "./tools/batch.js";
19
19
  import { registerValidateTools } from "./tools/validate.js";
20
20
  import { registerLayoutTools } from "./tools/layout.js";
21
21
  import { registerFeedbackTools } from "./tools/feedback.js";
22
+ import { registerQualityTools } from "./tools/quality.js";
23
+ import { registerWorkflowTools } from "./tools/workflow.js";
24
+ import { registerComponentTools } from "./tools/components.js";
22
25
  const apiUrl = process.env.SHIPSHOTS_API_URL;
23
26
  if (!apiUrl) {
24
27
  console.error("Error: SHIPSHOTS_API_URL environment variable is required.\n" +
@@ -44,8 +47,11 @@ registerVideoTools(server, api);
44
47
  registerDuplicateTools(server, api);
45
48
  registerBatchTools(server, api);
46
49
  registerValidateTools(server, api);
50
+ registerQualityTools(server, api);
47
51
  registerLayoutTools(server, api);
48
52
  registerFeedbackTools(server, api);
53
+ registerWorkflowTools(server, api);
54
+ registerComponentTools(server, api);
49
55
  const transport = new StdioServerTransport();
50
56
  await server.connect(transport);
51
57
  //# 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":";AAEA,yCAAyC;AACzC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,OAAO,EAAE,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CACX,8DAA8D;QAC9D,iFAAiF,CAClF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;IACd,OAAO,CAAC,KAAK,CACX,gEAAgE;QAChE,uEAAuE,CACxE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE5C,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEnC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}