Agent C — App Store Screenshots
AI-designed App Store screenshot sets from your app's screens, uploaded to App Store Connect.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"app-store-screenshots": {
"url": "https://api.theagentc.io/mcp"
}
}
}Remote endpoints
https://api.theagentc.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢list_apps
The user's apps in Agent C, with how many screenshots each has uploaded.
Input Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟡add_app(app_store_url, name)
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'.
Input Schema
{
"type": "object",
"properties": {
"app_store_url": {
"type": "string",
"description": "e.g. https://apps.apple.com/us/app/…/id123456789"
},
"name": {
"type": "string",
"description": "Only for apps not on the App Store yet"
}
},
"required": [],
"additionalProperties": false
}🟡get_upload_link(app_id, replace)
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.
Input Schema
{
"type": "object",
"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"
}
},
"required": [
"app_id"
],
"additionalProperties": false
}🟡upload_screenshots(app_id, images, replace)
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.
Input Schema
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"description": "app_id from list_apps / add_app"
},
"images": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10
},
"replace": {
"type": "boolean",
"default": true
}
},
"required": [
"app_id",
"images"
],
"additionalProperties": false
}🟡design_set(app_id, opener, focus, device, include)
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.
Input Schema
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"description": "app_id from list_apps / add_app"
},
"opener": {
"type": "string",
"enum": [
"auto",
"hand",
"icon",
"photo",
"phone"
],
"default": "auto",
"description": "Opening slide: hand holding the phone, big app icon, lifestyle photo, or a plain phone. auto lets Claude pick."
},
"focus": {
"type": "string",
"description": "Optional: what to emphasize (feature, audience, angle)."
},
"device": {
"type": "string",
"enum": [
"iphone_69",
"iphone_65",
"ipad_13"
],
"default": "iphone_69"
},
"include": {
"type": "string",
"enum": [
"screenshots",
"both",
"header"
],
"default": "screenshots",
"description": "What to make: the screenshot set, screenshots + the App Store product page header (iOS 27), or only the header"
}
},
"required": [
"app_id"
],
"additionalProperties": false
}🟢get_set(set_id)
Current slides, unlock status and fresh preview images for a set.
Input Schema
{
"type": "object",
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
}
},
"required": [
"set_id"
],
"additionalProperties": false
}🔴edit_set(set_id, slide, headline, subline, screenshot, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
},
"slide": {
"type": "integer",
"minimum": 1,
"description": "1-based slide number to change"
},
"headline": {
"type": "string",
"description": "Wrap words in *stars* to color them"
},
"subline": {
"type": "string"
},
"screenshot": {
"type": "integer",
"minimum": 1,
"description": "1-based screenshot to show on this slide"
},
"layout": {
"type": "string",
"enum": [
"standard",
"closeup",
"tilt"
]
},
"move_to": {
"type": "integer",
"minimum": 1
},
"remove": {
"type": "boolean"
},
"opener": {
"type": "string",
"enum": [
"hand",
"icon",
"photo",
"phone"
]
},
"device": {
"type": "string",
"enum": [
"iphone_69",
"iphone_65",
"ipad_13"
]
},
"header_headline": {
"type": "string",
"description": "App Store header headline (*stars* color words). No prices, URLs, platform names or #1 claims."
},
"header_subline": {
"type": "string"
},
"header_layout": {
"type": "string",
"enum": [
"photo",
"phones",
"icon",
"hand"
],
"description": "Header visual: lifestyle photo, three phones, big icon, or a hand holding the phone"
},
"include": {
"type": "string",
"enum": [
"screenshots",
"both",
"header"
],
"default": "screenshots",
"description": "What to make: the screenshot set, screenshots + the App Store product page header (iOS 27), or only the header"
}
},
"required": [
"set_id"
],
"additionalProperties": false
}🟡unlock_set(set_id)
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.
Input Schema
{
"type": "object",
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
}
},
"required": [
"set_id"
],
"additionalProperties": false
}🟡export_set(set_id)
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.
Input Schema
{
"type": "object",
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
}
},
"required": [
"set_id"
],
"additionalProperties": false
}🔴send_to_app_store(set_id, create_version, locale)
Upload the unlocked set into the app's editable version in App Store Connect, replacing that language's screenshots for this device size. 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.
Input Schema
{
"type": "object",
"properties": {
"set_id": {
"type": "string",
"description": "set_id returned by design_set"
},
"create_version": {
"type": "boolean",
"default": false
},
"locale": {
"type": "string",
"default": "en-US"
}
},
"required": [
"set_id"
],
"additionalProperties": false
}Community
Evidence