@appscreenshotstudio/mcp 0.6.3 → 0.8.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
@@ -187,6 +187,7 @@ Once installed, use `/appscreenshotstudio` in Claude Code or just ask "generate
187
187
  | `iphone-6.3` | iPhone 17 Pro | 1206x2622 | Optional |
188
188
  | `ipad-13` | iPad Pro 13" | 2064x2752 | App Store |
189
189
  | `android-phone` | Android Phone | 1080x2340 | Play Store |
190
+ | `pixel-11-pro` | Google Pixel 11 Pro | 1280x2856 | Play Store |
190
191
  | `android-tablet-10` | Android Tablet 7" | 1200x1920 | Play Store |
191
192
  | `android-tablet-large` | Android Tablet 10" | 1600x2560 | Play Store |
192
193
  | `apple-watch-ultra` | Apple Watch Ultra 2 | 410x502 | App Store |
package/dist/index.js CHANGED
@@ -37,6 +37,7 @@ const DEVICES = [
37
37
  { id: 'iphone-6.3', name: 'iPhone 17 Pro', width: 1206, height: 2622, category: 'iphone', required: false },
38
38
  { id: 'ipad-13', name: 'iPad Pro 13"', width: 2064, height: 2752, category: 'ipad', required: true },
39
39
  { id: 'android-phone', name: 'Android Phone', width: 1080, height: 2340, category: 'android-phone', required: true },
40
+ { id: 'pixel-11-pro', name: 'Google Pixel 11 Pro', width: 1280, height: 2856, category: 'android-phone', required: false },
40
41
  { id: 'android-tablet-10', name: 'Android Tablet 7"', width: 1200, height: 1920, category: 'android-tablet', required: true },
41
42
  { id: 'android-tablet-large', name: 'Android Tablet 10"', width: 1600, height: 2560, category: 'android-tablet', required: false },
42
43
  { id: 'apple-watch-ultra', name: 'Apple Watch Ultra 2', width: 410, height: 502, category: 'apple-watch', required: true },
@@ -160,10 +161,6 @@ function buildDesignMessage(input, hasScreenshotImages = false) {
160
161
  parts.push(`Please include projectMeta with brand colors, mood, appCategory, and a rich globalVisualTheme description.`);
161
162
  return parts.join('\n');
162
163
  }
163
- /** Read local image files into the chat API's images payload. Same file
164
- * handling as upload-screenshots; kind rides through to server-side
165
- * placement (screenshots fill the generated device frames, mascots get
166
- * placed decoratively around the phones). */
167
164
  function readImagesForChat(images) {
168
165
  const payload = [];
169
166
  const errors = [];
@@ -189,10 +186,10 @@ function readImagesForChat(images) {
189
186
  /** Shared images param for generate-screenshots and edit-screenshots. */
190
187
  const chatImagesSchema = z.array(z.object({
191
188
  file_path: z.string().describe('Absolute path to an image file on the local filesystem (PNG, JPG, or WEBP)'),
192
- kind: z.enum(['screenshot', 'mascot']).default('screenshot')
193
- .describe("'screenshot' = real app UI, automatically placed inside the generated device frames (in attachment order). 'mascot' = the app's character/mascot, placed decoratively around the phones (peeking from behind the hook card's phone, beside or in a corner on the closing card). Use a transparent PNG for mascots."),
189
+ kind: z.enum(['screenshot', 'mascot', 'reference']).default('screenshot')
190
+ .describe("'screenshot' = real app UI, automatically placed inside the generated device frames (in attachment order). 'mascot' = the app's character/mascot, placed decoratively around the phones (peeking from behind the hook card's phone, beside or in a corner on the closing card); use a transparent PNG. 'reference' = a look to match rather than content: a competitor's App Store listing, a design you want the style of, any image that already shows a phone with a headline above it. A reference is read for taste and is NEVER placed inside a frame, which is the point: wrapping a finished marketing card in a device frame puts a phone inside a phone."),
194
191
  })).max(5).optional()
195
- .describe('Images to attach to this generation. App screenshots land inside the device frames automatically; a mascot gets placed around the phones. Both survive later edits and regenerations.');
192
+ .describe('Images to attach to this generation. App screenshots land inside the device frames automatically; a mascot gets placed around the phones; a reference only informs the design. All survive later edits and regenerations.');
196
193
  // ─── MCP Server ─────────────────────────────────────────────────────────────────
197
194
  const server = new McpServer({
198
195
  name: 'appscreenshotstudio',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appscreenshotstudio/mcp",
3
- "version": "0.6.3",
3
+ "version": "0.8.0",
4
4
  "mcpName": "com.appscreenshotstudio/mcp",
5
5
  "description": "MCP server for generating App Store screenshots via AppScreenshotStudio",
6
6
  "type": "module",
@@ -64,7 +64,7 @@ Call the `generate-screenshots` MCP tool with:
64
64
  - `features`: top 3-5 features as array
65
65
  - `brand_colors`: `{ primary, secondary?, accent? }` from theme files
66
66
  - `mood`: user's chosen mood
67
- - `device_id`: `"iphone-6.9"` (default), `"iphone-6.3"`, `"ipad-13"`, `"android-phone"`, `"android-tablet-10"` (7"), `"android-tablet-large"` (10"), `"apple-watch-ultra"`
67
+ - `device_id`: `"iphone-6.9"` (default), `"iphone-6.3"`, `"ipad-13"`, `"android-phone"`, `"pixel-11-pro"`, `"android-tablet-10"` (7"), `"android-tablet-large"` (10"), `"apple-watch-ultra"`
68
68
  - `count`: number of cards (3-10)
69
69
  - `story_flow`: `"auto"` (default), `"hero-intro"`, `"problem-solution"`, `"benefit-first"`, etc.
70
70
  - `codebase_context`: the full context object from Step 1