getstoreready-mcp
OfficialThis MCP server lets an AI client manage GetStoreReady app-store screenshot projects end-to-end.
Create, list, and inspect projects, screens, and screenshot images.
Upload raw screenshots, apply templates, place images, and edit screen text/designs or bulk backgrounds.
Manage store languages and read/update App Store and Google Play listing/ASO copy.
Check AI credits, estimate translation cost, and translate listings and/or screen text.
Export projects as ZIP, optionally waiting and saving locally.
Bootstrap from a local app repo by detecting the app, discovering or capturing screenshots, uploading them, and creating a templated project.
Preview and push listings/screenshots to App Store Connect and Google Play, then poll push job status.
Work with store credentials/links and review push blockers/diffs before publishing.
Integrates with App Store Connect to push store listings and screenshots, check link status, preview push plans and blockers, compare against the live store, and poll App Store push jobs.
Integrates with Google Play Console to push listings, screenshots, and app icons, check link status, preview push plans and blockers, compare against the live store, and poll Play push jobs.
Click on "Deploy 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., "@getstoreready-mcp Create a new project for my fitness app"
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.
Two ways to connect
A. Hosted connector (no install)
Add https://api.getstoreready.com/mcp as a custom connector / remote MCP
server. The first time, your AI app opens getstoreready.com — sign up or log in,
click Allow, done. No API key to copy.
Claude (web / desktop): Settings → Connectors → Add custom connector → paste the URL.
Claude Code:
claude mcp add --transport http getstoreready https://api.getstoreready.com/mcpChatGPT, Cursor, others: add it as a remote / Streamable HTTP MCP server.
The hosted connector can't see your computer, so the local-only tools
(detect_app, capture_screenshots, bootstrap_store_project, upload by file
path, saving a store key from a file) are only in the local server below.
B. Local server (simulator capture, local files)
Every client below runs the same command. No API key needed — ask your
agent to "sign in to GetStoreReady": the sign_in tool opens
getstoreready.com/connect with a short code, you sign up or log in and click
Allow, and the key is saved to ~/.config/getstoreready/credentials.json.
{
"command": "npx",
"args": ["-y", "github:getstoreready/getstoreready-mcp"]
}Prefer a fixed key (CI, scripts)? Create one at
getstoreready.com/profile/api-keys
and set it as GSR_API_KEY in the server's env — it takes precedence over
sign_in. The examples below show that optional env block.
Claude Code
Project-scoped (shared via .mcp.json committed to a repo):
claude mcp add getstoreready --scope project -- npx -y github:getstoreready/getstoreready-mcpOptionally set GSR_API_KEY in your environment (otherwise use sign_in), or add it to the
generated .mcp.json:
{
"mcpServers": {
"getstoreready": {
"command": "npx",
"args": ["-y", "github:getstoreready/getstoreready-mcp"],
"env": { "GSR_API_KEY": "gsr_live_your_key_here" }
}
}
}User-scoped (available in every project): same block in
~/.claude.json under mcpServers, or claude mcp add --scope user.
Claude Desktop
Settings → Developer → Edit Config (opens claude_desktop_config.json):
{
"mcpServers": {
"getstoreready": {
"command": "npx",
"args": ["-y", "github:getstoreready/getstoreready-mcp"],
"env": { "GSR_API_KEY": "gsr_live_your_key_here" }
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"getstoreready": {
"command": "npx",
"args": ["-y", "github:getstoreready/getstoreready-mcp"],
"env": { "GSR_API_KEY": "gsr_live_your_key_here" }
}
}
}Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.getstoreready]
command = "npx"
args = ["-y", "github:getstoreready/getstoreready-mcp"]
[mcp_servers.getstoreready.env]
GSR_API_KEY = "gsr_live_your_key_here"Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"getstoreready": {
"command": "npx",
"args": ["-y", "github:getstoreready/getstoreready-mcp"],
"env": { "GSR_API_KEY": "gsr_live_your_key_here" }
}
}
}Related MCP server: App Store Connect MCP Server
Tools
Account & billing
Tool | What it does |
| Browser sign-in / sign-up (local server only) — no password or key in the chat |
| Forget the saved key on this machine (local server only) |
| Signed-in email, plan, AI credit balance |
| Plans and credit packs with prices |
| Payment link for a plan or credit pack — the user pays in their browser |
App bootstrap (from local repo)
Tool | What it does |
| Infer stack, app name, platforms, locales, and prioritized screens from a repo path. |
| Find PNG/JPG under |
| Capture from iOS Simulator ( |
| One-shot: detect → upload → create project → apply template → return text layers for copy. |
Agent skill: getstoreready/getstoreready-skill — install with npx skills add getstoreready/getstoreready-skill.
Quick bootstrap:
detect_app({ appRootPath: "/path/to/app" })discover_screenshots({ appRootPath })— if empty,capture_screenshots({ appRootPath, platform: "ios" })bootstrap_store_project({ appRootPath, templateKey: "random" })update_screen_textper screen (optionally afterget_screen_images+ vision)Optional:
update_listing→translate_project→export_project→ store push tools
Projects & templates
Tool | What it does |
| List your GetStoreReady projects. |
| Create a new project. Returns its id and editor URL. |
| Project summary — platforms, languages, screen count, editor URL. |
| List templates with your owned/locked state. |
| Apply a template by key or |
| Upload raw app screenshots — prefer local |
| Place an uploaded asset into a screen by 1-based index. |
Free-form design (full editor parity)
Everything the web editor can do — free text with per-word highlight runs, any Google Font, device mockups with 3D tilt/lean and view presets, image & icon layers, edge fades, gradient/pattern/panorama backgrounds, per-device overrides (iPhone vs iPad vs Android), groups and z-order — is one Design JSON per screen. These tools read and write it directly; the vocabulary comes live from the API, so new editor features show up without an MCP update.
Tool | What it does |
| Start here. Design guide + JSON Schema + layer defaults, device models & view presets, slot sizes, fonts, icons. Also exposed as the |
| Full Design JSON of one screen (or the feature graphic). |
| Replace a screen's whole design (validated by the API). |
| Batch ops: add / update / remove / move / duplicate / set_override (per device slot) / group / ungroup. |
| Background for one/all screens, or a per-slot background override. |
| Render a screen to PNG per device slot with the export engine — for the agent to look at its work. |
| Blank, template, copied or full-design screens; feature graphic too. |
| Which device sizes the project produces; tablet landscape. |
| Your uploads + curated stock images usable as |
Design loop: get_design_catalog → add_screen / set_screen_design →
render_preview → edit_layers tweaks (incl. set_override for tablets) →
render_preview again for every enabled slot.
Screen design
Tool | What it does |
| List screens with text layer ids, current copy, and device asset urls. |
| Return device screenshot images for your AI client's vision (not server OCR). |
| Change one template text layer on one screen. |
| Change background and/or multiple text layers on one screen. |
| Same background/text across all or selected screens (e.g. white bg everywhere). |
Listing & localization
Tool | What it does |
| Active and available store languages for a project. |
| Add |
| Remove a language (not the primary one) |
| Set language order |
| Change the primary (source) language |
| Read ASO / store listing text for one locale. |
| Update listing fields for one locale. |
| AI credit balance and translate availability. |
| Credit cost estimate before translating. |
| AI-translate listing and/or screen text between languages. |
Export
Tool | What it does |
| Enqueue export, wait for ZIP, optionally save to a local path. |
Store push (Premium/Pro)
Link credentials in the web UI first (/projects/:id/settings).
Tool | What it does |
| App Store Connect link status for a project. |
| Review ASC push plan, blockers, warnings, live-store diff. |
| Push listing + screenshots to App Store Connect. |
| Poll an App Store push job. |
| Google Play link status for a project. |
| Review Play push plan, blockers, live-store diff. |
| Push listing, screenshots, and app icon to Google Play. |
| Poll a Google Play push job. |
Recommended flows
Template + screenshots (live editor):
apply_template({ projectId, templateKey })— withoutassetIdsupload_screenshots({ images: [{ path: "/local/shot.png" }] })place_screenshot_imageonce per screen
Screenshot-aware titles (vision on your client):
get_screensorget_screen_images— your AI reads the imagesupdate_screen_textper screen with generated marketing copy
Bootstrap from an app repo (Flutter / RN / Swift):
bootstrap_store_project({ appRootPath: "/path/to/my-app" })update_screen_textfor each screen using returnedtextLayersupdate_listingwhen ASO metadata is ready
Add German + translate:
estimate_translation({ fromLanguage: "en_US", toLanguage: "de_DE", includeListing: true, includeDesigns: true })get_ai_credits— confirm balanceadd_store_language({ languageCode: "de_DE" })translate_project({ fromLanguage: "en_US", toLanguage: "de_DE", includeListing: true, includeDesigns: true })
Push to App Store / Google Play:
get_app_store_link/get_google_play_link— confirm linkedpreview_app_store_push/preview_google_play_push— review blockers + diffpush_to_app_store/push_to_google_play— enqueue (waits by default)
White backgrounds on all screens:
bulk_update_designs({
"projectId": "...",
"background": { "type": "solid", "color": "#ffffff" }
})Local development
git clone git@github.com:getstoreready/getstoreready-mcp.git
cd getstoreready-mcp
npm install
GSR_API_KEY=... GSR_API_BASE=http://localhost:3201 GSR_SITE_URL=http://localhost:3200 npm run devHosted mode (what runs behind api.getstoreready.com/mcp):
npm run build
PORT=3100 GSR_API_BASE=http://localhost:3201 GSR_PUBLIC_API_BASE=http://localhost:3201 node dist/index.js --httpConfiguration
Env var | Required | Default |
| No — or use | — |
| No |
|
| No |
|
| No |
|
License
MIT
Store connections
Connect a project to App Store Connect / Google Play without the web UI. Secrets are passed as file paths — the MCP reads the file locally and sends it encrypted to GetStoreReady, so keys never enter the chat.
Tool | Purpose |
| Saved keys / service accounts (no secrets) |
|
|
|
|
| Check a credential, optionally against an app |
| Remove a saved credential |
| Connect a project to its store app |
| Check or remove a project's link |
Available Tools
15 toolsadd_store_languageA
Add one or more store languages to a project (e.g. de_DE for German). Does not translate — call translate_project after.
Inputs: projectId (required), languageCode, languageCodes.
bulk_update_designsB
Apply the same background (e.g. white) and/or text updates across multiple or all screens. Example: set every screen background to solid white.
Inputs: projectId (required), locale, background, textUpdates, +1 more.
estimate_translationA
Estimate AI credit cost before translating listing copy and/or screen text. Always call this before translate_project when credits matter.
Inputs: projectId (required), toLanguage (required), fromLanguage (required), screens, +4 more.
get_ai_creditsA
Check AI credit balance and whether translation is available.
Inputs: no named parameters.
get_app_store_push_jobB
Get status of an App Store push job. Optionally wait until it completes.
Inputs: jobId (required), projectId (required), wait.
get_google_play_linkA
Get Google Play Console link status for a project (credential, package name). Requires Premium/Pro. Set up credentials in the web UI first.
Inputs: projectId (required).
get_google_play_push_jobC
Get status of a Google Play push job. Optionally wait until it completes.
Inputs: jobId (required), projectId (required), wait.
get_listingB
Get store listing / ASO text for a project in one locale.
Inputs: locale (required), projectId (required).
get_screen_imagesA
Return raw app screenshot images (device layer assets) as vision input for the host AI. Use with your client vision to read UI content, then call update_screen_text. Also returns a JSON index mapping images to screen indices.
Inputs: projectId (required), locale, screenIndices.
list_store_languagesC
List active and available store languages for a project.
Inputs: projectId (required).
preview_google_play_pushA
Review what would be pushed to Google Play — blockers, warnings, locale plans, and optional remote diff. Call before push_to_google_play.
Inputs: projectId (required), locales, displaySlots, includeAppIcon, +3 more.
push_to_google_playA
Enqueue a Google Play push (listing, screenshots, app icon). Requires Premium/Pro and a linked app. Call preview_google_play_push first.
Inputs: projectId (required), wait, locales, displaySlots, +4 more.
update_listingC
Update store listing / ASO text for a project in one language.
Inputs: locale (required), projectId (required), appName, keywords, +6 more.
update_screen_designC
Update one screen design — background color/gradient and/or multiple text layers at once.
Inputs: projectId (required), screenIndex (required), locale, background, +1 more.
update_screen_textA
Update the marketing headline/body text on one screen (template text layer, not in-app UI text). Preserves template highlight styling (italic accent, pill) when the layer uses runs — call get_screens to see highlightStyle/templateHighlight. Optionally pass highlightPhrase to control which word gets the accent (e.g. "workouts" or "#habits").
Inputs: text (required), layerId (required), projectId (required), screenIndex (required), +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool targets a distinct action: Google Play push lifecycle (preview, push, status, link), screen content (images, text, design), store listings (languages, listing text), and auxiliary (credits, translation estimation). No two tools share the same purpose.
Tools follow a consistent verb_noun snake_case pattern (e.g., push_to_google_play, update_screen_text). Minor inconsistencies: some tools use 'get' vs 'list' (get_google_play_link vs list_store_languages), and 'bulk_update_designs' deviates slightly from the verb_noun structure.
15 tools is appropriate for a store management server. Each tool serves a specific function without being overwhelming or insufficient.
Covers core workflows for Google Play push, screen editing, and listing management. Notable gaps: no App Store push initiation (only status), no actual translation tool (only estimation), and no tool to delete screens or manage screens beyond design/ text.
Maintenance
Related MCP Connectors
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Create and edit app store screenshot projects with AI, then export in the web editor.
Create App Store screenshots, icons, ASO copy, localization, and revisions via hosted MCP.
Ship a new iOS app from chat. AI runs App Store Connect, builds, release, and submission through Ap…
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Apple App Store Connect resources like apps, builds, TestFlight, and reviews through natural language.2014 npmMIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to manage App Store Connect apps, including registering bundle IDs, uploading metadata and screenshots, setting age ratings, managing TestFlight groups and testers, and submitting apps for review.MIT
- AlicenseAqualityCmaintenanceProvides AI assistants direct access to Apple's App Store Connect API, enabling them to manage apps, provisioning data, TestFlight builds, and App Store versions, including creating versions, attaching builds, and submitting for review.14MIT