AppScreenStudio

com.appscreenstudioPublished by appscreenstudio.comOfficial publisherv0.1.0Updated Oct 27, 2026

Design App Store and Google Play screenshots with your AI agent in the AppScreenStudio editor.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowMedia & Design

Overview

AI-generated overview

Connects an AI assistant to the open AppScreenStudio editor so it can design App Store and Google Play screenshots, cards, text and device frames.

What you can do
  • Read the open project and render a preview strip of a platform set to check edits
  • Add, update, remove and duplicate cards, text layers, image layers, box layers and extra phones, and reorder layers
  • Switch templates, template colors, resolution, device, phone color, notch, squircle and realistic frames, and link texts across sets
  • Upload images, search and add Google Fonts, and list or fetch saved assets and mascots
  • Generate AI assets, mascots and backgrounds, translate languages, and write store listing fields
When to use it
Useful when you already work in AppScreenStudio and want an agent to bulk-edit screenshot sets, rewrite headlines, copy cards between iOS and Android sets, localize a project, or fill in store listing text while seeing changes live in the editor.
Requirements
Remote Streamable HTTP endpoint at appscreenstudio.com; no local install. Requires an AppScreenStudio account, a project open in a browser editor tab, and a bearer token from the editor's Connect Your Agent / MCP Details panel sent in the Authorization header. The editor tab must stay open or calls fail.
Before you install
The bearer token belongs to your account and stays valid until rotated; treat it like a password. Tools write to the open project, including removing cards, layers, phones and platform sets, so review changes and use undo. AI tools (generate_asset, generate_mascot, generate_background, ai_translate) spend account credits. Tool calls are relayed to the open editor tab.

Installation

In SourceWeft

  1. Open AppScreenStudio in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.appscreenstudio%2Fapp-screen-studio/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "appscreenstudio": {
      "type": "http",
      "url": "https://www.appscreenstudio.com/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

AppScreenStudio MCP

Let your AI agent design App Store and Google Play screenshots in AppScreenStudio.

AppScreenStudio is a browser-based App Store and Google Play screenshot generator. Indie developers, mobile marketers, and ASO teams upload raw app screens, pick a template, place them in iPhone, iPad, and Android device frames, edit headlines, backgrounds, and images, then export every required store size in one click. Optional AI features handle localization, mascots, backgrounds, and assets. Nothing to install: it runs in the browser.

This repository holds the documentation and client configs for the hosted AppScreenStudio MCP server. The server itself runs on www.appscreenstudio.com, so there is nothing to build or run here.

What the MCP server does

The server connects an MCP client (Claude Code, Cursor, Codex, Gemini CLI, VS Code, and others) to the AppScreenStudio editor you have open in your browser. Your agent can read the project, add and edit cards, text, images, phones, and HTML blocks, switch templates, devices, and sizes, upload your app screens, generate AI assets and backgrounds, translate the whole set into new languages, fill in store listing text, and render a preview strip to check its own work. Every change shows up live in the editor, and you can undo it there like any other edit.

Endpointhttps://www.appscreenstudio.com/api/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer <token> header
Registry namecom.appscreenstudio/app-screen-studio

Get your token

  1. Sign in at appscreenstudio.com and open a project in the editor.
  2. Click Connect Your Agent in the editor.
  3. Open MCP Details. It shows the endpoint, your token, and a ready-to-paste MCP config.
  4. Keep that editor tab open. The server relays every tool call to the open editor, so calls fail with "No editor is connected" when the tab is closed.

The token belongs to your account and stays the same until you click Rotate token, which invalidates the old one. Treat it like a password.

Client setup

Replace YOUR_TOKEN with the token from the editor.

Claude Code

bash
claude mcp add --transport http app-screen-studio https://www.appscreenstudio.com/api/mcp \  --header "Authorization: Bearer YOUR_TOKEN"

Cursor

Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). It is the same config the editor's MCP config copy button gives you.

