Build store screenshots from your AI client
mockscreens runs a remote MCP server at /api/mcp. Connect it to Claude Code, Cursor or any other MCP client and build a complete App Store and Google Play listing by describing it — upload your screenshots, get device frames, marketing copy, backgrounds and language variants, all written straight into your account. Included with every paid plan — Pay-per-App and Studio.
What you can do with it
- Creates a project, adds slides, and places your screenshot inside a real device frame — you describe the slide, the server computes every coordinate.
- Takes screenshots straight from your machine or CI: it hands your client a ready-to-run upload command, so a fresh simulator capture becomes a store image without a browser.
- Adds a second store surface: the same copy laid out for Google Play's canvas alongside App Store.
- Clones a set into a localized variant and hands your client every string to translate, then writes the translations back and re-flows each text box to fit.
- Publishes a finished project to the public template gallery.
The tools are task-level, not a mirror of the database. You choose a layout, the copy and a palette; the server decides every pixel. That keeps your client out of a 1290×2796 coordinate space it cannot see, and means the same call produces a correct slide on an iPhone and on an iPad.
Connecting a client
Open your profile and create a token under MCP access tokens. Give it a name, pick an expiry, and copy the value — it is shown once and never again, because we store only a hash of it.
Then point your client at the server:
claude mcp add --transport http mockscreens \
https://mockscreens.com/api/mcp \
--header "Authorization: Bearer msk_live_..."Cursor and VS Code take the same URL and the same Authorization header in their MCP configuration. The transport is streamable HTTP; there is nothing to install and nothing to run locally.
Tokens are not tied to a browser session, so the same one works from a CI job that captures simulator screenshots and rebuilds the whole listing on every release. Revoke it from your profile and it stops working immediately.
What a session looks like
You: Build an App Store listing for my finance app from
these three simulator screenshots. Dark background,
lime headlines, then add Russian and English.
Tools: list_devices → iPhone 16 Pro Natural Titanium
create_project → projectId, editor URL
upload_screenshot → one upload command for the set
curl × 3 → three screenshot URLs
add_slide × 3 → headline, subhead, framed device
add_locale ru → returns 6 strings to translate
set_texts → translations written, boxes re-flowed
get_project → read back and confirmEvery call is recorded against your account and the token that made it, so you can see exactly what a client did on your behalf.
Tool reference
| Tool | What it does |
|---|---|
| list_presets | Every App Store and Google Play size, with canvas dimensions. |
| list_devices | The device-mockup catalogue, searchable by name. |
| list_locales | Locale codes and which store accepts each one. |
| list_layouts | Named slide layouts. The server owns the geometry. |
| list_projects | Your projects and the limits your plan allows. |
| create_project | New project with its first platform set and palette. |
| add_platform_set | A second store surface — Google Play beside App Store. |
| upload_screenshot | Returns a ten-minute upload command; the file itself goes over HTTP. |
| list_uploads | Images already in a project, with their URLs. |
| add_slide | Background, headline, subhead and a framed device, laid out for you. |
| add_locale | Clones a set into a language variant and returns its strings. |
| set_texts | Writes copy into layers and resizes each box to fit. |
| get_project | Slide-by-slide readback for verifying what was built. |
| publish_template | Publishes the project to the template gallery. |
Limits and honest caveats
- A paid plan is required — Pay-per-App or Studio. The free plan gets a clear error naming the plan it is on.
- 300 calls per hour per account, counted server-side.
- Screenshots come from you. The server frames, arranges and localizes them — it does not invent app UI.
- Translation happens in your client, not on our servers: add_locale hands you the strings and set_texts takes them back.
- Uploading a screenshot needs a client that can run a command — Claude Code, Cursor, a CI job. A client that cannot gets a link to hand you instead, and picks the files up once you have dropped them in.
- Claude Code, Cursor and VS Code connect with a token header today. The one-click connector on claude.ai needs OAuth, which is not live yet.
Frequently asked questions
What is the mockscreens MCP server?
A remote Model Context Protocol server at https://mockscreens.com/api/mcp. Any MCP client — Claude Code, Cursor, VS Code — can connect to it and build App Store and Google Play screenshot sets through a set of tools, without opening the editor.
Which plan includes MCP access?
Both paid plans: Pay-per-App and Studio. Access is checked on every call against your current plan, so it takes effect the moment you upgrade and stops the moment the plan lapses.
How do I authenticate?
With a personal access token that starts with msk_live_. Create one in your profile under MCP access tokens, then send it as a normal Authorization: Bearer header. Only a hash is stored, so the value is shown exactly once, at creation.
Does the MCP server translate my screenshots?
No — and that is deliberate. add_locale returns every string with its layer id, your own model translates them, and set_texts writes them back. You are not paying twice for a translation your client can already do. The in-editor Re-translate button still uses our translation service for people working in the browser.
How do my screenshots reach the server?
upload_screenshot hands your client a curl command carrying a ticket that is good for ten minutes, and the file goes straight to our storage over HTTPS. It is not sent through the model: tool arguments are written out token by token, so a one-megabyte PNG encoded as text would be some half a million tokens — more than any model can produce in one turn. The command keeps the picture out of the conversation entirely, and your access token out of your shell history.
Can I use it in CI?
Yes. A token is not tied to a browser session, so a pipeline can capture simulator screenshots, upload them and rebuild the whole listing on every release.
What happens to my token if it leaks?
Revoke it. Revoked tokens stop working immediately, and every call is recorded against the token that made it, so you can see what was done.
Point your AI client at mockscreens.
MCP access comes with any paid plan. Everything it builds opens in the same editor, so you can take over by hand whenever you want.