@appscreenshotstudio/mcp 0.2.0 → 0.2.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
@@ -44,9 +44,15 @@ Add to your MCP config (`.cursor/mcp.json`, `settings.json`, etc.):
44
44
 
45
45
  ## Tools
46
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
+
47
53
  ### `generate-screenshots`
48
54
 
49
- Create a complete set of App Store screenshots. One tool call = one full project.
55
+ Create a complete set of App Store screenshots. The agent researches your codebase first, then passes rich context for accurate, app-specific designs.
50
56
 
51
57
  | Parameter | Type | Required | Description |
52
58
  |---|---|---|---|
@@ -58,9 +64,27 @@ Create a complete set of App Store screenshots. One tool call = one full project
58
64
  | `device_id` | string | No | Target device (default: `iphone-6.9`) |
59
65
  | `count` | number | No | Number of cards, 3-10 (default: 5) |
60
66
  | `story_flow` | string | No | Narrative structure (default: `auto`) |
67
+ | `codebase_context` | object | No | App context from codebase research (see below) |
61
68
 
62
69
  **Costs 5 credits.**
63
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
+
64
88
  ### `edit-screenshots`
65
89
 
66
90
  Make changes to an existing project with natural language. Optionally target specific cards.
@@ -70,6 +94,7 @@ Make changes to an existing project with natural language. Optionally target spe
70
94
  | `project_id` | string | Yes | From a previous `generate-screenshots` call |
71
95
  | `message` | string | Yes | What to change |
72
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) |
73
98
 
74
99
  **Costs 5 credits.**
75
100
 
@@ -111,6 +136,28 @@ Show all supported device specs. No API call needed.
111
136
 
112
137
  **Free.**
113
138
 
139
+ ## Prompts
140
+
141
+ MCP prompts are pre-defined workflows your agent can follow.
142
+
143
+ ### `create-app-screenshots`
144
+
145
+ Full guided workflow: research the codebase, generate screenshots with rich context, iterate, and export. Best results when used from within the app's project directory.
146
+
147
+ | Argument | Default | Description |
148
+ |---|---|---|
149
+ | `platform` | ios | "ios", "android", or "both" |
150
+ | `extra_instructions` | none | Additional instructions like "use dark theme" |
151
+
152
+ ### `improve-screenshots`
153
+
154
+ Research the codebase and improve an existing screenshot project. Compares current designs to the actual app and makes targeted fixes.
155
+
156
+ | Argument | Required | Description |
157
+ |---|---|---|
158
+ | `project_id` | Yes | Project ID to improve |
159
+ | `focus` | No | What to focus on: "headlines", "colors", "story flow", etc. |
160
+
114
161
  ## Supported Devices
115
162
 
116
163
  | ID | Name | Size | Required |
@@ -133,10 +180,11 @@ The AI generates professional screenshots using:
133
180
 
134
181
  ## Workflow
135
182
 
136
- 1. **Generate** — Agent calls `generate-screenshots` with your app details
137
- 2. **Iterate** — Agent calls `edit-screenshots` to refine
138
- 3. **Upload** — Open the project URL, upload your actual app screenshots into the device mockups
139
- 4. **Export** — Agent calls `render-screenshots` or click "Download All" in the web app
183
+ 1. **Research** — Agent calls `prepare-screenshot-brief`, then searches your codebase for app name, features, colors, screens, and audience
184
+ 2. **Generate** — Agent calls `generate-screenshots` with `codebase_context` for app-specific designs
185
+ 3. **Iterate** — Agent calls `edit-screenshots` to refine (codebase context carries over automatically)
186
+ 4. **Upload** — Open the project URL, upload your actual app screenshots into the device mockups
187
+ 5. **Export** — Agent calls `render-screenshots` or click "Download All" in the web app
140
188
 
141
189
  ## Security
142
190
 
package/dist/index.js CHANGED
@@ -2,6 +2,29 @@
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { z } from 'zod';
5
+ import { existsSync, mkdirSync, copyFileSync } from 'node:fs';
6
+ import { join, dirname } from 'node:path';
7
+ import { homedir } from 'node:os';
8
+ import { fileURLToPath } from 'node:url';
9
+ // ─── CLI: install-skill ─────────────────────────────────────────────────────────
10
+ const args = process.argv.slice(2);
11
+ if (args[0] === 'install-skill') {
12
+ const __dirname = dirname(fileURLToPath(import.meta.url));
13
+ const src = join(__dirname, '..', 'skills', 'appscreenshotstudio', 'SKILL.md');
14
+ const destDir = join(homedir(), '.claude', 'skills', 'appscreenshotstudio');
15
+ const dest = join(destDir, 'SKILL.md');
16
+ if (!existsSync(src)) {
17
+ console.error('Error: SKILL.md not found in package. Try reinstalling @appscreenshotstudio/mcp.');
18
+ process.exit(1);
19
+ }
20
+ mkdirSync(destDir, { recursive: true });
21
+ copyFileSync(src, dest);
22
+ console.log('Skill installed to ~/.claude/skills/appscreenshotstudio/SKILL.md');
23
+ console.log('');
24
+ console.log('You can now use /appscreenshotstudio in Claude Code to generate screenshots.');
25
+ console.log('Make sure the MCP server is also configured in your Claude Code settings.');
26
+ process.exit(0);
27
+ }
5
28
  const API_BASE = process.env.APPSCREENSHOTSTUDIO_URL || 'https://appscreenshotstudio.com';
6
29
  const API_KEY = process.env.APPSCREENSHOTSTUDIO_API_KEY;