json
{  "mcpServers": {    "app-screen-studio": {      "url": "https://www.appscreenstudio.com/api/mcp",      "headers": {        "Authorization": "Bearer YOUR_TOKEN"      }    }  }}

Codex

Add this to ~/.codex/config.toml:

toml
[mcp_servers.app-screen-studio]url = "https://www.appscreenstudio.com/api/mcp"bearer_token_env_var = "APPSCREENSTUDIO_MCP_TOKEN"

Then export the token in the shell that runs Codex:

bash
export APPSCREENSTUDIO_MCP_TOKEN="YOUR_TOKEN"

Gemini CLI

bash
gemini mcp add -t http -H "Authorization: Bearer YOUR_TOKEN" app-screen-studio https://www.appscreenstudio.com/api/mcp

Or add this to ~/.gemini/settings.json:

json
{  "mcpServers": {    "app-screen-studio": {      "httpUrl": "https://www.appscreenstudio.com/api/mcp",      "headers": {        "Authorization": "Bearer YOUR_TOKEN"      }    }  }}

VS Code

Add this to .vscode/mcp.json. VS Code asks for the token once and stores it securely.

json
{  "inputs": [    {      "type": "promptString",      "id": "appscreenstudio-token",      "description": "AppScreenStudio MCP token (editor: Connect Your Agent, MCP Details)",      "password": true    }  ],  "servers": {    "app-screen-studio": {      "type": "http",      "url": "https://www.appscreenstudio.com/api/mcp",      "headers": {        "Authorization": "Bearer ${input:appscreenstudio-token}"      }    }  }}

Other clients

Any MCP client that supports Streamable HTTP with custom headers works. Point it at https://www.appscreenstudio.com/api/mcp and send Authorization: Bearer YOUR_TOKEN.

Tools

ToolWhat it does
get_editor_snapshotRead one platform of the open editor.
update_textUpdate a text layer on a screenshot in the open editor.
add_textAdd a text layer to a screenshot in the open editor.
remove_textRemove a text layer from a screenshot in the open editor.
add_screenshotAdd a card to the end of a platform set.
update_screenshotUpdate a card and its main phone: background, phone placement and app screen, pattern, fade, or shadow.
remove_screenshotRemove a screenshot from the open editor.
add_assetAdd an image layer to a card.
update_assetUpdate an image layer on a screenshot in the open editor.
remove_assetRemove an image layer from a screenshot in the open editor.
add_divAdd a box layer to a card.
update_divUpdate a box layer on a card.
remove_divRemove a box layer from a screenshot in the open editor.
add_phoneAdd another phone to a screenshot card in the open editor.
update_phoneUpdate an extra phone added with add_phone.
remove_phoneRemove an extra phone added with add_phone.
reorder_elementMove a layer one step forward or backward among layers of the same kind.
set_templateSet the template of the open project.
update_template_colorUpdate one color of the open project's template.
set_resolutionSet the pixel size of a platform set.
set_deviceSet the device of a platform set.
set_phone_colorSet the device color of a platform set.
set_show_notchShow or hide the notch on a platform set.
set_squircle_frameEnable or disable the squircle frame on a platform set.
set_link_textsLink or unlink matching text layers across platform sets.
rename_projectRename the open project.
undoUndo the last edit in the open editor.
redoRedo the last undone edit in the open editor.
search_google_fontsSearch Google Fonts by family name, category, or both.
add_project_fontAdd a Google Fonts family to the open project.
list_libraryList assets or mascots saved on this account (not screenshots or backgrounds).
get_spriteReturn one saved asset or mascot in the same shape as a list_library item, including spriteSheet and poses.
generate_assetGenerate an asset sprite with AI and save it to the account library.
generate_mascotGenerate a mascot sprite with AI and save it to the account library.
generate_backgroundGenerate an AI background for one card.
update_store_listingUpdate App Store or Google Play listing fields for the current language.
capture_platform_stripReturn one JPEG of every card in a platform set side by side, as the editor renders them.
upload_imagePrepare an image upload for the open project.
duplicate_screenshotDuplicate a screenshot and insert the copy immediately after it.
copy_screenshotCopy a screenshot onto another platform set.
move_screenshotMove a screenshot left or right within its platform set.
set_languageSwitch the open editor to a language that already exists on the project.
ai_translateAdd up to 5 languages by translating the open language with the same AI localize flow as the editor.
add_platform_setAdd a platform set to the open project.
remove_platform_setRemove an extra platform set.
set_project_backgroundSet or clear the project background image.
set_realistic_frameEnable or disable the realistic device frame on a platform set.
report_mcp_feedbackReport a bug, an unexpected tool result, or a suggestion about these MCP tools, when you notice one.
rate_this_mcpRate how well these MCP tools worked for the task you just finished, from 1 to 5 stars.

