The App Store screenshot MCP server
Shotlingo runs a hosted MCP server. Add it as a custom connector and Claude can adapt a template into a project, translate the captions, render every page at real store sizes and push the finished set to your listing, all without anyone opening the editor.
https://mcp.shotlingo.com/mcp Requires a paid Shotlingo plan. See the plans.
A screenshot studio your AI agent can drive
MCP is the open standard that lets an assistant call real tools instead of describing what it would do. Shotlingo exposes the editor's own pipeline through it.
Hosted, not installed
The server runs on our infrastructure and speaks Streamable HTTP. There is no package to install, no local process to babysit and no operating system requirement, so the same connector follows you between machines.
It writes to your real projects
Projects the agent creates are ordinary Shotlingo cloud projects. Open one in the editor afterwards, nudge a caption, and export by hand. The agent is another way in, not a separate silo.
It renders actual pixels
Renders come out of the same engine the editor uses, with the same 693 device mockups and the same store size presets, so what the agent produces is a file you can upload rather than a mock of one.
The Claude connector for App Store screenshots
Four steps, one URL, no key to rotate. Setup is the same in the Claude apps and in Claude Code.
- 1
Open the connector settings in Claude
In the Claude apps, go to Settings, then Connectors, then Add custom connector.
- 2
Paste the server URL
The only value the form needs is https://mcp.shotlingo.com/mcp. There is no API key, no client id and no config file to edit.
- 3
Sign in through OAuth
Claude opens a Shotlingo consent page. Signing in there registers the client automatically (OAuth 2.1 with PKCE and dynamic client registration), and the server decides the granted scope rather than trusting whatever the client asked for.
- 4
Ask for screenshots
Once the connector is green, ask Claude to list your templates, adapt one into a project, translate the captions and render the set. The tools appear in the tool picker with plain English titles.
Working from the terminal
Claude Code registers remote servers over the same HTTP transport, so the endpoint above is all it needs too. Add it once with the Claude Code MCP command using the HTTP transport, sign in when the OAuth page opens, and the tools show up alongside your local ones.
15 tools, split by what they can touch
Reads and writes are separate tools, and every one carries the MCP safety annotations, so your client can tell a lookup from something that changes a live listing.
| Tool | What it does | Kind |
|---|---|---|
list_templates | Browse the screenshot templates available to your account. | Read |
get_template | Open one template and see its pages, canvas and text slots. | Read |
list_projects | List the cloud projects belonging to the signed in account. | Read |
get_usage | Report the remaining daily quota for the account. | Read |
get_batch_status | Poll a batch render job and collect the per language result URLs. | Read |
list_app_store_apps | Discover the connected App Store Connect apps and their ids. | Read |
list_google_play_apps | Check which Google Play app the connected account can write to. | Read |
create_project | Create a cloud project inside the account tier limit. | Write |
adapt_template | Turn a template into a new project at a chosen export size. | Write |
update_project | Change a project name, export size, language set or linked app. | Write |
set_translations | Write caption translations back into a project, slot by slot. | Write |
render_screenshot | Render one page to a real store sized PNG. | Render |
start_batch | Queue every page in every language as one background job. | Render |
export_to_app_store | Preview, then on a second confirmed call replace the live App Store screenshots. | Export |
export_to_google_play | Preview, then on a second confirmed call replace the live Play Store screenshots. | Export |
Exports confirm twice
Called normally, the two export tools return a preview of exactly what would be uploaded and touch nothing. Only a second call carrying the confirmation flag replaces the live screenshots, which is also how we ask reviewers to test them safely.
Plus 2 prompts and 3 resources
Two saved workflows (localize a template into several languages, write fresh copy from a product brief) and three read only resources your client can pull as context: a template, one of your projects, and your current quota.
An App Store screenshot API, without writing a client
If what you actually wanted was an App Store screenshot API, this is it with the integration work already done. The tool schemas are the endpoints, the JSON they return is the response body, and the agent on the other end reads both without an SDK, a wrapper library or a generated client sitting in your repo.
Authentication is the part that usually leaks. There is no long lived token to store here, because the connector uses OAuth 2.1 with PKCE and registers its client dynamically. Access is bound to the person who signed in, the server decides the scope rather than the client, and revoking it is a sign out rather than a key rotation.
Long jobs do not block the conversation either. start_batch queues a whole language matrix in the background and
get_batch_status returns counts and per language URLs as they land, so an agent can kick off forty renders
and come back for them.
Claude brings the words. We print the pixels.
Getting a model to write a headline in 41 languages is the easy half. The half that breaks is what happens to the layout afterwards: German runs wide enough to push a caption off the frame, Arabic and Hebrew need the whole composition mirrored, and CJK needs different fonts before it renders at all.
That is the work the connector is actually doing. Captions go through the same translation pipeline the editor uses, with a cloud translation memory so a phrase you already approved comes back the way you approved it, and the render step lays each language out properly instead of dropping longer text into a box sized for English.
The 41 market playbooks RTL preview tool Text expansion calculator
41 target languages
The same set the editor's language picker offers, counted from the same file, so this page cannot quietly fall behind the product.
Templates the agent can browse
It reads the same template library you would pick from by hand, then adapts one into a project at the export size you asked for.
Straight into the store
Finished sets go to App Store Connect or Google Play through your own developer account, using credentials you configure, on Plus and Studio.
Limits we ship rather than promise
One account only
The connector acts for the person who granted access and nobody else. Every project read or written is owner scoped.
Server side scopes
A client cannot widen its own permissions by asking for a bigger scope. The consent step decides what is granted.
Rate limited and logged
Writes are rate limited and recorded in an audit log, so a runaway loop is capped and a surprise change is traceable.
Paid plans only
A free account is declined at the consent screen instead of connecting and failing later. See the plans.
Data handling is covered in the privacy policy, and setup questions live in the help center.
Questions about the MCP server
Can Claude generate App Store screenshots?
Yes, once you connect it to a tool that can actually render them. On its own Claude writes good caption copy but cannot lay out a device frame or produce a file at the exact store dimensions. With the Shotlingo connector added, Claude picks a template, fills the captions, renders every page at real App Store and Google Play sizes and can upload the result to your listing after you confirm.
What is an App Store screenshot MCP server?
MCP (Model Context Protocol) is the open standard that lets an AI assistant call outside tools. An App Store screenshot MCP server exposes screenshot design, translation, rendering and store upload as tools the assistant can call directly. Shotlingo runs one as a hosted remote server at https://mcp.shotlingo.com/mcp, so nothing is installed on your machine and the same connector works from every device you sign in from.
Does it work in Claude Code?
Yes. The server speaks Streamable HTTP, the transport Claude Code uses for remote MCP servers, so the endpoint that works in the Claude apps also works from the terminal. Register it once with the Claude Code MCP command using the HTTP transport and the same OAuth sign in grants access.
Do I need to install anything?
No. The Shotlingo MCP server is hosted, not a package you download. There is no npm install, no local process to keep running and no key to paste into a config file. You add the URL as a custom connector, sign in through OAuth once, and it works on macOS, Windows and Linux alike.
Is the connector available on the free plan?
No, it is paid only. The consent step declines a free account up front rather than connecting and then failing on the first render. Rendering runs on Pro and above, and store uploads to App Store Connect or Google Play need Plus or Studio.
What can the connector do to my live store listing?
Nothing without an explicit confirmation. The two export tools run in two steps: called normally they return a preview of exactly what would be uploaded and change nothing at all. Only a second call carrying the confirmation flag replaces the live screenshots. Every write is scoped to the account that signed in, rate limited, and recorded in an audit log.
Point Claude at your store listing
Add https://mcp.shotlingo.com/mcp as a custom connector, sign in, and ask for a localized set. If you would rather see the editor first, it opens without an account.
Prefer reading first? Start with the blog or the free ASO tools.