@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 +272 -228
- package/dist/index.js +210 -150
- package/package.json +49 -49
- package/skills/appscreenshotstudio/SKILL.md +124 -119
package/package.json
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@appscreenshotstudio/mcp",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"mcpName": "com.appscreenshotstudio/mcp",
|
|
5
|
-
"description": "MCP server for generating App Store screenshots via AppScreenshotStudio",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"homepage": "https://appscreenshotstudio.com/docs/mcp",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://github.com/TWWorks-org/mcp-server"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/TWWorks-org/mcp-server/issues"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"mcp",
|
|
18
|
-
"model-context-protocol",
|
|
19
|
-
"app-store-screenshots",
|
|
20
|
-
"screenshot-generator",
|
|
21
|
-
"appscreenshotstudio",
|
|
22
|
-
"ai-tools"
|
|
23
|
-
],
|
|
24
|
-
"bin": {
|
|
25
|
-
"appscreenshotstudio-mcp": "dist/index.js"
|
|
26
|
-
},
|
|
27
|
-
"scripts": {
|
|
28
|
-
"build": "tsc",
|
|
29
|
-
"start": "node dist/index.js",
|
|
30
|
-
"dev": "tsc --watch",
|
|
31
|
-
"prepublishOnly": "npm run build"
|
|
32
|
-
},
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
35
|
-
"zod": "^3.25.67"
|
|
36
|
-
},
|
|
37
|
-
"devDependencies": {
|
|
38
|
-
"@types/node": "^22.0.0",
|
|
39
|
-
"typescript": "^5.8.0"
|
|
40
|
-
},
|
|
41
|
-
"engines": {
|
|
42
|
-
"node": ">=18"
|
|
43
|
-
},
|
|
44
|
-
"files": [
|
|
45
|
-
"dist",
|
|
46
|
-
"skills",
|
|
47
|
-
"README.md"
|
|
48
|
-
]
|
|
49
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@appscreenshotstudio/mcp",
|
|
3
|
+
"version": "0.8.2",
|
|
4
|
+
"mcpName": "com.appscreenshotstudio/mcp",
|
|
5
|
+
"description": "MCP server for generating App Store screenshots via AppScreenshotStudio",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"homepage": "https://appscreenshotstudio.com/docs/mcp",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/TWWorks-org/mcp-server"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/TWWorks-org/mcp-server/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"mcp",
|
|
18
|
+
"model-context-protocol",
|
|
19
|
+
"app-store-screenshots",
|
|
20
|
+
"screenshot-generator",
|
|
21
|
+
"appscreenshotstudio",
|
|
22
|
+
"ai-tools"
|
|
23
|
+
],
|
|
24
|
+
"bin": {
|
|
25
|
+
"appscreenshotstudio-mcp": "dist/index.js"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc",
|
|
29
|
+
"start": "node dist/index.js",
|
|
30
|
+
"dev": "tsc --watch",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
35
|
+
"zod": "^3.25.67"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/node": "^22.0.0",
|
|
39
|
+
"typescript": "^5.8.0"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"dist",
|
|
46
|
+
"skills",
|
|
47
|
+
"README.md"
|
|
48
|
+
]
|
|
49
|
+
}
|
|
@@ -1,119 +1,124 @@
|
|
|
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), `"iphone-6.3"`, `"ipad-13"`, `"android-phone"`, `"pixel-11-pro"`, `"android-tablet-10"` (7"), `"android-tablet-large"` (10"), `"apple-watch-ultra"`
|
|
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
|
-
- `images`: local file paths
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
**
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
|
116
|
-
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
|
|
|
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), `"iphone-6.3"`, `"ipad-13"`, `"android-phone"`, `"pixel-11-pro"`, `"galaxy-s26-ultra"`, `"android-tablet-10"` (7"), `"android-tablet-large"` (10"), `"apple-watch-ultra"`
|
|
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
|
+
- `images`: local file paths, each tagged with a `kind`. Three kinds, three destinations:
|
|
72
|
+
- `kind: "screenshot"` (default): real app UI, placed inside the device frames automatically, in order. If screenshots exist in the repo (fastlane/screenshots, store assets, README images), attach them here so the set comes back with real UI in the phones instead of empty frames.
|
|
73
|
+
- `kind: "mascot"`: the app's character, placed peeking from behind the hook card's phone and on the closing card. Transparent PNG.
|
|
74
|
+
- `kind: "reference"`: a look to **match**, never placed in a frame. Use this for a competitor's App Store listing, a design the user pointed you at, or any image that already shows a phone with a headline above it. It is read for palette, type weight, headline length and composition.
|
|
75
|
+
|
|
76
|
+
**Do not tag a competitor's store screenshots as `screenshot`.** They are finished marketing cards, so placing one inside a device frame nests a phone inside a phone and ships someone else's artwork. If the user says "make it look like X" and hands you X's listing, that is `kind: "reference"`. Their own raw captures are `kind: "screenshot"`, and a message can carry both.
|
|
77
|
+
|
|
78
|
+
### Step 4: Upload App Screenshots
|
|
79
|
+
|
|
80
|
+
If screenshots were attached in Step 3 they are already in the frames. This step covers swaps and late additions. `upload-screenshots`:
|
|
81
|
+
- Takes local file paths and maps them to card indices
|
|
82
|
+
- Fills or replaces the device mockups' app UI per card
|
|
83
|
+
- Free: no credit cost
|
|
84
|
+
|
|
85
|
+
### Step 5: Show and Iterate (the core loop)
|
|
86
|
+
|
|
87
|
+
This is conversational refinement, so iterate right here in the chat. Don't send the user away to look at links.
|
|
88
|
+
|
|
89
|
+
1. **Show.** Call `render-screenshots` (free) after generating. It returns inline image previews, so the screenshots display directly in the conversation. Show them.
|
|
90
|
+
2. **Refine.** Let the user react in plain language and apply changes with `edit-screenshots`:
|
|
91
|
+
- "Want any headlines or colors changed?"
|
|
92
|
+
- "Should I add a social proof card with ratings?"
|
|
93
|
+
- "Different layout style?"
|
|
94
|
+
3. **Re-show.** Call `render-screenshots` again to display the updated set inline. Repeat the show → refine → re-show loop until the user is happy.
|
|
95
|
+
|
|
96
|
+
Hand off to the builder only when it genuinely helps: share the project URL and frame it as the place to **compare all cards side by side at full size, nudge things by hand, or export**. It is the compare-and-export step, not the required destination. Coarse, language-expressible edits ("warmer background", "swap the headline") are faster to do right here in chat.
|
|
97
|
+
|
|
98
|
+
### Step 6: Export
|
|
99
|
+
|
|
100
|
+
`render-screenshots` is also the export: it returns download URLs for the final PNGs at exact App Store dimensions, and it is free. Give the user those URLs and note they stay valid for 7 days, so download promptly (re-rendering later is free if a URL has expired). The builder project URL is the alternative when they want to compare the full set visually or hand-tweak before downloading.
|
|
101
|
+
|
|
102
|
+
## Headline Rules
|
|
103
|
+
|
|
104
|
+
Headlines must pass the "one second test": readable at thumbnail size.
|
|
105
|
+
|
|
106
|
+
**Three styles:**
|
|
107
|
+
1. Paint a moment: "Morning runs handled", "Your kitchen simplified"
|
|
108
|
+
2. State an outcome: "Never miss a workout", "Inbox zero daily"
|
|
109
|
+
3. Eliminate a pain: "No more forgotten tasks", "Ditch the spreadsheet"
|
|
110
|
+
|
|
111
|
+
**Banned:** feature lists, "and"-joined phrases, starting with "The", vague aspirational fluff.
|
|
112
|
+
|
|
113
|
+
## Credit Costs
|
|
114
|
+
|
|
115
|
+
| Tool | Cost |
|
|
116
|
+
|------|------|
|
|
117
|
+
| generate-screenshots | 5 credits |
|
|
118
|
+
| edit-screenshots | 5 credits |
|
|
119
|
+
| generate-background | 6 credits |
|
|
120
|
+
| upload-screenshots | free |
|
|
121
|
+
| render-screenshots | free |
|
|
122
|
+
| prepare-screenshot-brief | free |
|
|
123
|
+
| list-devices | free |
|
|
124
|
+
| get-project | free |
|