@appscreenshotstudio/mcp 0.8.0 → 0.8.2

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
@@ -1,228 +1,272 @@
1
- # @appscreenshotstudio/mcp
2
-
3
- MCP server for generating App Store screenshots via [AppScreenshotStudio](https://appscreenshotstudio.com).
4
-
5
- Let your AI agent (Claude Code, Cursor, Windsurf) generate, edit, and export App Store screenshots as a native tool.
6
-
7
- ## Setup
8
-
9
- ### 1. Get an API key
10
-
11
- Create one at [appscreenshotstudio.com/settings](https://appscreenshotstudio.com/settings) under **API Keys**.
12
-
13
- ### 2. Install
14
-
15
- **Claude Code:**
16
-
17
- ```bash
18
- claude mcp add appscreenshotstudio -- npx -y @appscreenshotstudio/mcp
19
- ```
20
-
21
- Then add to your shell profile (`.bashrc`, `.zshrc`, etc.):
22
-
23
- ```bash
24
- export APPSCREENSHOTSTUDIO_API_KEY="sk_live_your_key_here"
25
- ```
26
-
27
- **Cursor / Windsurf / Other MCP clients:**
28
-
29
- Add to your MCP config (`.cursor/mcp.json`, `settings.json`, etc.):
30
-
31
- ```json
32
- {
33
- "mcpServers": {
34
- "appscreenshotstudio": {
35
- "command": "npx",
36
- "args": ["-y", "@appscreenshotstudio/mcp"],
37
- "env": {
38
- "APPSCREENSHOTSTUDIO_API_KEY": "sk_live_your_key_here"
39
- }
40
- }
41
- }
42
- }
43
- ```
44
-
45
- ## Tools
46
-
47
- ### `prepare-screenshot-brief`
48
-
49
- Get a research checklist and strategy guide before generating. Returns file patterns to search for across tech stacks, story flow recommendations per app category, headline tips, and the `codebase_context` schema to fill in.
50
-
51
- **Free no API call or credits.**
52
-
53
- ### `generate-screenshots`
54
-
55
- Create a complete set of App Store screenshots. The agent researches your codebase first, then passes rich context for accurate, app-specific designs.
56
-
57
- | Parameter | Type | Required | Description |
58
- |---|---|---|---|
59
- | `app_name` | string | Yes | App name |
60
- | `app_description` | string | Yes | What the app does (1-3 sentences) |
61
- | `features` | string[] | No | Key features, ordered by importance (max 10) |
62
- | `brand_colors` | object | No | `{ primary, secondary?, accent? }` as hex |
63
- | `mood` | string | No | "energetic", "calm", "minimal", "bold", etc. |
64
- | `device_id` | string | No | Target device (default: `iphone-6.9`) |
65
- | `count` | number | No | Number of cards, 3-10 (default: 5) |
66
- | `story_flow` | string | No | Narrative structure (default: `auto`) |
67
- | `codebase_context` | object | No | App context from codebase research (see below) |
68
-
69
- **Costs 5 credits.**
70
-
71
- #### `codebase_context`
72
-
73
- Pass this for dramatically better screenshots. The context is persisted on the project and used in all subsequent chats.
74
-
75
- | Field | Description |
76
- |---|---|
77
- | `readme_summary` | App overview from README or docs |
78
- | `key_screens` | Main screens/views (e.g. "Dashboard", "Settings") |
79
- | `color_tokens` | Brand colors from theme files (e.g. `{ "primary": "#7C3AED" }`) |
80
- | `target_audience` | Who the app is for |
81
- | `app_category` | fitness, finance, social, productivity, etc. |
82
- | `competitive_edge` | What makes it unique |
83
- | `app_store_description` | Existing store listing if found |
84
- | `tech_stack` | React Native, SwiftUI, Flutter, etc. |
85
- | `ui_style` | "dark mode with neon accents", "clean minimal", etc. |
86
- | `primary_user_flow` | Main user journey through the app |
87
-
88
- ### `edit-screenshots`
89
-
90
- Make changes to an existing project with natural language. Optionally target specific cards.
91
-
92
- | Parameter | Type | Required | Description |
93
- |---|---|---|---|
94
- | `project_id` | string | Yes | From a previous `generate-screenshots` call |
95
- | `message` | string | Yes | What to change |
96
- | `card_indices` | number[] | No | Target specific cards by index (0-based). Omit to edit all. |
97
- | `codebase_context` | object | No | App context to enrich the edit (same schema as above) |
98
-
99
- **Costs 5 credits.**
100
-
101
- ### `upload-screenshots`
102
-
103
- Upload local app screenshots (from Simulator, emulator, or screen captures) into the device mockups of an existing project. Reads files from your local filesystem and places them into the device frames.
104
-
105
- | Parameter | Type | Required | Description |
106
- |---|---|---|---|
107
- | `project_id` | string | Yes | From a previous `generate-screenshots` call |
108
- | `screenshots` | array | Yes | Array of `{ file_path, card_index }` — maps local files to cards |
109
-
110
- Each item in `screenshots`:
111
-
112
- | Field | Type | Description |
113
- |---|---|---|
114
- | `file_path` | string | Absolute path to a local PNG, JPG, or WEBP file |
115
- | `card_index` | number | Which card to place this screenshot on (0-based) |
116
-
117
- **Free.**
118
-
119
- ### `render-screenshots`
120
-
121
- Export to high-resolution PNGs. Returns download URLs.
122
-
123
- | Parameter | Type | Required | Description |
124
- |---|---|---|---|
125
- | `project_id` | string | Yes | Project to render |
126
-
127
- **Free.**
128
-
129
- ### `get-project`
130
-
131
- Retrieve a project's current state — cards, elements, backgrounds, and metadata.
132
-
133
- | Parameter | Type | Required | Description |
134
- |---|---|---|---|
135
- | `project_id` | string | Yes | Project ID to retrieve |
136
-
137
- **Free.**
138
-
139
- ### `generate-background`
140
-
141
- Generate an AI background for a specific card. Uses project metadata (brand colors, mood, theme) for contextual results.
142
-
143
- | Parameter | Type | Required | Description |
144
- |---|---|---|---|
145
- | `project_id` | string | Yes | Project containing the card |
146
- | `card_index` | number | Yes | Which card (0-based) |
147
- | `prompt` | string | Yes | Description of the background |
148
-
149
- **Costs 6 credits.**
150
-
151
- ### `generate-panoramic-background`
152
-
153
- Generate one wide image and slice it across multiple cards so they read as a continuous scene in the App Store gallery. Use after a panoramic chat edit ("pano the background across cards 1-3") to fulfill the pending panoramic, or pass an explicit `prompt` / `pexels_query`.
154
-
155
- | Parameter | Type | Required | Description |
156
- |---|---|---|---|
157
- | `project_id` | string | Yes | Project containing the cards |
158
- | `prompt` | string | No | AI scene description (Gemini). Costs 6 credits. |
159
- | `pexels_query` | string | No | Stock photo search query (Pexels). Free. |
160
- | `card_indices` | number[] | No | Cards sharing the panoramic (0-based, min 2). Default: first 3. |
161
-
162
- Omit both `prompt` and `pexels_query` to fulfill a panoramic already set up by `generate-screenshots` / `edit-screenshots`.
163
-
164
- **Costs 6 credits (AI prompt) or free (Pexels query).**
165
-
166
- ### `list-devices`
167
-
168
- Show all supported device specs. No API call needed.
169
-
170
- **Free.**
171
-
172
- ## Claude Code Skill
173
-
174
- The MCP server auto-installs a Claude Code skill on first startup. The skill teaches Claude a structured research-first workflow for better screenshot results. You can also install it manually:
175
-
176
- ```bash
177
- npx @appscreenshotstudio/mcp install-skill
178
- ```
179
-
180
- Once installed, use `/appscreenshotstudio` in Claude Code or just ask "generate App Store screenshots for my app".
181
-
182
- ## Supported Devices
183
-
184
- | ID | Name | Size | Required |
185
- |---|---|---|---|
186
- | `iphone-6.9` | iPhone 16 Pro Max | 1260x2736 | App Store |
187
- | `iphone-6.3` | iPhone 17 Pro | 1206x2622 | Optional |
188
- | `ipad-13` | iPad Pro 13" | 2064x2752 | App Store |
189
- | `android-phone` | Android Phone | 1080x2340 | Play Store |
190
- | `pixel-11-pro` | Google Pixel 11 Pro | 1280x2856 | Play Store |
191
- | `android-tablet-10` | Android Tablet 7" | 1200x1920 | Play Store |
192
- | `android-tablet-large` | Android Tablet 10" | 1600x2560 | Play Store |
193
- | `apple-watch-ultra` | Apple Watch Ultra 2 | 410x502 | App Store |
194
-
195
- ## Design Features
196
-
197
- The AI generates professional screenshots using:
198
-
199
- - **94 shape types** (17 core + 77 decorative across 13 categories): nature (leaf, flower, tree), weather (cloud, sun, snowflake), celebration (sparkle, trophy, crown, confetti), social (chat-bubble, music-note), tech (rocket, code-bracket), health (dumbbell, flame), food (coffee-cup, pizza), travel (airplane, compass), finance (dollar-sign, piggy-bank), education (graduation-cap, lightbulb), pets (paw-print, cat-face), emoji (smiley, fire-emoji), abstract (swirl, infinity, gem)
200
- - **Rich text**: per-word color, bold, italic, underline, highlight pills (colored backgrounds behind words), gradient fills, text stroke outlines, emoji
201
- - **Compound trust signals**: statRow, laurelStat, starRating, quote, pressBanner, credential, guarantee. Auto-positioned per layout, and opt-in: supply the real figure or the card ships clean
202
- - **Background textures**: diagonal-stripe, crosshatch, checkerboard, zigzag, hairline-grid, dot-grid, waves, grain, radial-rays, concentric-circles. Ask for one explicitly; they are subtle by design and run continuously across the set.
203
- - **Frame color**: recolor the device frame — `natural` (default), `black`, `white`, `gold`. Requires Growth plan or higher.
204
- - **Panoramics**: slice one wide image across cards (chat tags the cards, then `generate-panoramic-background` creates and slices the image) or stretch a foreground element across adjacent cards (`apply_element_span`). Gallery gutters are accounted for.
205
- - **9 device perspectives**: flat, left-15, left-30, right-15, right-30, isometric, top-down, landscape-left, landscape-right
206
- - **10 layouts**: `text-top-device-bottom`, `text-top-device-tilted`, `device-hero`, `social-proof`, `review-clip`, `screen-hero`, `lifestyle-hero`, `stats-hero`, `metric-badge`, `annotated-feature`. The AI varies `deviceScale`, `deviceSide`, `textPosition`, and `textAlign` per card so a set never looks like duplicates.
207
-
208
- ## Workflow
209
-
210
- 1. **Research** — Agent calls `prepare-screenshot-brief`, then searches your codebase for app name, features, colors, screens, and audience
211
- 2. **Generate** Agent calls `generate-screenshots` with `codebase_context` for app-specific designs
212
- 3. **Iterate** — Agent calls `edit-screenshots` to refine (codebase context carries over automatically)
213
- 4. **Upload** Agent calls `upload-screenshots` with local file paths to fill device mockups
214
- 5. **Export** — Agent calls `render-screenshots` or click "Download All" in the web app
215
-
216
- ## Security
217
-
218
- - API key stays on your machine (environment variable)
219
- - All API calls over HTTPS
220
- - stdio transport no network ports opened
221
- - Revoke keys anytime in Settings
222
-
223
- ## Links
224
-
225
- - [Screenshot API + MCP overview](https://appscreenshotstudio.com/api)
226
- - [Full docs](https://appscreenshotstudio.com/docs/mcp)
227
- - [REST API reference](https://appscreenshotstudio.com/docs/api)
228
- - [Pricing](https://appscreenshotstudio.com/pricing)
1
+ # @appscreenshotstudio/mcp
2
+
3
+ MCP server for generating App Store screenshots via [AppScreenshotStudio](https://appscreenshotstudio.com).
4
+
5
+ Let your AI agent (Claude Code, Cursor, Windsurf) generate, edit, and export App Store screenshots as a native tool.
6
+
7
+ ## Setup
8
+
9
+ ### 1. Get an API key
10
+
11
+ Create one at [appscreenshotstudio.com/settings](https://appscreenshotstudio.com/settings) under **API Keys**.
12
+
13
+ ### 2. Install
14
+
15
+ **Claude Code:**
16
+
17
+ ```bash
18
+ claude mcp add appscreenshotstudio -- npx -y @appscreenshotstudio/mcp
19
+ ```
20
+
21
+ Then add to your shell profile (`.bashrc`, `.zshrc`, etc.):
22
+
23
+ ```bash
24
+ export APPSCREENSHOTSTUDIO_API_KEY="sk_live_your_key_here"
25
+ ```
26
+
27
+ **Cursor / Windsurf / Other MCP clients:**
28
+
29
+ Add to your MCP config (`.cursor/mcp.json`, `settings.json`, etc.):
30
+
31
+ ```json
32
+ {
33
+ "mcpServers": {
34
+ "appscreenshotstudio": {
35
+ "command": "npx",
36
+ "args": ["-y", "@appscreenshotstudio/mcp"],
37
+ "env": {
38
+ "APPSCREENSHOTSTUDIO_API_KEY": "sk_live_your_key_here"
39
+ }
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ## Tools
46
+
47
+ ### `prepare-screenshot-brief`
48
+
49
+ Get a research checklist and strategy guide before generating. Returns file patterns to search for across tech stacks, story flow recommendations per app category, headline tips, and the `codebase_context` schema to fill in.
50
+
51
+ **Free: no API call or credits.**
52
+
53
+ ### `generate-screenshots`
54
+
55
+ Create a complete set of App Store screenshots. The agent researches your codebase first, then passes rich context for accurate, app-specific designs.
56
+
57
+ | Parameter | Type | Required | Description |
58
+ |---|---|---|---|
59
+ | `app_name` | string | Yes | App name |
60
+ | `app_description` | string | Yes | What the app does (1-3 sentences) |
61
+ | `features` | string[] | No | Key features, ordered by importance (max 10) |
62
+ | `brand_colors` | object | No | `{ primary, secondary?, accent? }` as hex |
63
+ | `mood` | string | No | "energetic", "calm", "minimal", "bold", etc. |
64
+ | `device_id` | string | No | Target device (default: `iphone-6.9`) |
65
+ | `count` | number | No | Number of cards, 3-10 (default: 5) |
66
+ | `story_flow` | string | No | Narrative structure (default: `auto`) |
67
+ | `codebase_context` | object | No | App context from codebase research (see below) |
68
+ | `images` | array | No | Local image files to attach (see [`images`](#images) below) |
69
+
70
+ **Costs 5 credits.**
71
+
72
+ #### `codebase_context`
73
+
74
+ Pass this for dramatically better screenshots. The context is persisted on the project and used in all subsequent chats.
75
+
76
+ | Field | Description |
77
+ |---|---|
78
+ | `readme_summary` | App overview from README or docs |
79
+ | `key_screens` | Main screens/views (e.g. "Dashboard", "Settings") |
80
+ | `color_tokens` | Brand colors from theme files (e.g. `{ "primary": "#7C3AED" }`) |
81
+ | `target_audience` | Who the app is for |
82
+ | `app_category` | fitness, finance, social, productivity, etc. |
83
+ | `competitive_edge` | What makes it unique |
84
+ | `app_store_description` | Existing store listing if found |
85
+ | `tech_stack` | React Native, SwiftUI, Flutter, etc. |
86
+ | `ui_style` | "dark mode with neon accents", "clean minimal", etc. |
87
+ | `primary_user_flow` | Main user journey through the app |
88
+
89
+ #### `images`
90
+
91
+ Attach local image files as `{ file_path, kind }`. Max 5 per call. The `kind` decides where the image goes, and getting it wrong is the one mistake with a visible cost:
92
+
93
+ | `kind` | What it is | Where it goes |
94
+ |---|---|---|
95
+ | `screenshot` (default) | Your real app UI, straight from a simulator or device | Inside the generated device frames, in attachment order |
96
+ | `mascot` | Your app's character or logo creature | Decoratively around the phones (peeking from behind the hook card, beside the closing card). Use a transparent PNG |
97
+ | `reference` | A look to **match**: a competitor's App Store listing, a design the user pointed you at, any image that already shows a phone with a headline above it | Nowhere. It is read for palette, type weight, headline length and composition, and never placed in a frame |
98
+
99
+ **Do not send a competitor's store screenshots as `screenshot`.** They are finished marketing cards, so putting one inside a device frame nests a phone inside a phone and ships someone else's artwork into your listing. If the user says "make it look like this app" and hands you that app's listing, it is `reference`. Their own raw captures are `screenshot`. One call can carry both, and the reference ones are simply skipped when the frames get filled.
100
+
101
+ If you send a reference without tagging it, the server classifies it from the image and holds it out anyway, and says so in the reply. Tagging it is the deterministic path.
102
+
103
+ ```jsonc
104
+ {
105
+ "app_name": "Kestrel",
106
+ "images": [
107
+ { "file_path": "/Users/me/competitor-listing-1.png", "kind": "reference" },
108
+ { "file_path": "/Users/me/Desktop/today.png", "kind": "screenshot" },
109
+ { "file_path": "/Users/me/Desktop/calendar.png", "kind": "screenshot" }
110
+ ]
111
+ }
112
+ ```
113
+
114
+ ### `edit-screenshots`
115
+
116
+ Make changes to an existing project with natural language. Optionally target specific cards.
117
+
118
+ | Parameter | Type | Required | Description |
119
+ |---|---|---|---|
120
+ | `project_id` | string | Yes | From a previous `generate-screenshots` call |
121
+ | `message` | string | Yes | What to change |
122
+ | `card_indices` | number[] | No | Target specific cards by index (0-based). Omit to edit all. |
123
+ | `codebase_context` | object | No | App context to enrich the edit (same schema as above) |
124
+ | `images` | array | No | Same shape as above. Screenshots fill the device frames of regenerated cards; a reference only informs the design |
125
+
126
+ **Costs 5 credits.**
127
+
128
+ ### `upload-screenshots`
129
+
130
+ Upload local app screenshots (from Simulator, emulator, or screen captures) into the device mockups of an existing project. Reads files from your local filesystem and places them into the device frames.
131
+
132
+ | Parameter | Type | Required | Description |
133
+ |---|---|---|---|
134
+ | `project_id` | string | Yes | From a previous `generate-screenshots` call |
135
+ | `screenshots` | array | Yes | Array of `{ file_path, card_index }`: maps local files to cards |
136
+
137
+ Each item in `screenshots`:
138
+
139
+ | Field | Type | Description |
140
+ |---|---|---|
141
+ | `file_path` | string | Absolute path to a local PNG, JPG, or WEBP file |
142
+ | `card_index` | number | Which card to place this screenshot on (0-based) |
143
+
144
+ **Free.**
145
+
146
+ ### `render-screenshots`
147
+
148
+ Export to high-resolution PNGs. Returns download URLs.
149
+
150
+ | Parameter | Type | Required | Description |
151
+ |---|---|---|---|
152
+ | `project_id` | string | Yes | Project to render |
153
+
154
+ **Free.**
155
+
156
+ ### `get-project`
157
+
158
+ Retrieve a project's current state: cards, elements, backgrounds, and metadata.
159
+
160
+ | Parameter | Type | Required | Description |
161
+ |---|---|---|---|
162
+ | `project_id` | string | Yes | Project ID to retrieve |
163
+
164
+ **Free.**
165
+
166
+ ### `generate-background`
167
+
168
+ Generate an AI background for a specific card. Uses project metadata (brand colors, mood, theme) for contextual results.
169
+
170
+ | Parameter | Type | Required | Description |
171
+ |---|---|---|---|
172
+ | `project_id` | string | Yes | Project containing the card |
173
+ | `card_index` | number | Yes | Which card (0-based) |
174
+ | `prompt` | string | Yes | Description of the background |
175
+
176
+ **Costs 6 credits.**
177
+
178
+ ### `generate-panoramic-background`
179
+
180
+ Generate one wide image and slice it across multiple cards so they read as a continuous scene in the App Store gallery. Use after a panoramic chat edit ("pano the background across cards 1-3") to fulfill the pending panoramic, or pass an explicit `prompt` / `pexels_query`.
181
+
182
+ | Parameter | Type | Required | Description |
183
+ |---|---|---|---|
184
+ | `project_id` | string | Yes | Project containing the cards |
185
+ | `prompt` | string | No | AI scene description (Gemini). Costs 6 credits. |
186
+ | `pexels_query` | string | No | Stock photo search query (Pexels). Free. |
187
+ | `card_indices` | number[] | No | Cards sharing the panoramic (0-based, min 2). Default: first 3. |
188
+
189
+ Omit both `prompt` and `pexels_query` to fulfill a panoramic already set up by `generate-screenshots` / `edit-screenshots`.
190
+
191
+ **Costs 6 credits (AI prompt) or free (Pexels query).**
192
+
193
+ ### `list-devices`
194
+
195
+ Show all supported device specs. No API call needed.
196
+
197
+ **Free.**
198
+
199
+ ## Claude Code Skill
200
+
201
+ The MCP server auto-installs a Claude Code skill on first startup. The skill teaches Claude a structured research-first workflow for better screenshot results. You can also install it manually:
202
+
203
+ ```bash
204
+ npx @appscreenshotstudio/mcp install-skill
205
+ ```
206
+
207
+ Once installed, use `/appscreenshotstudio` in Claude Code or just ask "generate App Store screenshots for my app".
208
+
209
+ ## Supported Devices
210
+
211
+ | ID | Name | Size | Required |
212
+ |---|---|---|---|
213
+ | `iphone-6.9` | iPhone 16 Pro Max | 1260x2736 | App Store |
214
+ | `iphone-6.3` | iPhone 17 Pro | 1206x2622 | Optional |
215
+ | `ipad-13` | iPad Pro 13" | 2064x2752 | App Store |
216
+ | `android-phone` | Android Phone | 1080x2340 | Play Store |
217
+ | `pixel-11-pro` | Google Pixel 11 Pro | 1280x2856 | Play Store |
218
+ | `galaxy-s26-ultra` | Samsung Galaxy S26 Ultra | 1440x3120 | Play Store |
219
+ | `android-tablet-10` | Android Tablet 7" | 1200x1920 | Play Store |
220
+ | `android-tablet-large` | Android Tablet 10" | 1600x2560 | Play Store |
221
+ | `apple-watch-ultra` | Apple Watch Ultra 2 | 410x502 | App Store |
222
+
223
+ ## Design Features
224
+
225
+ The AI generates professional screenshots using:
226
+
227
+ - **94 shape types** (17 core + 77 decorative across 13 categories): nature (leaf, flower, tree), weather (cloud, sun, snowflake), celebration (sparkle, trophy, crown, confetti), social (chat-bubble, music-note), tech (rocket, code-bracket), health (dumbbell, flame), food (coffee-cup, pizza), travel (airplane, compass), finance (dollar-sign, piggy-bank), education (graduation-cap, lightbulb), pets (paw-print, cat-face), emoji (smiley, fire-emoji), abstract (swirl, infinity, gem)
228
+ - **Rich text**: per-word color, bold, italic, underline, highlight pills (colored backgrounds behind words), gradient fills, text stroke outlines, emoji
229
+ - **Compound trust signals**: statRow, laurelStat, starRating, quote, pressBanner, credential, guarantee. Auto-positioned per layout, and opt-in: supply the real figure or the card ships clean
230
+ - **Background textures**: diagonal-stripe, crosshatch, checkerboard, zigzag, hairline-grid, dot-grid, waves, grain, radial-rays, concentric-circles. Ask for one explicitly; they are subtle by design and run continuously across the set.
231
+ - **Frame color**: recolor the device frame: `natural` (default), `black`, `white`, `gold`. Requires Growth plan or higher.
232
+ - **Panoramics**: slice one wide image across cards (chat tags the cards, then `generate-panoramic-background` creates and slices the image) or stretch a foreground element across adjacent cards (`apply_element_span`). Gallery gutters are accounted for.
233
+ - **9 device perspectives**: flat, left-15, left-30, right-15, right-30, isometric, top-down, landscape-left, landscape-right
234
+ - **10 layouts**: `text-top-device-bottom`, `text-top-device-tilted`, `device-hero`, `social-proof`, `review-clip`, `screen-hero`, `lifestyle-hero`, `stats-hero`, `metric-badge`, `annotated-feature`. The AI also varies the device angle, `deviceScale`, `deviceSide`, `textPosition`, and `textAlign` per card so a set never looks like duplicates.
235
+
236
+ ## Workflow
237
+
238
+ 1. **Research**: Agent calls `prepare-screenshot-brief`, then searches your codebase for app name, features, colors, screens, and audience
239
+ 2. **Generate**: Agent calls `generate-screenshots` with `codebase_context` for app-specific designs
240
+ 3. **Iterate**: Agent calls `edit-screenshots` to refine (codebase context carries over automatically)
241
+ 4. **Upload**: Agent calls `upload-screenshots` with local file paths to fill device mockups
242
+ 5. **Export**: Agent calls `render-screenshots` or click "Download All" in the web app
243
+
244
+ ## Security
245
+
246
+ - API key stays on your machine (environment variable)
247
+ - All API calls over HTTPS
248
+ - stdio transport: no network ports opened
249
+ - Revoke keys anytime in Settings
250
+
251
+ ## Privacy Policy
252
+
253
+ Full policy: [appscreenshotstudio.com/privacy](https://appscreenshotstudio.com/privacy). What that means for this MCP server specifically:
254
+
255
+ **What is collected.** Only the arguments you pass to a tool. That means the app context you or your agent supply (app name, description, features, brand colors, mood, and any `codebase_context` fields), the natural-language messages you send to `edit-screenshots`, background prompts, and any image files you explicitly attach through `images` or `upload-screenshots`.
256
+
257
+ **What is not collected.** The server reads only the file paths you hand it. It does not scan, index, or upload your repository, and it opens no network ports. Your API key is read from an environment variable and stays on your machine; it is sent only as an auth header to appscreenshotstudio.com.
258
+
259
+ **Where it goes.** One host: `https://appscreenshotstudio.com`. There is no telemetry endpoint and no third-party analytics in this package.
260
+
261
+ **Third-party processing.** Designs and edits are generated by an LLM, AI backgrounds by Google Gemini, and stock backgrounds are fetched from Pexels when you pass `pexels_query`. Files are stored via our storage provider. See the full policy for the current list.
262
+
263
+ **Retention.** Projects persist in your account until you delete them. Rendered PNG download URLs expire after 7 days.
264
+
265
+ **Contact.** [support@kindlebookillustrations.com](mailto:support@kindlebookillustrations.com)
266
+
267
+ ## Links
268
+
269
+ - [Screenshot API + MCP overview](https://appscreenshotstudio.com/api)
270
+ - [Full docs](https://appscreenshotstudio.com/docs/mcp)
271
+ - [REST API reference](https://appscreenshotstudio.com/docs/api)
272
+ - [Pricing](https://appscreenshotstudio.com/pricing)