AI-designed App Store screenshot sets from your app's screens, uploaded to App Store Connect.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer followed by your Agent C API key (Settings → Use Agent C from your AI agent)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add an app by its App Store link (imports name, icon, description), or by name if it isn't released yet. Importing a live app takes ~10-30s; poll list_apps until status is 'ready'.
Only for apps not on the App Store yet
e.g. https://apps.apple.com/us/app/…/id123456789
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Add an app by its App Store link (imports name, icon, description), or by name if it isn't released yet. Importing a live app takes ~10-30s; poll list_apps until status is 'ready'.
| Argument | Type | Description |
|---|---|---|
| name | string | Only for apps not on the App Store yet |
| app_store_url | string | e.g. https://apps.apple.com/us/app/…/id123456789 |
{
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"description": "Only for apps not on the App Store yet"
},
"app_store_url": {
"type": "string",
"description": "e.g. https://apps.apple.com/us/app/…/id123456789"
}
},
"additionalProperties": false
}Claude art-directs a full App Store screenshot set from the uploaded screenshots: opening shot, headline per slide, close-ups, palette. Returns watermarked preview images, the slide list and a link to open it in the Agent C studio. Takes ~40-60 seconds.
| Argument | Type | Description |
|---|---|---|
| focus | string | Optional: what to emphasize (feature, audience, angle). |
| app_id* | string | app_id from list_apps / add_app |
| device | string | Screenshot size: iPhone 6.9" (1320x2868), 6.5" (1284x2778), iPad 13" (2064x2752), or the optional iPhone Duo inner (2007x2853) / outer (1398x2034) displays. iPad and Duo need the app's real iPad / Duo simulator screenshots uploaded first (replace=false); iPhone-only apps should skip iPad. Duo is export-only: App Store Connect's API doesn't accept Duo uploads yet, so send_to_app_store refuses Duo sets. |
| opener | string | Opening slide: hand holding the phone, big app icon, lifestyle photo, or a plain phone. auto lets Claude pick. |
| include | string | What to make: the screenshot set, screenshots + the App Store product page header (iOS 27), or only the header |
{
"type": "object",
"required": [
"app_id"
],
"properties": {
"focus": {
"type": "string",
"description": "Optional: what to emphasize (feature, audience, angle)."
},
"app_id": {
"type": "string",
"description": "app_id from list_apps / add_app"
},
"device": {
"enum": [
"iphone_69",
"iphone_65",
"ipad_13",
"iphone_duo_inner",
"iphone_duo_outer"
],
"type": "string",
"default": "iphone_69",
"description": "Screenshot size: iPhone 6.9\" (1320x2868), 6.5\" (1284x2778), iPad 13\" (2064x2752), or the optional iPhone Duo inner (2007x2853) / outer (1398x2034) displays. iPad and Duo need the app's real iPad / Duo simulator screenshots uploaded first (replace=false); iPhone-only apps should skip iPad. Duo is export-only: App Store Connect's API doesn't accept Duo uploads yet, so send_to_app_store refuses Duo sets."
},
"opener": {
"enum": [
"auto",
"hand",
"icon",
"photo",
"phone"
],
"type": "string",
"default": "auto",
"description": "Opening slide: hand holding the phone, big app icon, lifestyle photo, or a plain phone. auto lets Claude pick."
},
"include": {
"enum": [
"screenshots",
"both",
"header"
],
"type": "string",
"default": "screenshots",
"description": "What to make: the screenshot set, screenshots + the App Store product page header (iOS 27), or only the header"
}
},
"additionalProperties": false
}Change one slide (headline, subline, screenshot, layout, position, or remove it), the opening shot, the device size, or the App Store header (header_*). Re-renders previews. Free.
| Argument | Type | Description |
|---|---|---|
| slide | integer | 1-based slide number to change |
| device | string | Screenshot size: iPhone 6.9" (1320x2868), 6.5" (1284x2778), iPad 13" (2064x2752), or the optional iPhone Duo inner (2007x2853) / outer (1398x2034) displays. iPad and Duo need the app's real iPad / Duo simulator screenshots uploaded first (replace=false); iPhone-only apps should skip iPad. Duo is export-only: App Store Connect's API doesn't accept Duo uploads yet, so send_to_app_store refuses Duo sets. |
| layout | string | |
| opener | string | |
| remove | boolean | |
| set_id* | string | set_id returned by design_set |
| include | string | What to make: the screenshot set, screenshots + the App Store product page header (iOS 27), or only the header |
| move_to | integer | |
| subline | string |
Render the unlocked set at exact App Store pixels without watermark and return download links (valid 7 days). Includes the product page header (3840x1646) and search-results image (3840x2560) when the set has a header.
| Argument | Type | Description |
|---|---|---|
| set_id* | string | set_id returned by design_set |
{
"type": "object",
"required": [
"set_id"
],
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
}
},
"additionalProperties": false
}Current slides, unlock status and fresh preview images for a set.
| Argument | Type | Description |
|---|---|---|
| set_id* | string | set_id returned by design_set |
{
"type": "object",
"required": [
"set_id"
],
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
}
},
"additionalProperties": false
}Best way to upload screenshots from files on disk: returns a one-time URL (valid 30 min) to POST the image files to with curl (multipart field 'files', up to 10 per request). Use this instead of upload_screenshots when you have a shell, so large images don't pass through the conversation.
| Argument | Type | Description |
|---|---|---|
| app_id* | string | app_id from list_apps / add_app |
| replace | boolean | First upload clears the app's old screenshots. Use false to add iPad / iPhone Duo captures next to the iPhone ones. |
{
"type": "object",
"required": [
"app_id"
],
"properties": {
"app_id": {
"type": "string",
"description": "app_id from list_apps / add_app"
},
"replace": {
"type": "boolean",
"default": true,
"description": "First upload clears the app's old screenshots. Use false to add iPad / iPhone Duo captures next to the iPhone ones."
}
},
"additionalProperties": false
}The user's apps in Agent C, with how many screenshots each has uploaded.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Upload the unlocked set into the app's editable version in App Store Connect, replacing that language's screenshots for this device size (not iPhone Duo — export_set those). Never submits for review. Requires the user to have connected App Store Connect in Agent C. If the app has no editable version, ask the user, then call with create_version=true.
| Argument | Type | Description |
|---|---|---|
| locale | string | |
| set_id* | string | set_id returned by design_set |
| create_version | boolean |
{
"type": "object",
"required": [
"set_id"
],
"properties": {
"locale": {
"type": "string",
"default": "en-US"
},
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
},
"create_version": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Unlock clean, full-resolution files for a set. Uses a free unlock if the user has one; otherwise returns a $9.99 Stripe checkout link the USER must open and pay. Studio subscribers are already unlocked. Ask the user before calling.
| Argument | Type | Description |
|---|---|---|
| set_id* | string | set_id returned by design_set |
{
"type": "object",
"required": [
"set_id"
],
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
}
},
"additionalProperties": false
}Upload 1-10 raw screenshots of the app (plain captures of the real UI, ideally 4-10, in the order you'd like them considered). Each item is base64 image data (PNG/JPEG) or a public https URL. By default replaces the app's screenshot library — pass replace=false when adding iPad or iPhone Duo captures next to the iPhone ones.
| Argument | Type | Description |
|---|---|---|
| app_id* | string | app_id from list_apps / add_app |
| images* | array | |
| replace | boolean |
{
"type": "object",
"required": [
"app_id",
"images"
],
"properties": {
"app_id": {
"type": "string",
"description": "app_id from list_apps / add_app"
},
"images": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1
},
"replace": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
}| headline | string | Wrap words in *stars* to color them |
| screenshot | integer | 1-based screenshot to show on this slide |
| header_layout | string | Header visual: lifestyle photo, three phones, big icon, or a hand holding the phone |
| header_subline | string |
| header_headline | string | App Store header headline (*stars* color words). No prices, URLs, platform names or #1 claims. |
{
"type": "object",
"required": [
"set_id"
],
"properties": {
"slide": {
"type": "integer",
"minimum": 1,
"description": "1-based slide number to change"
},
"device": {
"enum": [
"iphone_69",
"iphone_65",
"ipad_13",
"iphone_duo_inner",
"iphone_duo_outer"
],
"type": "string",
"description": "Screenshot size: iPhone 6.9\" (1320x2868), 6.5\" (1284x2778), iPad 13\" (2064x2752), or the optional iPhone Duo inner (2007x2853) / outer (1398x2034) displays. iPad and Duo need the app's real iPad / Duo simulator screenshots uploaded first (replace=false); iPhone-only apps should skip iPad. Duo is export-only: App Store Connect's API doesn't accept Duo uploads yet, so send_to_app_store refuses Duo sets."
},
"layout": {
"enum": [
"standard",
"closeup",
"tilt"
],
"type": "string"
},
"opener": {
"enum": [
"hand",
"icon",
"photo",
"phone"
],
"type": "string"
},
"remove": {
"type": "boolean"
},
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
},
"include": {
"enum": [
"screenshots",
"both",
"header"
],
"type": "string",
"default": "screenshots",
"description": "What to make: the screenshot set, screenshots + the App Store product page header (iOS 27), or only the header"
},
"move_to": {
"type": "integer",
"minimum": 1
},
"subline": {
"type": "string"
},
"headline": {
"type": "string",
"description": "Wrap words in *stars* to color them"
},
"screenshot": {
"type": "integer",
"minimum": 1,
"description": "1-based screenshot to show on this slide"
},
"header_layout": {
"enum": [
"photo",
"phones",
"icon",
"hand"
],
"type": "string",
"description": "Header visual: lifestyle photo, three phones, big icon, or a hand holding the phone"
},
"header_subline": {
"type": "string"
},
"header_headline": {
"type": "string",
"description": "App Store header headline (*stars* color words). No prices, URLs, platform names or #1 claims."
}
},
"additionalProperties": false
}