@appscreenshotstudio/mcp 0.2.1 → 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/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.1",
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 |