7
30
  // ─── Devices (mirrors lib/device-specs.ts) ─────────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appscreenshotstudio/mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for generating App Store screenshots via AppScreenshotStudio",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -39,6 +39,7 @@
39
39
  },
40
40
  "files": [
41
41
  "dist",
42
+ "skills",
42
43
  "README.md"
43
44
  ]
44
45
  }
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: appscreenshotstudio
3
+ version: 1.0.0
4
+ description: Generate App Store screenshots by researching the codebase and calling AppScreenshotStudio MCP tools. Use when the user mentions "screenshots", "App Store", "Play Store", "store listing", or wants to create marketing screenshots for their app.
5
+ allowed_tools:
6
+ - Read
7
+ - Glob
8
+ - Grep
9
+ - Bash
10
+ - WebFetch
11
+ - AskUserQuestion
12
+ argument-hint: [app name or description]
13
+ ---
14
+
15
+ # App Store Screenshot Generator
16
+
17
+ You generate production-ready App Store / Play Store screenshots by researching the user's codebase and calling the AppScreenshotStudio MCP tools.
18
+
19
+ ## Workflow
20
+
21
+ ### Step 1: Research the Codebase
22
+
23
+ Before generating, thoroughly research the app. This context dramatically improves output quality.
24
+
25
+ **Find and read these files:**
26
+
27
+ - **App identity**: `README.md`, `package.json`, `Cargo.toml`, `pubspec.yaml`, `build.gradle`
28
+ - **Brand colors**: `tailwind.config.*` (colors/theme), `**/theme.*`, `**/colors.*`, `**/palette.*`
29
+ - SwiftUI: search for `Color(` or `.accentColor`
30
+ - Flutter: search for `ThemeData`, `primarySwatch`, `colorScheme`
31
+ - **Key screens**: route/page files, navigation definitions, tab bars
32
+ - React/Next.js: `app/`, `pages/`, route files
33
+ - SwiftUI: `NavigationView`, `TabView`, `View` structs
34
+ - Flutter: `MaterialPageRoute`, `GoRouter`
35
+ - React Native: `createStackNavigator`, `Screen`
36
+ - **Store metadata**: `Info.plist`, fastlane `metadata/`, `AndroidManifest.xml`
37
+ - **Marketing copy**: landing pages, about pages, existing descriptions
38
+
39
+ **Build this context object:**
40
+ ```
41
+ readme_summary: What the app does (2-3 sentences)
42
+ key_screens: ["Dashboard with activity feed", "Settings page", ...]
43
+ color_tokens: {"primary": "#hex", "secondary": "#hex"}
44
+ target_audience: Who it's for
45
+ app_category: fitness|finance|social|productivity|food|travel|health|education
46
+ competitive_edge: What makes it unique
47
+ ui_style: "dark mode with neon accents" or "clean minimal"
48
+ primary_user_flow: "Sign up → Create project → Track progress"
49
+ ```
50
+
51
+ ### Step 2: Confirm with the User
52
+
53
+ Present your findings and ask:
54
+ - "I found these as your main features: [X, Y, Z]. Are these the top 3-5 to highlight?"
55
+ - "Your brand colors appear to be [primary, secondary]. Should I use these?"
56
+ - "What mood fits? Options: energetic, calm, professional, playful, minimal, bold, warm, dark"
57
+ - "How many screenshots? (3-10, default 5)"
58
+
59
+ ### Step 3: Generate Screenshots
60
+
61
+ Call the `generate-screenshots` MCP tool with:
62
+ - `app_name`: from package.json or user input
63
+ - `app_description`: from README or user description
64
+ - `features`: top 3-5 features as array
65
+ - `brand_colors`: `{ primary, secondary?, accent? }` from theme files
66
+ - `mood`: user's chosen mood
67
+ - `device_id`: `"iphone-6.9"` (default), `"ipad-13"`, `"android-phone"`, `"android-tablet-10"`
68
+ - `count`: number of cards (3-10)
69
+ - `story_flow`: `"auto"` (default), `"hero-intro"`, `"problem-solution"`, `"benefit-first"`, etc.
70
+ - `codebase_context`: the full context object from Step 1
71
+
72
+ ### Step 4: Review and Iterate
73
+
74
+ Share the project URL and offer refinements using `edit-screenshots`:
75
+ - "Want to change any headlines or colors?"
76
+ - "Should I add a social proof card with ratings?"
77
+ - "Want to try a different layout style?"
78
+
79
+ ### Step 5: Export
80
+
81
+ Call `render-screenshots` to export PNGs at exact App Store dimensions. This is free.
82
+
83
+ ## Headline Rules
84
+
85
+ Headlines must pass the "one second test" — readable at thumbnail size.
86
+
87
+ **Three styles:**
88
+ 1. Paint a moment: "Morning runs handled", "Your kitchen simplified"
89
+ 2. State an outcome: "Never miss a workout", "Inbox zero daily"
90
+ 3. Eliminate a pain: "No more forgotten tasks", "Ditch the spreadsheet"
91
+
92
+ **Banned:** feature lists, "and"-joined phrases, starting with "The", vague aspirational fluff.
93
+
94
+ ## Credit Costs
95
+
96
+ | Tool | Cost |
97
+ |------|------|
98
+ | generate-screenshots | 5 credits |
99
+ | edit-screenshots | 5 credits |
100
+ | generate-background | 6 credits |
101
+ | render-screenshots | free |
102
+ | prepare-screenshot-brief | free |
103
+ | list-devices | free |
104
+ | get-project | free |