app-store-screenshots-mcp
Generates store-ready screenshots for iOS App Store listings, including device frames, typography, and branded overlays.
Generates store-ready screenshots for Google Play listings, including device frames, typography, and branded overlays.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@app-store-screenshots-mcpgenerate screenshots for my coffee tracker app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
app-store-screenshots-mcp
MCP server that turns raw in-app screenshots into beautiful, store-ready marketing images for the iOS App Store and Google Play.
Creative split (same session)
Who | Does what |
Host AI agent (you) | In this session: write titles/subtitles, generate backgrounds, generate clipart, choose layouts & alignment, pick brand colors |
This MCP server | Device frames, composite layers, typography render, exact pixel export |
The server does not invent marketing art. Call get_session_design_guide first, generate assets with your image tools, then compose.
Related MCP server: ShipKit
Features
Session design guide — prompts + plan for backgrounds, clipart, copy, alignment
AI clipart overlays — transparent PNGs with position/rotate/opacity
AI-directed layout — presets +
customwithdevicePlacement/captionStyleiPhone mockup + CSS Android frame
Exact App Store / Play sizes, opaque PNG, batch +
manifest.json
Install
npm install
npx playwright install chromium
npm run buildGrok (~/.grok/config.toml)
[mcp_servers.app-store-screenshots]
command = "node"
args = ["/absolute/path/to/app-store-screenshots-mcp/dist/index.js"]
startup_timeout_sec = 60
tool_timeout_sec = 300Tools
Tool | Purpose |
| Start here — per-slide AI prompts, copy rules, layout plan |
| Size ids and dimensions |
| Layout templates including |
| Compose one slide |
| Compose 1–10 slides + manifest |
Same-session agent workflow
Guide —
get_session_design_guide({ appName, features, styleDirection, brandColors, platform })Copy — write headline + optional subheadline per slide (from guide rules)
Backgrounds — image-gen one portrait BG per slide (guide
promptTemplate; no text/phone/UI)Clipart — image-gen transparent decorative PNGs; place with
clipart[]Alignment — pick layout or
custom+devicePlacement/captionStyleCompose —
generate_screenshot_setwith absolute pathsShip — deliver numbered PNGs to the user
Example compose payload
{
"platform": "ios",
"sizes": ["ios-6.9"],
"outputDir": "/tmp/store-shots",
"brand": {
"textColor": "#FFFFFF",
"accentColor": "#A5B4FC",
"fontFamily": "Inter, system-ui, sans-serif"
},
"slides": [
{
"appScreenshot": "/path/to/home.png",
"backgroundImage": "/path/to/session/bg-01.png",
"headline": "Track every\ncoffee you buy",
"subheadline": "A home for every bag",
"label": "Brew Log",
"layout": "hero",
"captionStyle": { "align": "center", "textShadow": true },
"clipart": [
{
"path": "/path/to/session/clipart-01.png",
"xPercent": 70,
"yPercent": 16,
"widthPercent": 24,
"rotateDeg": -10,
"opacity": 0.95
}
]
},
{
"appScreenshot": "/path/to/detail.png",
"backgroundImage": "/path/to/session/bg-02.png",
"headline": "Never waste\na great bag",
"layout": "custom",
"devicePlacement": {
"widthPercent": 80,
"leftPercent": 15,
"bottomPercent": -8,
"rotateDeg": 3
},
"captionStyle": {
"position": "top",
"align": "left",
"offsetTopPercent": 6,
"offsetXPercent": 8,
"textShadow": true
}
}
]
}Export sizes
Id | Platform | Pixels |
| iOS | 1320×2868 |
| iOS | 1284×2778 |
| iOS | 1206×2622 |
| iOS | 1125×2436 |
| Android | 1080×1920 |
| Android | 1080×2340 |
Development
npm test
npm run buildLicense
MIT
Available Tools
5 toolsgenerate_screenshotA
Compose one store screenshot from user app UI + YOUR in-session AI assets (background, clipart, titles, alignment). Writes opaque PNGs at store sizes.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | ||
| label | No | AI-written small category label above the headline | |
| sizes | No | Size ids from list_export_sizes, e.g. ["ios-6.9"]. Defaults to platform primary. | |
| layout | No | Layout template. Use custom + devicePlacement/captionStyle for fully AI-directed alignment. Vary across slides. | |
| clipart | No | AI-generated decorative images (clipart, icons, stickers, blobs) with positions. Generate in the same session. | |
| gradient | No | Optional CSS gradient under/over AI background; also used when backgroundImage omitted | |
| headline | Yes | AI-written headline. Use \n for line breaks. 3–5 words per line, one idea. | |
| platform | Yes | Target store platform | |
| vignette | No | Soft dark vignette for text contrast (default true when backgroundImage set) | |
| outputDir | Yes | Absolute directory path to write PNG files | |
| deviceFrame | No | Device frame style. Defaults: iphone for ios, android for android. | |
| subheadline | No | AI-written subtitle under the headline | |
| captionStyle | No | AI-chosen title/subtitle alignment and placement | |
| appScreenshot | Yes | Absolute path to the in-app screenshot PNG/JPG (user-provided) | |
| filenamePrefix | No | Filename prefix, e.g. "01-hero" (default: "screenshot") | |
| backgroundColor | No | Solid fallback only if no AI background/gradient | |
| backgroundImage | No | REQUIRED for best quality: absolute path to AI-generated background for this slide (same session). Portrait ~master size. | |
| devicePlacement | No | AI-chosen phone position overrides (use with any layout; required for layout=custom) | |
| appScreenshotSecondary | No | Optional second screenshot for two-phone layout |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description to carry the full burden. It mentions writing PNG files and using 'in-session AI assets', but does not disclose side effects (e.g., overwriting behavior), required permissions, or behavior on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main action and lists key inputs. It is relatively concise with no wasted words, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (19 parameters, nested objects) and lack of output schema, the description covers the essential inputs and output but does not detail behavioral aspects like layout options or the need for in-session asset generation. Schema descriptions fill some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 95%, so baseline is 3. The description adds high-level context (combining user screenshot with AI assets) but does not provide parameter-specific meaning beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Compose', the resource 'one store screenshot', and specifies inputs (user app UI, AI assets) and output (opaque PNGs at store sizes). It distinguishes from sibling 'generate_screenshot_set' by implying single screenshot vs. multiple.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for composing a single screenshot with AI assets but does not explicitly state when to use this tool versus alternatives like generate_screenshot_set. No when-not guidance or mention of prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_screenshot_setB
Compose a full ordered set (1–10). Each slide should include AI-written copy, AI background path, optional AI clipart, and AI-chosen layout/alignment. Writes numbered PNGs + manifest.json.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | ||
| sizes | No | ||
| slides | Yes | Ordered slides. Each should include AI-generated background, AI copy, optional AI clipart, and AI-chosen layout/alignment. | |
| platform | Yes | ||
| outputDir | Yes | Absolute directory path to write PNG files | |
| deviceFrame | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states outputs (numbered PNGs + manifest.json), but does not disclose side effects, error conditions, or permission requirements. Basic transparency but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, no fluff. However, it could be slightly restructured to separate the output specification for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, nested objects, no output schema), the description is too brief. It lacks return value details, error handling, and input structure guidance beyond a high-level summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33%, yet the description provides only high-level guidance about slide content (AI-written copy, background, etc.) without detailing parameters. It does not fully compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool composes a full ordered set of 1-10 slides with AI-written copy, background, clipart, and layout. It distinguishes from sibling tools like 'generate_screenshot' by specifying it produces a set, not a single screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for multiple slides, but does not mention when to choose this over 'generate_screenshot' or other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_design_guideA
START HERE. Returns a same-session plan: per-slide layout suggestions, AI background prompts, clipart prompts, copy rules, and alignment guidance. Call this before generating any images or composing screenshots.
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | App name | |
| hasIpad | No | ||
| features | Yes | Features in priority order (one idea per slide) | |
| platform | No | ios | |
| slideCount | No | How many screenshots (default: min(features, 6)) | |
| brandColors | No | Brand hex colors if known | |
| styleDirection | Yes | Style: e.g. warm/organic, dark/moody, clean/minimal, bold/colorful, gradient-heavy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the transparency burden. It describes the tool as returning a plan, implying it is non-destructive and safe, but does not explicitly state idempotency, side effects, or auth requirements—adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with critical information front-loaded ('START HERE'), no filler—every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description enumerates what the tool returns (layout suggestions, prompts, rules, guidance) and places it in a workflow context, making it sufficiently complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 71% schema description coverage, baseline is 3. The description adds no parameter-specific details beyond what the schema already provides, thus not improving parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a 'same-session plan' with specific content (layout suggestions, prompts, rules, guidance) and positions itself as the starting point ('START HERE'), distinguishing it from sibling tools that generate screenshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs the agent to 'Call this before generating any images or composing screenshots', providing direct guidance on when to use this tool relative to others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_export_sizesA
List supported App Store and Play Store screenshot export sizes (ids, labels, dimensions).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavior: it is a read-only listing operation with no side effects. It clearly states the output contains ids, labels, and dimensions for two platforms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that front-loads the verb and resource, and includes all essential details without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema, no nested objects), the description is complete. It explains what the tool lists, for which platforms, and the nature of the data returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and baseline for zero-parameter tools is 4. The schema coverage is 100% trivially, so the description adds no further param information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly uses verb 'List' with specific resource 'supported App Store and Play Store screenshot export sizes', and explicitly mentions the data fields (ids, labels, dimensions). It distinguishes from sibling tools like generate_screenshot and list_layouts which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Context is clear: this tool is for enumerating available export sizes before generating screenshots. However, it does not explicitly state when not to use it or provide alternatives, so it scores 4 instead of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layoutsA
List layout templates including custom (AI-directed). Prefer get_session_design_guide for a full creative plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. 'List' implies read-only, but no explicit statement about safety, auth requirements, or side effects. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Key action and sibling alternative front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple listing tool with no output schema. Description covers purpose and sibling but omits details about output format, return data, or any caveats. Adequate but could be more complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema (100% coverage), so baseline is 3. Description correctly adds no parameter info, but with zero params, no compensation needed. Score reflects adequate handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Verb 'list' clearly indicates retrieval, resource 'layout templates' is specific, and 'including custom (AI-directed)' adds scope. Differentiates from sibling get_session_design_guide via direct mention, making purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to prefer the alternative tool ('Prefer get_session_design_guide for a full creative plan'), guiding appropriate use. No other exclusions needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.1.0- First observed
generate_screenshot - First observed
generate_screenshot_set - First observed
get_session_design_guide - First observed
list_export_sizes - First observed
list_layouts
TDQS
Scored across 5 tools
Each tool has a distinct purpose: generating single or multiple screenshots, retrieving a design guide, listing export sizes, and listing layout templates. No overlapping functionality, making selection unambiguous.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., generate_screenshot, get_session_design_guide). The naming is predictable and uniform across the set.
With 5 tools, the set is appropriately scoped for the domain of generating app store screenshots. Each tool fills a necessary role without redundancy or deficiency.
The tool set covers the full workflow: planning via design guide, configuration via export sizes and layouts, and execution via single or batch screenshot generation. No obvious gaps for the intended purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create App Store screenshots, icons, ASO copy, localization, and revisions via hosted MCP.
Generate designed, localized App Store screenshot sets from your raw app captures.
Generate exact-size App Store and Google Play screenshots, feature graphics, and listing copy.
MCP server for Appcircle mobile CI/CD platform.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for ScreenshotFreeAPI – capture website screenshots, render HTML/PDF, and fetch app store listing screenshots from any MCP-compatible AI client.75MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for shipping iOS apps, enabling screenshots of simulators, managing App Store Connect metadata, and submitting apps for review.5MIT
- AlicenseAqualityAmaintenanceAn MCP server that turns raw app screenshots into polished, pixel-perfect store listing visuals with device frames, benefit-driven headlines, brand colors, and exact store dimensions for iOS and Android.59620MIT
- AlicenseNot gradedqualityCmaintenanceUnofficial MCP server for appshots.design that enables AI assistants to search and view real app screenshots for grounded design research.62MIT