appstore-screenshot-mcp
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., "@appstore-screenshot-mcpBoot iPhone 6.9" simulator and capture screenshot."
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.
appstore-screenshot-mcp
An MCP (Model Context Protocol) server for automating App Store screenshot capture from iOS Simulator. Optimized for the 2026 App Store requirements with 6.9" iPhone and 13" iPad buckets plus accepted fallback pixel sizes.
Features
Simulator Management: List, boot, and shutdown iOS simulators with App Store-specific presets
Screenshot Capture: Capture screenshots at native resolution with automatic status bar cleanup
App Store Optimization: Pre-configured for iPhone 6.9" and iPad 13" buckets with all accepted pixel sizes
Status Bar Control: Set clean status bar (9:41, full battery, WiFi) automatically
App Management: Install, launch, and navigate apps for screenshot automation
UI Interaction: Tap, swipe, scroll, and type to navigate apps to specific screens
Video Recording: Record simulator interactions for App Store preview videos
Appearance Control: Toggle dark/light mode, set locale, adjust text size
Accessibility: Inspect UI hierarchy, find elements, configure accessibility settings
Privacy Permissions: Grant, revoke, or reset app permissions (camera, location, photos, etc.)
Push Notifications: Send simulated push notifications for UI testing
Location Simulation: Set GPS coordinates or use preset locations
System Alerts: Accept or dismiss permission dialogs automatically
Keychain & Biometrics: Manage keychain, trigger Face ID/Touch ID
Device Frames: Add device bezels for professional screenshots
Validation: Verify screenshots meet App Store requirements
Related MCP server: iOS Device Control MCP Server
Installation
Via npx (recommended)
npx appstore-screenshot-mcpFrom source
git clone https://github.com/your-org/mcp-screen-iOS.git
cd mcp-screen-iOS
npm install
npm run buildRequirements
macOS with Xcode installed
Xcode Command Line Tools (
xcode-select --install)iOS 26+ Simulator runtimes
Node.js 18+
Configuration
Claude Code
Add to ~/.claude.json or project .mcp.json:
{
"mcpServers": {
"appstore-screenshots": {
"type": "stdio",
"command": "npx",
"args": ["-y", "appstore-screenshot-mcp"]
}
}
}Or via CLI:
claude mcp add appstore-screenshots npx appstore-screenshot-mcpCodex CLI
Add to ~/.codex/config.toml:
[mcp_servers.appstore-screenshots]
command = "npx"
args = ["-y", "appstore-screenshot-mcp"]Available Tools
Simulator Management
Tool | Description |
| List available iOS simulators with filtering options |
| Create and boot a simulator matching App Store size requirements |
| Shutdown and optionally delete a simulator |
| Get info about currently booted simulator(s) |
Screenshot Capture
Tool | Description |
| Capture screenshot to file with status bar and notch options |
| Capture and return as base64 image (for AI vision) |
| Capture screenshots for all App Store sizes |
| Configure status bar (time, battery, WiFi, cellular) |
| Reset status bar to system defaults |
| Verify screenshot meets App Store requirements |
App Management
Tool | Description |
| Install a .app bundle on simulator |
| Launch app by bundle ID |
| Stop a running app |
| Remove app from simulator |
| Open URL or deep link (for navigation) |
| List installed apps |
| Get app data/container path |
UI Interaction
Tool | Description |
| Tap at specific coordinates (in points) |
| Swipe from one point to another |
| Scroll in a direction (up/down/left/right) |
| Type text into focused input field |
| Press hardware buttons (home, lock, volume, shake, toggleAppearance) |
| Get accessibility tree for finding element coordinates |
Video Recording
Tool | Description |
| Start recording video from the simulator |
| Stop recording and save the video file |
| Check if recording is in progress |
Appearance Control
Tool | Description |
| Set light or dark mode |
| Get current appearance mode |
| Toggle between light and dark mode |
| Set locale and language (e.g., en_US, ja_JP) |
| Set Dynamic Type text size |
| Configure accessibility options (reduce motion, bold text, etc.) |
Accessibility Inspection
Tool | Description |
| Get the full UI accessibility hierarchy |
| Get element info at specific coordinates |
| Search for elements by label, identifier, or type |
| Get screen dimensions and device info |
App Store Screenshot Sizes (2026)
Privacy Permissions
Tool | Description |
| Grant a permission (camera, photos, location, etc.) |
| Revoke a previously granted permission |
| Reset permission to default (will prompt again) |
| Grant all common permissions at once |
| List all available permission types |
Push Notifications
Tool | Description |
| Send a push notification with title, body, badge |
| Send a raw APNS JSON payload |
| Send a silent/background notification |
Location Simulation
Tool | Description |
| Set GPS coordinates (latitude, longitude) |
| Set to a preset city (Tokyo, London, NYC, etc.) |
| Clear location override |
| Simulate movement along a GPX route |
| List available preset locations |
System Alerts
Tool | Description |
| Accept/tap Allow on system dialogs |
| Dismiss/tap Don't Allow on dialogs |
| Activate Siri |
| Send memory warning to apps |
| Trigger iCloud sync |
Keychain & Biometrics
Tool | Description |
| Clear all stored credentials |
| Add a credential to keychain |
| Trigger Face ID/Touch ID match or failure |
| Enroll or unenroll biometrics |
Device Frames
Tool | Description |
| Add device bezel around screenshot |
| Add solid background with padding |
| List available device frames |
App Store Screenshot Sizes (2024+)
Apple's 2026 requirements focus on two primary display buckets, with multiple accepted pixel sizes per bucket:
Platform | Required Size | Accepted Dimensions (portrait) | Recommended Simulator |
iPhone | 6.9" (or 6.5" if 6.9" isn't provided) | 1320x2868, 1290x2796, 1260x2736 | iPhone 17 Pro Max |
iPad | 13" | 2064x2752, 2048x2732 | iPad Pro 13" (M5) |
The server validates against all accepted sizes for each bucket and reports whether a screenshot matches in portrait or landscape.
Example Workflows
Basic Screenshot Capture
1. Boot iPhone simulator: boot_appstore_simulator(deviceClass: "iphone_6.9")
2. Install your app: install_app(appPath: "/path/to/MyApp.app")
3. Launch app: launch_app(bundleId: "com.example.myapp")
4. Navigate to screen (if needed): open_url(url: "myapp://feature")
5. Capture screenshot: capture_screenshot(outputPath: "./screenshots/home.png")Full App Store Screenshot Set
1. Boot both required simulators:
- boot_appstore_simulator(deviceClass: "iphone_6.9")
- boot_appstore_simulator(deviceClass: "ipad_13")
2. Install app on both (use UDIDs from step 1)
3. Navigate to desired screen
4. Capture all: capture_all_appstore(outputDir: "./screenshots")Clean Status Bar Only
set_status_bar(
time: "9:41",
batteryLevel: 100,
batteryState: "charged",
wifiMode: "active",
wifiBars: 3
)Navigate with UI Interactions
1. Launch app: launch_app(bundleId: "com.example.myapp")
2. Tap settings button: ui_tap(x: 350, y: 50)
3. Scroll down: ui_scroll(direction: "down", distance: 400)
4. Type in search: ui_type(text: "profile")
5. Toggle dark mode: ui_press_button(button: "toggleAppearance")
6. Capture screenshot: capture_screenshot(outputPath: "./screenshots/settings-dark.png")Record App Store Preview Video
1. Boot simulator: boot_appstore_simulator(deviceClass: "iphone_6.9")
2. Launch app: launch_app(bundleId: "com.example.myapp")
3. Start recording: start_recording(outputPath: "./videos/preview.mp4")
4. Perform interactions: ui_tap, ui_scroll, etc.
5. Stop recording: stop_recording()Capture Screenshots in Multiple Languages
1. Set locale: set_locale(locale: "ja_JP")
2. Terminate app: terminate_app(bundleId: "com.example.myapp")
3. Launch app: launch_app(bundleId: "com.example.myapp")
4. Capture: capture_screenshot(outputPath: "./screenshots/home_ja.png")
5. Repeat for other locales (fr_FR, de_DE, etc.)Light and Dark Mode Screenshots
1. set_appearance(mode: "light")
2. capture_screenshot(outputPath: "./screenshots/home_light.png")
3. set_appearance(mode: "dark")
4. capture_screenshot(outputPath: "./screenshots/home_dark.png")Grant Permissions Before Screenshots
1. grant_all_permissions(bundleId: "com.example.myapp")
2. launch_app(bundleId: "com.example.myapp")
3. -- App won't show permission dialogs, clean screenshots!
4. capture_screenshot(outputPath: "./screenshots/camera_feature.png")Capture Notification UI
1. launch_app(bundleId: "com.example.myapp")
2. send_notification(bundleId: "com.example.myapp", title: "New Message", body: "You have a new message!")
3. -- Wait for notification banner
4. capture_screenshot(outputPath: "./screenshots/notification.png")Location-Based Screenshots
1. set_preset_location(preset: "tokyo")
2. launch_app(bundleId: "com.example.myapp")
3. capture_screenshot(outputPath: "./screenshots/map_tokyo.png")
4. set_preset_location(preset: "new_york")
5. capture_screenshot(outputPath: "./screenshots/map_nyc.png")Add Device Frame to Screenshot
1. capture_screenshot(outputPath: "./screenshots/home.png")
2. add_frame(inputPath: "./screenshots/home.png", shadow: true)
3. -- Creates home_framed.png with device bezelResources
The server exposes an MCP resource for device configurations:
appstore-screenshot-mcp://devicesThis returns the supported App Store device presets with their identifiers and resolutions.
Development
# Install dependencies
npm install
# Build
npm run build
# Run in development (with watch)
npm run dev
# Type check
npm run typecheckHow It Works
The server wraps xcrun simctl commands and AppleScript to provide:
Device Creation: Uses
simctl createwith exact device type identifiers for App Store sizesStatus Bar Override: Uses
simctl status_bar overridefor clean screenshotsScreenshot Capture: Uses
simctl io screenshotwith--mask=blackfor notch handlingApp Control: Uses
simctl install/launch/terminatefor app lifecycleUI Interaction: Uses AppleScript to control Simulator.app for taps, swipes, and keyboard input
Video Recording: Uses
simctl io recordVideowith H.264/HEVC codecsAppearance Control: Uses
simctl ui appearanceandsimctl spawn defaultsfor settingsAccessibility: Uses
simctl ui describefor UI hierarchy inspectionPrivacy: Uses
simctl privacy grant/revoke/resetfor permission managementNotifications: Uses
simctl pushto send APNS payloadsLocation: Uses
simctl location set/clearfor GPS simulationBiometrics: Uses
notifyutilto trigger Face ID/Touch ID eventsDevice Frames: Uses ImageMagick (if available) or sips for image processing
All commands are executed via Node.js child processes with proper error handling.
License
MIT
This server cannot be installed
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 Servers
- Alicense-qualityDmaintenanceEnables AI assistants to automate iOS Simulator interactions including device management, UI element interaction (tap, swipe, type), screenshot capture, and execution of YAML-defined navigation workflows.8MIT
- Alicense-qualityDmaintenanceEnables comprehensive control of iOS simulators and real devices through AI assistants, supporting app management, UI automation, screenshots, media operations, and location simulation for iOS development and testing workflows.5MIT
- FlicenseAqualityCmaintenanceGenerates beautiful App Store and Play Store screenshots by inserting app images into iPhone/iPad mockup frames with customizable text overlays and gradient backgrounds. Supports multiple device types and batch generation with both free and pro subscription tiers.8
- Alicense-qualityDmaintenanceEnables AI assistants to control iOS Simulators and automate browsers by combining xcrun simctl, fb-idb, and Puppeteer for screenshot capture, device management, gestures, navigation, and DOM interaction.92MIT
Related MCP Connectors
Create App Store screenshots, icons, ASO copy, localization, and revisions via hosted MCP.
Generate PWA icon sets and iOS splash screens from a text prompt or an existing image.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hashgh0st/mcp-screen-iOS'
If you have feedback or need assistance with the MCP directory API, please join our Discord server