Let an AI agent work on the same screenshot projects
StoreStage Pro exposes a structured automation surface over the Model Context Protocol (MCP). The editor and your agent share the same project, scene, validation, and entitlement rules — so an agent can only do what you could already do by hand in the studio.
What MCP actually gives an agent
MCP is an open protocol that lets AI clients like Claude, Cursor, and Codex call a defined set of tools on a remote server, instead of guessing at your product through screen scraping or a generic HTTP API. StoreStage runs a remote, OAuth-protected MCP server at https://mcp.storestage.studio/mcp. Your client authenticates as you, then calls the tools listed below — nothing more. The full catalog is 23 tools; the ones a client sees depend on the scopes you grant it, and the App Store Connect tools need their own scope.
Every tool an agent can call
Six groups, 23 tools in the full catalog. Reads never return screenshot pixels or file bytes. Editing a project's scene is always preview-then-apply; creating a project or attaching an asset is a one-shot write with its own quota or revision check. Rendering and exporting only read the project's current state — they never modify it.
Inspect
account.get_status
Signed-in plan, MCP scopes, and feature flags.
themes.search
Search the public theme catalog by name, device, or family; includes layout kind ("connected" | "panel").
themes.get
Public catalog metadata for one theme including layout kind, plus its slots: screenshot slots, which panels have a headline, body and labels, and the layer ids you can move or hide.
themes.get_preview_image
A link to a rendered placeholder-layout image of a theme (panel layout, device slots, colors — no real copy or screenshots), for comparing themes before picking one.
projects.list
List cloud projects on the signed-in Pro account.
projects.get
A redacted project manifest: copy, theme pins, asset IDs, revision.
sets.list
List screenshot sets in a cloud project, including each set's locale, themeKind, and template layer ids for updateLayerOverride.
outputs.get
Copy and asset IDs for one output. No screenshot pixels.
Create & edit
projects.create
Create a cloud project. Name, brand colors, and a system font can be set in the same call.
projects.draft_from_brief
Create a populated project draft from a brief in one high-level call: selects a theme, formats copy, binds screenshots, and returns a staged changeSetId for review.
changes.preview
Preview a typed operation list against a project. Returns a diff and an immutable changeSetId. Nothing is persisted yet.
changes.apply
Apply a previously previewed change set if the project's revision has not moved.
sets.translate
Stage an AI translation of a screenshot set into a target App Store locale. Duplicates the set, translates copy (headlines, body, eyebrows), and returns a preview change set ready for changes.apply. Requires Pro.
Assets
assets.create_upload
Create a short-lived signed upload URL and an assetId.
assets.attach
Bind an uploaded file to a slot: a logo, a screenshot slide, a custom-image layer, or a custom font — see the bind shapes below.
Render
renders.create_preview
Start an async preview render job and get back the studio's own Apple output sizes.
renders.get
Poll a preview job by ID.
Export
exports.create
Start an async PNG or ZIP export job. An iPhone ZIP carries both Apple display classes.
exports.get
Poll an export job by ID.
exports.download
Get a short-lived signed download URL for a finished export.
App Store Connect
app_store_connect.get_status
Whether App Store Connect API credentials are configured for your account. Never returns private keys.
app_store_connect.list_apps
Apps, versions, and localizations from App Store Connect for the configured account.
app_store_connect.upload_screenshots
Upload a rendered export to an editable app version. An iPhone upload fills every Apple display set its size needs (create the job with exports.create kind zip), and replacing deletes the existing screenshots in every targeted set. A person must approve every upload in StoreStage first: the agent only receives an approval link.
Set-scoped operations — changeTheme, updateSet, reorderSlides, updateOutputCopy, layer operations, and screenshot/custom-image assets.attach binds — accept an optional setId. When omitted, they act on the device's currently active set. Passing setId directly lets you target any set in the project without needing a preceding selectSet:
To change several outputs at once, updateOutputCopy accepts a list of indexes ([0, 1, 2]) or "all" in place of a single index. Each output becomes its own operation and counts against the 30-operation limit. "all" skips outputs the patch cannot change (for example a panel without a label slot) and lists them in a warning; a list fails on the first such output.
You can also target specific sets directly in assets.attach by including setId in the bind payload without needing to switch the active set first:
When setId is omitted, operations continue to act on the active set as before. You can still use selectSet in changes.preview when you want to switch which set is active in the studio.
Fast drafting with projects.draft_from_brief
Instead of executing multiple sequential tool calls to create a project, choose a theme, format copy per slide, and bind screenshots, you can call projects.draft_from_brief in one step. It produces a populated project draft and stages a reviewable changeSetId:
projects.draft_from_brief
{
"name": "HabitPulse",
"description": "Daily habit tracker. Track your streaks, visualize weekly completion stats, and share milestones with accountability partners.",
"clientRequestId": "req-habitpulse-001"
}
Theme layout models: connected vs. panel
Themes in the StoreStage catalog advertise a kind property that defines their visual layout model:
Connected ("connected"): The theme is a continuous panoramic strip where artwork and composition span across panel seams. Changing one panel's copy length or layer placement affects the visual balance of the entire strip. StoreStage emits a connected_strip_rhythm warning during preview when copy or layers in a connected set are modified so agents can preserve overall balance.
Panel ("panel"): Panels are visually independent. Each panel has its own standalone background and composition, allowing copy and layers to be edited on one panel without affecting neighboring panels.
Locale sets & AI translation (Pro)
StoreStage Pro accounts can organize screenshot sets by BCP 47 locale (e.g. "en-US", "de-DE", "ar-SA"). Sets carry an optional locale property, enabling multi-language App Store screenshot localization with full support for Left-to-Right and Right-to-Left (RTL) typography, auto font-shrink scaling, and Arabic script fallbacks.
The sets.translate tool stages an AI translation of any set directly into a target locale:
Like scene edits, sets.translate returns a preview change set with a changeSetId and diff. Review the staged translated copy and apply with changes.apply.
Designed for reviewable changes
OAuth connection. Do not paste a StoreStage API key into chat — clients authorize in a browser tab.
Preview, then apply. Editing a project's scene uses typed change sets checked against the project's current revision, so a stale agent cannot silently overwrite newer work. Attaching an asset carries the same revision guard; rendering and exporting only read the current state and never modify it.
Assets stay out of tool messages. Files move through short-lived signed upload and download URLs, never as base64 in a tool call.
One authorization model. The UI, automation API, and MCP tools enforce the same account permissions and Pro entitlements.
Connect your AI client
Remote MCP is included with Pro. Every client below points at the same endpoint — https://mcp.storestage.studio/mcp — and supports OAuth Dynamic Client Registration, so you never need to create or paste a client ID by hand.
Recommended setup
Install the StoreStage plugin
The plugin adds the Remote MCP connection and StoreStage workflow guidance together. It is available from the same marketplace repository for Codex and Claude Code.
Install the StoreStage plugin at user scope to get the MCP server and its guided screenshot workflows in every local Claude Code project.
Install with Claude Code
claude plugin marketplace add bahadirarslan/storestage-plugins
claude plugin install storestage@storestage-plugins --scope user
Start a new Claude Code session, then run /mcp to complete StoreStage OAuth. Claude's current plugin manifest does not expose a custom marketplace icon field, but the approved StoreStage brand assets remain bundled with the package.
Add a remote server entry to your global or project MCP config. Cursor detects that the server requires OAuth and opens a browser tab for you automatically.
Use .cursor/mcp.json inside a project instead of ~/.cursor/mcp.json to scope the connection to that project only.
Codex plugin
Install the StoreStage marketplace and plugin once. The package includes the branded Codex listing, Remote MCP connection, and StoreStage workflow guidance.
For claude.ai or Claude Desktop without the Code plugin, open Settings → Connectors → Add custom connector, paste the server URL, and sign in to StoreStage in the browser tab.
MCP server URL
https://mcp.storestage.studio/mcp
Other MCP clients
Any client that speaks MCP's Streamable HTTP transport with OAuth handles the connection the same way, but the config file's shape is not standardized — here is the exact key each of these expects: