Make and upload App Store screenshots from Cursor
Point Cursor at your raw simulator captures. MetaRun's Screenshot Studio lays them out in device frames with captions, translates the captions, renders every slide on the server, and uploads them to App Store Connect once you approve.
Setup checked October 2026 against Cursor MCP docs, Cursor CLI
Connect Cursor once
01 · Add to ~/.cursor/mcp.json (or .cursor/mcp.json for one project)
{
"mcpServers": {
"metarun": {
"url": "https://metarun.dev/api/mcp"
}
}
}02 · Or use the install link
Opens Cursor with the server filled in.
https://cursor.com/link/mcp/install?name=metarun&config=eyJ1cmwiOiJodHRwczovL21ldGFydW4uZGV2L2FwaS9tY3AifQ%3D%3D03 · Sign in
When Cursor connects, MetaRun opens in your browser. Pick read-only or read and change, and you're back in the editor with the tools listed under MCP.
Prefer a personal access token (scripts, CI)?
Use a token instead
Mint a personal access token in MetaRun under Settings, MCP. It's shown once and can be revoked any time. Cursor reads ${env:METARUN_TOKEN} from your environment. Some Cursor versions start the browser sign-in even when a header is set; if that happens, signing in works the same.
{
"mcpServers": {
"metarun": {
"url": "https://metarun.dev/api/mcp",
"headers": { "Authorization": "Bearer ${env:METARUN_TOKEN}" }
}
}
}What Cursor handles here
Screenshots are the part of a release people dread: frame every capture, write captions that fit, redo it all per language, export at Apple's sizes, then upload ten images per display size per language by hand.
MetaRun's studio is fully tool-driven, so Cursor can build a project, apply a template, set captions, translate them, render previews you can look at, and then upload. Uploads go through the same preview gate as every other write.
Before you start
- Raw captures of your app: simulator screenshots, UI test output or exported images.
- An editable version to upload to.
- For iPhone Duo, app previews or creative assets: the App Asset Library tools.
How it runs
- 01
Start from your captures
Local files get an https URL with npx metarun upload, or the studio's own upload tools. Cursor creates a project and assigns one capture per slide.
- 02
Design and caption
The agent applies a template and writes captions. Every slide can be rendered on the server and returned as an image, so you see the real result in the conversation.
- 03
Translate
Captions are translated per language, and the lint flags text that overflows its frame in a longer language.
- 04
Upload behind a preview
Each upload previews the target set, size and position. The confirm token is bound to the image bytes, so what you approved is exactly what reaches Apple.
An example session in Cursor
Build App Store screenshots from the images in @assets/store and caption them.
- studio_create_projectProject created with six slides, one capture each.
- Cursor asks before running studio_apply_template. You read the preview above and approve.
- studio_apply_templateKeynote template applied: background, device frame, caption type.
- studio_render_slideSlide 1 rendered at 1320 x 2868 and shown in the conversation.
- apple_preview_upload_screenshotPreview: slide 1 to the iPhone 6.9-inch set, English (U.S.), position 1.
- Cursor asks before running apple_apply_upload_screenshot. You read the preview above and approve.
- apple_apply_upload_screenshotUploaded. Apple is processing the image.
Illustrative: your apps, versions and numbers will differ. The tool names and their order are real.
The MetaRun tools Cursor calls
| Tool | What it does |
|---|---|
| studio_create_projectMetaRun | A new screenshot project for the app. |
| studio_apply_templateMetaRun | One of eight complete designs: background, device placement, caption type. |
| studio_set_slide_textMetaRun | Captions per slide and per language. |
| studio_translate_slidesMetaRun | Translate every caption into the project's languages. |
| studio_render_slideMetaRun | Render a slide on the server so you can see it before anything uploads. |
| studio_lint_assetsread | Check captions against Apple's asset rules. |
| apple_preview_upload_screenshotpreview + apply | Upload one rendered image to a screenshot set. The token is bound to the image's MD5. |
| apple_preview_reorder_screenshotspreview + apply | Set the order shoppers see. |
| apple_preview_upload_library_assetpreview + apply | Upload to Apple's App Asset Library (API 4.5.1), needed for app previews and iPhone Duo. |
Each preview has an apply twin (the same name with apply instead of preview) that only runs with the confirm token from a fresh preview, and refuses if App Store Connect changed in between. MetaRun tools save to your MetaRun workspace only (studio projects, tracked keywords), never to Apple.
What Apple enforces, and how MetaRun handles it
Ten screenshots per display size per language
Apple caps each set at ten. The first three are what most shoppers see in search results, which is why order is its own tool.
Uploads come from https URLs
MetaRun fetches the image from an https URL behind an SSRF guard, checks its size and type from the bytes, and binds the confirm token to the file's MD5.
iPhone Duo needs the App Asset Library
Apple's older screenshot sets have no iPhone Duo display type, and Apple requires Duo screenshots on submissions from April 2027. Duo, app preview videos and creative assets go through the library tools.
Server renders skip the 3D frame
Slides rendered on the server use the 2D device frame. 3D mockups render in the studio in your browser; the tool says so in its notes when it falls back.
What to ask Cursor
- Ask Cursor: Build App Store screenshots from the images in @assets/store and caption them.
- Ask Cursor: Make slide 2's caption shorter and highlight 'offline'.
- Ask Cursor: Upload the rendered set to the iPhone 6.9-inch display for English.
Run it from a script with Cursor
The Cursor CLI runs one request without the editor with agent -p. Allow only the read tools the request needs in ~/.cursor/cli-config.json (Mcp(metarun:tool_name) rules), and keep MetaRun's apply tools out of that list.
Read-only check, safe to schedule
agent -p "List the screenshot sets on the editable version of com.example.app, with the count per display size and language. Read only." --output-format jsonDon't run it with --force for MetaRun: that approves every tool, applies included.
How Cursor asks before a change
Cursor asks before each MCP tool call by default, following your Run Mode settings. Keep MetaRun's apply tools on ask: that prompt is the confirm step for every App Store change. In the Cursor CLI, allow rules live in ~/.cursor/cli-config.json in the form Mcp(server:tool), so you can allow MetaRun's read tools and leave the applies out.
Frequently asked questions
Can Cursor upload screenshots from my machine?
Yes, via an https URL. npx metarun upload <file> returns one for a local PNG or JPEG, and the studio tools take uploads directly. The upload itself runs on MetaRun's servers with your Apple key, which never touches your machine.
Do I have to use MetaRun's studio?
No. If you already have final images, Cursor can upload and order them directly with the screenshot tools. The studio is for when you want framing, captions and translations done too.
What sizes does it support?
Every display size Apple lists for screenshot sets, plus the App Asset Library's catalog for newer placements such as iPhone Duo. apple_get_asset_catalog returns Apple's current specs.
Can I see the screenshots before they go up?
Yes. studio_render_slide returns each slide as an image and studio_store_preview shows them in App Store context. Nothing uploads until you approve the apply.
How do I connect Cursor to App Store Connect?
Add https://metarun.dev/api/mcp to ~/.cursor/mcp.json (or use the install link) and sign in to MetaRun when Cursor opens your browser. After that, ask for "screenshots" in plain words and Cursor picks the MetaRun tools.
Does Cursor see my App Store Connect key?
No. Your App Store Connect API key stays envelope-encrypted on MetaRun's servers and is decrypted per request. Cursor holds a MetaRun token that you can revoke in Settings at any time.
More with Cursor
Cursor
Localize your listing
Name, subtitle, keywords and description in every App Store language, limits checked.
OpenCursor
Submit for review
Attach the build, clear export compliance, run the readiness sweep, submit.
OpenCursor
ASO keywords
Find keywords from App Store autocomplete, track ranks, and lint your metadata.
OpenCursor
Release notes
Write What's New from your changelog and stage it in every language.
OpenScreenshots with another agent
In depth: Screenshot studio
Agent access
14-day free trial with agent access. No credit card. Your Apple key stays encrypted on MetaRun.