AI tools (generate_asset, generate_mascot, generate_background, ai_translate) spend AppScreenStudio AI credits from your account.

Example prompts

  • "Read my AppScreenStudio project and rewrite every headline as a benefit in five words or fewer."
  • "Upload the screens in ./screenshots, put one on each card, give every card a headline, then show me the strip."
  • "Switch the iOS set to the realistic 3D iPhone frame and tilt each phone a little, alternating left and right."
  • "Copy the iOS cards to the Android set and fix anything that no longer fits the new size."
  • "Translate the project into German, Japanese, and Spanish, then check every language with a preview strip."
  • "Generate a friendly mascot for my budgeting app and place it on the first card."
  • "Write the App Store subtitle, promotional text, and keywords for the current language."

Links

License

The documentation and config files in this repository are released under the MIT License. The AppScreenStudio service, the hosted MCP server, and the AppScreenStudio name and assets are not covered by this license.

Source: README.md at commit dd79df8

Tools

49

get_editor_snapshot

Read one platform of the open editor. Pass platform or platformSetId to include that set's screenshots. With no argument, a project with one platform set returns that set. A project with more than one set returns the set directory and screenshotsOmitted, without screenshot bodies. Call again with platform or an id from that directory.

ParametersplatformplatformSetId

update_text

Update a text layer on a screenshot in the open editor.

ParametersxyaligncolortextIdrequiredcontentfontSizerotationfontFamilyfontWeightlineHeightborderColor+8 more

add_text

Add a text layer to a screenshot in the open editor.

ParametersxyaligncolorcontentrequiredfontSizerotationfontFamilyfontWeightlineHeightborderColorborderRadius+7 more

remove_text

Remove a text layer from a screenshot in the open editor.

ParameterstextIdrequiredscreenshotIdrequired

add_screenshot

Add a card to the end of a platform set. The card is not blank: the set's first three cards get the template's sample texts and phone placement (sometimes a hidden or tilted phone), and later cards copy every layer of the set's last card without its phone image. Returns the ids of those layers so you can update or remove them.

ParametersplatformSetIdrequired

update_screenshot

Update a card and its main phone: background, phone placement and app screen, pattern, fade, or shadow. imageUrl is the app screen inside the phone (upload_image with type screenshot). The phone model is chosen per platform set with set_device.

ParametersimageXimageYdeviceIdimageUrlrotationXrotationYrotationZfoldAmountimageScalephoneColorshadowBlurshadowColor+31 more

remove_screenshot

Remove a screenshot from the open editor.

ParametersscreenshotIdrequired

add_asset

Add an image layer to a card. src is an image URL, such as one from upload_image or list_library. Pass spriteCoordinate to crop one pose of a sprite sheet.

ParametersxysrcrequiredwidthheightrotationscreenshotIdrequiredspriteCoordinate

update_asset

Update an image layer on a screenshot in the open editor.

ParametersxysrcwidthheightassetIdrequiredrotationscreenshotIdrequired

remove_asset

Remove an image layer from a screenshot in the open editor.

ParametersassetIdrequiredscreenshotIdrequired

add_div

