Docs
soggyhotdog for AI agents
soggyhotdog designs App Store and Google Play screenshots from your app's real screens. Connect your
AI agent and it does the whole job for you: it starts a project, uploads the raw screenshots, writes
the headlines, makes the set, looks at every image and fixes what needs fixing, adds iPad, Android and
other languages, and downloads the finished files. In a coding agent such as Claude Code or Codex it
also reads your project, captures screens from the simulator and puts the files in
fastlane/.
What you need
- A soggyhotdog account on a paid plan. Every paid plan includes agents.
- Credits. Every image made, changed or remade uses one, the same as in the browser. A failed image gives its credit back.
- An MCP client that supports remote servers with OAuth: Claude Code, Claude, Codex, Cursor, VS Code and others.
Connect
The server address is https://www.soggyhotdog.com/mcp. You sign in with your soggyhotdog account the first time; there is no key to copy.
Claude Code (recommended: the plugin)
/plugin marketplace add barrettbreshears/soggyhotdog-plugins /plugin install soggyhotdog@soggyhotdog
Then run /mcp, choose soggyhotdog and sign in. The plugin adds two skills: store-screenshots for the whole job and capture-screenshots for clean captures from the iOS Simulator or an Android emulator.
Codex (recommended: the plugin)
codex plugin marketplace add barrettbreshears/soggyhotdog-plugins codex plugin add soggyhotdog@soggyhotdog codex mcp login soggyhotdog
Claude on the web, desktop or mobile
Settings, Connectors, Add custom connector. Name it soggyhotdog, paste the server address, then connect and sign in.
Cursor, VS Code and other clients
Add a remote MCP server with the address above. In Cursor's mcp.json:
{ "mcpServers": { "soggyhotdog": { "url": "https://www.soggyhotdog.com/mcp" } } }
Try asking
- "Make App Store screenshots for this app from the raw screens in
./screenshots, in a clean light look, and put them infastlane/." - "Capture the five most important screens of this app from the simulator and turn them into store screenshots."
- "Here is my app: https://apps.apple.com/us/app/... Keep the design of its current screenshots and put in today's screens."
- "Image 3 has the wrong headline. Change it to 'Plan a week of meals in minutes' and make it again."
- "Add German and Japanese versions of my approved set and the iPad sizes, and tell me what it costs first."
Getting screenshots in
- In ChatGPT, attach the screenshots to your message and the agent adds them.
- In a coding agent such as Claude Code or Codex, it uploads the files from your project itself, through a link that lasts an hour.
- Anywhere else, the agent gives you that link: open it in your browser and drop the screenshots in, in the order they should appear.
What it costs, and what it asks first
Reading your app, writing headlines, looking at images and downloading are free. Making, changing and remaking images use credits. Those tools, and the ones that overwrite something you set, are marked as needing your go-ahead, so your client asks before running them. Making other sizes and languages, and updating an App Store listing, always show the price first and only spend when the agent confirms.
Tools
get_account · Get account
read only
The signed-in soggyhotdog account: its plan, credits left, and whether its plan includes agents. Every image made costs one credit.
list_looks · List looks
read only
The looks a set can be made in. Pass a look key to create_project or update_project, or leave it out and describe the look in look_description instead.
list_projects · List projects
read only
Your projects, newest first, with the step each has reached. Archived projects are left out.
create_project · Create project
free
Start a project for one app. Give what the app does, or its App Store link (the listing supplies the name and description). Choose a look from list_looks, or describe it in look_description. Free: nothing is charged until images are made.
update_project · Update project
free
Change a project's name, platform, description or look. Only what you pass changes. A new look applies to images made after it; existing images keep theirs until remade.
update_listing · Update App Store listing (uses credits)
uses credits
For a project made from an App Store link: keep the design of the screenshots already on the store and make each one ready for a new screen, instead of making a new set. One credit per store image. Call without confirm for the price, then with confirm: true. Afterwards, get_upload_link with a page_id puts that page's new screen in, free.
get_upload_link · Get upload link
read only
A link to upload raw screenshots to, good for an hour: run the curl it returns, or, without a shell, give the user the link to open in a browser. Without page_id each file becomes a new page, in the order sent. With page_id the one file replaces that page's screen, and the images already made show it at no charge. form_factor tablet or android attaches iPad or Android captures to the existing pages, in order.
add_screenshots · Add screenshots
free
Add raw screenshots of the app to a project from image files by link, such as files the user attached in the conversation. Each file becomes a new page, in the order given (up to 10). PNG, JPG or WebP. When you can upload files yourself, get_upload_link is the alternative.
add_words_page · Add a words-only page
free
Add a page with no screen: a promise, a price, a closing line. The brief says what it should argue. It goes after the existing pages.
get_project · Get project
read only
One project as it stands: every page with its words, headline ideas, image and state, what the rest of the set would cost, and "next", the one thing to do now. Poll this while images are being made.
set_words · Set words
free
Set the words printed on pages: a headline (up to 60 characters) and a supporting line (up to 90). Only the fields you pass change; an empty string clears one, and a blank headline is written for you. Takes effect on images made or remade afterwards.
make_images · Make images (uses credits)
uses credits
Make an image for every page that has none yet, on the size and language the set is proved on. One credit per image. The first page is made first and the rest follow in its look; poll get_project until none is being made. Pages that already have an image are not charged again.
view_image · View image
read only
Look at one finished image. By default the one the page shows now, on the size and language the set is proved on; pass version_id for another version, or size and language for a delivered one. Returned scaled down to look at; get_downloads has the full-size files.
change_image · Change image (uses a credit)
uses credits
Make a new version of one image with a change described in a sentence, such as "make the background darker" or "move the headline above the phone". One credit. The earlier version is kept; choose_version goes back to it. Words are changed with set_words and remake_image instead.
remake_image · Remake image (uses a credit)
uses credits
Make one page's image again from scratch, from its words as they are now, optionally setting new words first. One credit. Use it after a failure, or after changing a page's words.
choose_version · Choose version
free
Use an earlier version of a page's image, such as the one before a change. Free. That page counts as approved.
approve_images · Approve images
free
Say yes to the whole set: every page's image as it stands is the one that ships, and the one other sizes and languages are made from. Every page must have a finished image. Free.
set_translations · Set translations
free
Set a page's words in another language yourself. Otherwise they are translated for you when that language is made. Words set here are never retranslated. Takes effect on images made afterwards.
make_sizes_and_languages · Make sizes and languages (uses credits)
uses credits
Make the approved set in more sizes (iPad, Android) and languages. Each is made from the approved image, so it looks the same everywhere. One credit per image; anything already made is not charged again. Call without confirm for the price, then with confirm: true. The set must be approved first.
get_downloads · Get download links
read only
Links to every finished image, numbered in shipping order: a zip of them all and a link per file. Links last an hour; download with curl. For a project that uses fastlane, pass layout: fastlane and unzip into its fastlane/ folder, ready for deliver and supply.
What is sent where
- The MCP server receives only the tool calls your agent makes, with their arguments. It does not see your conversation.
- Uploads go from your machine or browser to
soggyhotdog.com. - Downloads come from
soggyhotdog.comand from short-lived links on Cloudflare R2 storage (r2.cloudflarestorage.com). - The plugins also let the agent look up your app's public App Store listing at
itunes.apple.com, and run simulator and build tools on your machine with your approval. They send nothing anywhere else.
How soggyhotdog handles your data is in the Privacy Policy.
Troubleshooting
- "Needs authentication" or no soggyhotdog tools. In Claude Code run
/mcpand sign in; in Codex runcodex mcp login soggyhotdog; in Claude, connect it from Settings, Connectors. - "This soggyhotdog account's plan does not include agents." Agents come with every paid plan; see the Billing page.
- Out of credits. The agent stops and says so. Credits refill each paid month.
- "This upload link is not valid any more." Links last an hour. Ask the agent for a new one.
- Images still being made. A set takes a minute or two, more for many sizes and languages. The agent checks back on its own.
- Sign in again from scratch. Disconnect the app on the Agents page, then connect it again.
Help and security
Questions go to support or support@soggyhotdog.com. To report a security issue, see security.txt.