@appscreenshotstudio/mcp 0.4.1 → 0.4.3
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 +1 -1
- package/dist/index.js +45 -31
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -182,7 +182,7 @@ The AI generates professional screenshots using:
|
|
|
182
182
|
- **Rich text**: per-word color, bold, italic, underline, highlight pills (colored backgrounds behind words), gradient fills, text stroke outlines, emoji
|
|
183
183
|
- **Laurel stats**: wing-left + wing-right shapes flanking stats like "4.9 Rating" or "1M+ Users"
|
|
184
184
|
- **Floating UI snippets**: rounded-rect panels with text overlapping device edges
|
|
185
|
-
- **
|
|
185
|
+
- **9 device perspectives**: flat, left-15, left-30, right-15, right-30, isometric, top-down, landscape-left, landscape-right
|
|
186
186
|
- **7 layouts**: Text Top + Device Center (A), Text Top + Device Offset (B), Social Proof (C), Marketing Title (M1), Feature Callout (M2), CTA (M3), Testimonial (M4)
|
|
187
187
|
|
|
188
188
|
## Workflow
|
package/dist/index.js
CHANGED
|
@@ -126,7 +126,7 @@ function buildDesignMessage(input) {
|
|
|
126
126
|
// ─── MCP Server ─────────────────────────────────────────────────────────────────
|
|
127
127
|
const server = new McpServer({
|
|
128
128
|
name: 'appscreenshotstudio',
|
|
129
|
-
version: '0.4.
|
|
129
|
+
version: '0.4.3',
|
|
130
130
|
});
|
|
131
131
|
// Tool 1: generate-screenshots
|
|
132
132
|
server.registerTool('generate-screenshots', {
|
|
@@ -135,28 +135,30 @@ server.registerTool('generate-screenshots', {
|
|
|
135
135
|
|
|
136
136
|
IMPORTANT: Before calling this tool, research the user's codebase to populate the codebase_context parameter. Search for: package.json/README (app name & description), theme/color config files (brand colors), route definitions (key screens), marketing copy (value proposition), and App Store metadata. The more context you provide, the better the screenshots will be. Call prepare-screenshot-brief first if you need a research checklist.
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
The AI picks a narrative arc that fits the app's sell angle (trust-first for finance/health, visual-first for creative/lifestyle, problem-first for pain-relief apps, numbers-led for SaaS/analytics, community-first for social, feature-forward for multi-mode apps) and assigns a job to each card: HOOK → EDUCATE → PROVE → CONVERT.
|
|
139
139
|
|
|
140
|
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
140
|
+
9 layout types available per card:
|
|
141
|
+
- text-top-device-bottom: headline top, flat device bottom (feature/educate)
|
|
142
|
+
- text-top-device-tilted: headline left, tilted device right (or mirrored)
|
|
143
|
+
- device-hero: headline + large centered device, product-forward
|
|
144
|
+
- social-proof: stars + quote + laurel stat, device optional
|
|
145
|
+
- feature-callout: headline + features list, no device
|
|
146
|
+
- lifestyle-hero: full-bleed photo background + text overlay
|
|
147
|
+
- before-after: dark before-half + bright after-half (transformation apps)
|
|
148
|
+
- text-bottom: headline anchored to lower third, cinematic
|
|
149
|
+
- stats-hero: giant centered stat(s), no device, numbers-led
|
|
145
150
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
- Social proof (stars, quotes, badges, laurel wings with stats)
|
|
150
|
-
- Marketing/title card (no device, bold text + rich background)
|
|
151
|
-
- CTA/download card (no device, call to action)
|
|
151
|
+
Each card can carry auto-positioned compound fields: statRow, laurelStat, pressBanner, starRating, quote, featureGrid, beforeAfterSplit.
|
|
152
|
+
|
|
153
|
+
Panoramic backgrounds slice one wide AI-generated or Pexels image across multiple cards for cohesion. Panoramic element spans stretch a foreground image or device across adjacent cards.
|
|
152
154
|
|
|
153
155
|
Design features:
|
|
154
|
-
- 78+ decorative shapes across 13 categories (nature, weather, celebration, social, tech, health, food, travel, abstract, finance, education, pets, emoji)
|
|
155
156
|
- Rich text with per-word color, weight, italic, underline, highlight pills, gradient fills, stroke outlines, and emoji
|
|
156
|
-
-
|
|
157
|
-
-
|
|
157
|
+
- Device perspective variants: flat, left-15/30, right-15/30, isometric, top-down, landscape
|
|
158
|
+
- 77 decorative shapes across 13 categories (nature, weather, celebration, social, tech, health, food, travel, abstract, finance, education, pets, emoji), plus 17 core geometric shapes
|
|
159
|
+
- Laurel stats: wing-left + wing-right shapes flanking a hero number
|
|
158
160
|
|
|
159
|
-
App Store 60/40 rule: minimum 60% of cards must show a device mockup, maximum 40% can be marketing-only.
|
|
161
|
+
App Store 60/40 rule enforced: minimum 60% of cards must show a device mockup, maximum 40% can be marketing-only.
|
|
160
162
|
|
|
161
163
|
Costs 5 credits per generation.`,
|
|
162
164
|
inputSchema: z.object({
|
|
@@ -266,32 +268,44 @@ What you can change:
|
|
|
266
268
|
- Text: headlines, subtitles, badge text, font size, font family (Inter, Poppins, Montserrat, DM Sans, Space Grotesk, etc.)
|
|
267
269
|
- Text styling: per-word color, bold, italic, underline, highlight pills (colored background behind words), gradient text, text stroke outlines
|
|
268
270
|
- Colors: brand palette, gradient backgrounds, accent colors, text colors
|
|
269
|
-
-
|
|
270
|
-
-
|
|
271
|
+
- Layouts (9 types): text-top-device-bottom, text-top-device-tilted, device-hero, social-proof, feature-callout, lifestyle-hero, before-after, text-bottom, stats-hero. The AI picks a narrative arc (HOOK → EDUCATE → PROVE → CONVERT) across the set.
|
|
272
|
+
- Layout params: deviceScale (small/medium/large), deviceSide (left/right), textPosition (above/below), compoundPlacement (below-text/below-device)
|
|
273
|
+
- Device mockups: perspective variants (flat, left-15, right-15, left-30, right-30, isometric, top-down, landscape-left, landscape-right), 2D rotation, resize, reposition
|
|
274
|
+
- Frame color: recolor the device frame — "natural" (default), "black", "white", "gold". Examples: "make the iPhone gold", "black titanium finish", "white iPhone". Requires Growth plan or higher.
|
|
275
|
+
- Switch devices: "make this for Apple Watch" / "duplicate for Android tablet" clones the project at the target device's canvas size
|
|
271
276
|
- Add/remove cards: add a social proof card, remove card 3, add a marketing title card
|
|
272
|
-
-
|
|
277
|
+
- Compound fields (auto-positioned): statRow, laurelStat, pressBanner, starRating, quote, featureGrid, beforeAfterSplit
|
|
278
|
+
- Panoramic backgrounds: one wide AI or Pexels image sliced across multiple cards ("pano the background across cards 1-3")
|
|
279
|
+
- Panoramic element spans: stretch a foreground image, device-mockup, or shape across adjacent cards ("pano the device across cards 1-2")
|
|
280
|
+
- Floating elements: add/edit badges, star ratings
|
|
273
281
|
- Shapes: glow orbs, waves, blobs, rounded rectangles, circles, custom SVG paths
|
|
274
|
-
- Decorative shapes:
|
|
275
|
-
-
|
|
276
|
-
- Backgrounds: change gradient colors/angle, set a backgroundPrompt for AI-generated backgrounds
|
|
282
|
+
- Decorative shapes: 77 library shapes — leaf, flower, cloud, sparkle, heart, rocket, trophy, crown, coffee-cup, airplane, dollar-sign, paw-print, wing-left/wing-right (for laurels), and many more
|
|
283
|
+
- Backgrounds: solid, subtle-gradient, rich-gradient, photo (Pexels), or ai-generated; change gradient colors/angle; set a backgroundPrompt for AI-generated
|
|
277
284
|
- Style: shadows, opacity, border radius, rotation, blur
|
|
278
285
|
|
|
286
|
+
What isn't supported (the AI will flag these in unsupportedAsks):
|
|
287
|
+
- Multiple devices side-by-side in a single card (e.g. iPhone + Watch in one scene) — each card renders one device. Use the duplicate-for-device workflow instead, or split across cards.
|
|
288
|
+
- Uploading a specific user-supplied screenshot into a mockup — use upload-screenshots tool first, then reference the uploaded project.
|
|
289
|
+
|
|
279
290
|
Example edit messages:
|
|
280
291
|
- "Make the headlines larger and use Bebas Neue font"
|
|
281
292
|
- "Change the color scheme to blue (#2563EB) across all cards"
|
|
282
293
|
- "Add a social proof card with 5 stars and a testimonial quote"
|
|
283
294
|
- "Tilt the phone on card 2 to the left"
|
|
284
|
-
- "
|
|
285
|
-
- "
|
|
286
|
-
- "
|
|
287
|
-
- "
|
|
295
|
+
- "Pano the background photo across cards 1-3"
|
|
296
|
+
- "Stretch the device on card 1 across into card 2"
|
|
297
|
+
- "Make this project for Apple Watch"
|
|
298
|
+
- "Recolor the iPhone frame to gold across all cards"
|
|
299
|
+
- "Replace card 3 with a CTA card saying Download Free"
|
|
300
|
+
- "Switch card 2 to device-hero layout with statRow showing our three key metrics"
|
|
301
|
+
- "Add a before-after card showing the transformation"
|
|
288
302
|
- "Add decorative leaf and sparkle shapes scattered in the background"
|
|
289
303
|
- "Make 'Every' underlined and italic in the headline"`,
|
|
290
304
|
inputSchema: z.object({
|
|
291
305
|
project_id: z.string().describe('Project ID from a previous generate-screenshots call'),
|
|
292
306
|
message: z.string().describe('What to change — use natural language'),
|
|
293
|
-
card_indices: z.array(z.number()).optional()
|
|
294
|
-
.describe('Target specific cards by index (0-based). e.g. [0] for card 1, [2,3] for cards 3-4. Omit to apply changes to all cards.'),
|
|
307
|
+
card_indices: z.array(z.number().int().min(0)).max(10).optional()
|
|
308
|
+
.describe('Target specific cards by index (0-based). e.g. [0] for card 1, [2,3] for cards 3-4. Max 10 indices. Omit to apply changes to all cards.'),
|
|
295
309
|
codebase_context: z.object({
|
|
296
310
|
readme_summary: z.string().optional(),
|
|
297
311
|
key_screens: z.array(z.string()).max(15).optional(),
|
|
@@ -410,8 +424,8 @@ Returns the canvas state with:
|
|
|
410
424
|
- cards[]: each card has an id, elements array, and optional background settings
|
|
411
425
|
- Each element has: type (text, device-mockup, shape, badge, image, star-rating), position (x, y), size (width, height), zIndex, and type-specific properties
|
|
412
426
|
- Text elements: fontFamily, fontSize, fontWeight, color, segments (for multi-color text with per-word color, bold, italic, underline, highlightColor)
|
|
413
|
-
- Device mockups: perspectiveVariant (flat, left-15, right-15, left-30, right-30, isometric, top-down,
|
|
414
|
-
- Shapes:
|
|
427
|
+
- Device mockups: perspectiveVariant (flat, left-15, right-15, left-30, right-30, isometric, top-down, landscape-left, landscape-right), screenshotImage (null if no upload)
|
|
428
|
+
- Shapes: 94 shape types (17 core + 77 decorative across 13 categories) — core shapes (circle, rectangle, rounded-rect, blob, wave, triangle, diamond, hexagon, ring, star, wing-left, wing-right, etc.) plus decorative library shapes (leaf, flower, cloud, sparkle, heart, rocket, trophy, crown, coffee-cup, airplane, dollar-sign, paw-print, and many more)
|
|
415
429
|
- projectMeta: globalVisualTheme, brandColors, mood, appCategory`,
|
|
416
430
|
inputSchema: z.object({
|
|
417
431
|
project_id: z.string().describe('Project ID to inspect'),
|