Add a box layer to a card. Pass html to draw a custom card: width and height set its layout box, and every visible style goes in the html, since backgroundColor and borderRadius only style plain boxes without html. A style element stays inside the card.

ParametersxyhtmllayerscalewidthrequiredheightrequiredopacityrotationXrotationYrotationZborderRadius+2 more

update_div

Update a box layer on a card.

ParametersxyhtmldivIdrequiredlayerscalewidthheightopacityrotationXrotationYrotationZ+3 more

remove_div

Remove a box layer from a screenshot in the open editor.

ParametersdivIdrequiredscreenshotIdrequired

add_phone

Add another phone to a screenshot card in the open editor. It uses the platform set's device frame and starts next to the main phone with its size, rotation, and shadow. Set imageUrl to an image URL (upload_image with type screenshot). Extra phones paint above the main phone, in the order they were added. Returns phoneId.

ParametersimageXimageYdeviceIdimageUrlrotationXrotationYrotationZfoldAmountimageScalephoneColorshadowBlurshadowColor+24 more

update_phone

Update an extra phone added with add_phone. Takes the same phone fields as update_screenshot. The main phone is edited with update_screenshot.

ParametersimageXimageYphoneIdrequireddeviceIdimageUrlrotationXrotationYrotationZfoldAmountimageScalephoneColorshadowBlur+25 more

remove_phone

Remove an extra phone added with add_phone.

ParametersphoneIdrequiredscreenshotIdrequired

reorder_element

Move a layer one step forward or backward among layers of the same kind. It cannot move a layer across kinds: back to front, cards always paint back divs, phones, image layers, front divs, then texts.

ParameterskindrequireddirectionrequiredelementIdrequiredscreenshotIdrequired

set_template

Set the template of the open project.

ParameterstemplateIdrequired

update_template_color

Update one color of the open project's template. colorId must be one of the current template's colors: minimal (bg), gradient (from, via, to), geometric (bg, circle1, circle2), wave (from, to, wave), glass (from, to), connected (bg, dots). value is a CSS color such as #22c55e.

ParametersvaluerequiredcolorIdrequired

set_resolution

Set the pixel size of a platform set.

ParameterswidthrequiredheightrequiredplatformSetIdrequired

set_device

Set the device of a platform set. iOS sets take iphone-13-pro, iphone-13-pro-max, iphone-15-pro, iphone-15-pro-max, iphone-17-pro, iphone-17-pro-max, iphone-18-pro, iphone-18-pro-max, iphone-duo, borderless-frame, ipad-pro-12, ipad-pro-13, macbook-air-13, macbook-air-15, macbook-pro-14, macbook-pro-16. Android sets take pixel-8-pro, galaxy-s24-ultra, galaxy-s26-ultra, galaxy-tab-s10, android-borderless-frame. Social sets take any of them. borderless-frame and android-borderless-frame show the screenshot without a phone frame. macbook-air-13, macbook-air-15, macbook-pro-14, macbook-pro-16 are MacBooks: HyperRealistic 3D only, the screenshot fills the display (a 16:10 Mac screenshot loses a sliver at the sides), the lid is set with foldAmount.

ParametersdeviceIdrequiredplatformSetIdrequired

set_phone_color

Set the device color of a platform set. On a HyperRealistic (threeDFrame) set the device shows only its real finishes: pass one of the set's deviceColors ids (see the snapshot); a generic color (black, white, orange, silver, space-gray, blue, purple, red, green) picks the closest real finish.

ParameterscolorrequiredplatformSetIdrequired

set_show_notch

Show or hide the notch on a platform set.

ParametersshowrequiredplatformSetIdrequired

set_squircle_frame

Enable or disable the squircle frame on a platform set.

ParametersenabledrequiredplatformSetIdrequired

rename_project

Rename the open project.

Parametersnamerequired

undo

Undo the last edit in the open editor.

Takes no parameters.

redo

Redo the last undone edit in the open editor.

Takes no parameters.

search_google_fonts

Search Google Fonts by family name, category, or both. usable is true when the project can already use the family: a built-in editor font or one added with add_project_font.

Parameterslimitquerycategory

add_project_font

Add a Google Fonts family to the open project. Then use it as fontFamily on text layers or as font-family in card html. Built-in editor fonts need no adding.

Parametersfamilyrequired

list_library

List assets or mascots saved on this account (not screenshots or backgrounds). Items with spriteSheet true have poses, crop rectangles for add_asset spriteCoordinate. Also returns one image of up to 10 items with each id beside its picture.

Parameterskindrequiredpagelimit

get_sprite

Return one saved asset or mascot in the same shape as a list_library item, including spriteSheet and poses. Also returns one image of each pose with its index drawn beside it.

ParametersimageIdrequired

generate_asset

Generate an asset sprite with AI and save it to the account library. Spends credits. Returns imageUrl and poses like get_sprite, with a preview of each pose. Does not place it on a card.

ParameterspromptqualityreferenceUrl

generate_mascot

Generate a mascot sprite with AI and save it to the account library. Spends credits. Returns imageUrl and poses like get_sprite, with a preview of each pose. Does not place it on a card.

ParameterspromptqualitypresetIdreferenceUrl

generate_background

Generate an AI background for one card. Spends credits.

ParameterspromptscreenshotIdrequired

update_store_listing

Update App Store or Google Play listing fields for the current language. Does not generate copy. Returns the names of the fields written.

ParametersappStoregooglePlay

capture_platform_strip

Return one JPEG of every card in a platform set side by side, as the editor renders them. Use it to check your edits. Defaults to the first platform set.

ParametersplatformSetId

upload_image

Prepare an image upload for the open project. Returns a one-time uploadUrl. POST the image as multipart form field "file" to that URL. The response JSON url is the stored image. Use it with update_screenshot imageUrl, add_asset src, set_project_background, or img src and CSS url() inside add_div or update_div html. For card images, use type asset. The link works once; if the POST fails, call this tool again. Pass base64 only when you cannot make that HTTP request.

Parameterstyperequiredbase64filenamerequired

duplicate_screenshot

Duplicate a screenshot and insert the copy immediately after it.

ParametersscreenshotIdrequired

copy_screenshot

Copy a screenshot onto another platform set.

ParametersscreenshotIdrequiredtargetPlatformSetIdrequired

move_screenshot

Move a screenshot left or right within its platform set.

ParametersdirectionrequiredscreenshotIdrequired

set_language

Switch the open editor to a language that already exists on the project.

Parameterslangrequired

ai_translate

Add up to 5 languages by translating the open language with the same AI localize flow as the editor. Translates iOS and Android screenshot text and the store listing. Social screenshot text is copied unchanged. Spends credits. Does not switch the open language. Fails when the account cannot spend credits or a code is already on the project.

Parameterslanguagesrequired

add_platform_set

Add a platform set to the open project.

Parametersnameplatformrequired

remove_platform_set

Remove an extra platform set. The first set of each platform stays.

ParametersplatformSetIdrequired

set_project_background

Set or clear the project background image. Pass an empty imageUrl to clear it.

ParametersblurimageUrlrequired

set_realistic_frame

Enable or disable the realistic device frame on a platform set. With threeD true the frame is a 3D device model (HyperRealistic) that also takes rotationX, rotationY, and rotationZ. 3D works on every device except borderless-frame and android-borderless-frame.

ParametersthreeDenabledrequiredplatformSetIdrequired

report_mcp_feedback

Report a bug, an unexpected tool result, or a suggestion about these MCP tools, when you notice one.

ParameterskindrequiredmessagerequiredtoolName

rate_this_mcp

Rate how well these MCP tools worked for the task you just finished, from 1 to 5 stars. Call it once per task.

Parametersstarsrequiredcomment

Version history

1
  1. v0.1.0LatestOct 18, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts