AppScreenStudio
REMOTE · WWW.APPSCREENSTUDIO.COM
Design App Store and Google Play screenshots with your AI agent in the AppScreenStudio editor.
Available components
Last scanned (16 hours ago)
Scores higher than 60% of remote servers
Reachable. Last reached 23 Oct 2026.
Category Design and Media
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability54
- AI-judged instruction clarity (fair).Partial
- Context-footprint check failed: tool/resource definitions use about 6830 tokens (~139/item across 49 items; 49 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
- Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage78
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 35% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_text" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 50 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
- Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- 18 Oct 26 68
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 23 Oct 2026 · Probed https://www.appscreenstudio.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=appscreenstudio.com | CN=WE1,O=Google Trust Services,C=US | 12 Sept 2026 | 11 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | da0d0ae5b965d92b1392d60fdce56c8d |
| SANs: appscreenstudio.com, *.appscreenstudio.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.appscreenstudio.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| appscreenstudio.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=(self), interest-cohort=() |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.appscreenstudio.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://www.appscreenstudio.com/api/mcp | HTTPS enforced | 301 | https://www.appscreenstudio.com/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_asset ~182
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.
| Name | Type | Req | Description |
|---|---|---|---|
| height | number | – | CSS pixels on the 500px-tall card. |
| rotation | number | – | Degrees, clockwise. |
| screenshotId | string | yes | – |
| spriteCoordinate | object | – | Crop rectangle on the source image, in source pixels. Use a pose from list_library. |
| src | string | yes | – |
| width | number | – | CSS pixels on the 500px-tall card. |
| x | number | – | Layer center, in percent of the card width from the card center. 50 is the right edge. |
| y | number | – | Layer center, in percent of the card height from the card center. 50 is the bottom edge. |
No output schema declared.
No examples provided.
add_div ~601
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.
| Name | Type | Req | Description |
|---|---|---|---|
| backgroundColor | string | – | – |
| borderRadius | number | – | – |
| height | number | yes | CSS pixels on the 500px-tall card. |
| html | string | – | Custom card HTML, up to 8000 characters. Image src and CSS url() must be URLs from upload_image with type asset; data: URLs are rejected. font-family can use built-in editor fonts and fonts added wit… |
| layer | string | – | front paints above the phone and image layers, back paints behind the phone. Text layers always paint above both. Defaults to front for html cards and back for plain boxes. |
| opacity | number | – | – |
| rotationX | number | – | 3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat. |
| rotationY | number | – | 3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat. |
| rotationZ | number | – | 3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat. |
| scale | number | – | Visual multiplier from the center, 0.1 to 4. The html keeps its layout size and does not reflow. 1 is natural size. |
| screenshotId | string | yes | – |
| width | number | yes | CSS pixels on the 500px-tall card. |
| x | number | – | Layer center, in percent of the card width from the card center. 50 is the right edge. |
| y | number | – | Layer center, in percent of the card height from the card center. 50 is the bottom edge. |
No output schema declared.
No examples provided.
add_phone ~750
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bottomFadeColor | string | – | Ignored. The fade always goes to transparent, so whatever is behind the phone shows through. |
| bottomFadeEnabled | boolean | – | – |
| bottomFadeHeight | number | – | – |
| bottomFadePosition | string | – | – |
| deviceId | string | – | This phone's own device, any set_device id. Empty string follows the platform set's device. |
| deviceModelColor | string | – | HyperRealistic (threeDFrame): this phone's own real finish, a deviceColors id of its device. Empty string clears it. |
| focusOverlayBlurBackground | boolean | – | – |
| focusOverlayBorderColor | string | – | – |
| focusOverlayBorderRadius | number | – | – |
| focusOverlayBorderWidth | number | – | – |
| focusOverlayCropBottom | number | – | – |
| focusOverlayCropTop | number | – | – |
| focusOverlayEnabled | boolean | – | – |
| focusOverlayOffsetY | number | – | Vertical offset of the focus overlay, as a percent of its height. Negative moves it up. Range is -1000 to 1000. |
| focusOverlayShadowBlur | number | – | – |
| focusOverlayShadowColor | string | – | – |
| focusOverlayShadowEnabled | boolean | – | – |
| focusOverlayShadowOffsetX | number | – | – |
| focusOverlayShadowOffsetY | number | – | – |
| foldAmount | number | – | Foldable devices and laptops only. iphone-duo: 0 is open flat, 1 is closed; imageUrl shows on the inner display. MacBooks (macbook-*): the lid, opening = 120 x (1 - foldAmount) degrees (0 fully open,… |
| imageRotation | number | – | Old name of rotationZ; it sets rotationZ. |
| imageScale | number | – | – |
| imageUrl | string | – | – |
| imageX | number | – | Phone center, in pixels from the card center on the 500px-tall card. |
| imageY | number | – | Phone center, in pixels from the card center on the 500px-tall card. Positive moves down. |
| outerImageUrl | string | – | Foldable devices (iphone-duo) only: the outer display's image URL (shows when folded). Empty string clears it. |
| phoneColor | string | – | This phone's own generic color (black, white, orange, silver, space-gray, blue, purple, red, green). Empty string follows the platform set's color. |
| rotationX | number | – | Tilt in degrees (top away from the viewer). 3D frames only. |
| rotationY | number | – | Turn in degrees (right side away from the viewer). 3D frames only. |
| rotationZ | number | – | The phone's rotation in degrees, on every frame (with no tilt it is a flat rotation). |
| screenshotId | string | yes | – |
| shadowBlur | number | – | – |
| shadowColor | string | – | – |
| shadowEnabled | boolean | – | – |
| shadowOffsetX | number | – | – |
| shadowOffsetY | number | – | – |
No output schema declared.
No examples provided.
add_platform_set ~32
Add a platform set to the open project.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | – |
| platform | string | yes | – |
No output schema declared.
No examples provided.
add_project_font ~63
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.
| Name | Type | Req | Description |
|---|---|---|---|
| family | string | yes | Exact family name from search_google_fonts, such as Caveat. |
No output schema declared.
No examples provided.
add_screenshot ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| platformSetId | string | yes | – |
No output schema declared.
No examples provided.
add_text ~263
Add a text layer to a screenshot in the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| align | string | – | – |
| backgroundColor | string | – | – |
| borderColor | string | – | – |
| borderRadius | number | – | – |
| color | string | – | CSS color, such as #ffffff |
| content | string | yes | – |
| fontFamily | string | – | Font for the whole layer, such as Nunito: a built-in editor font or one added with add_project_font. |
| fontSize | number | – | Font size in CSS pixels on the 500px-tall editor canvas. |
| fontWeight | string | – | – |
| lineHeight | number | – | Multiplier of the font size |
| rotation | number | – | – |
| screenshotId | string | yes | – |
| textShadowBlur | number | – | – |
| textShadowColor | string | – | – |
| textShadowEnabled | boolean | – | – |
| textShadowOffsetX | number | – | – |
| textShadowOffsetY | number | – | – |
| x | number | – | Layer center, in percent of the card width from the card center. 50 is the right edge. |
| y | number | – | Layer center, in percent of the card height from the card center. 50 is the bottom edge. |
No output schema declared.
No examples provided.
ai_translate ~121
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.
| Name | Type | Req | Description |
|---|---|---|---|
| languages | array | yes | Language codes to add, 1 to 5 unique codes. Examples: tr, de, ja, zh-Hans, pt-BR, es-419, en-GB. |
No output schema declared.
No examples provided.
capture_platform_strip ~52
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.
| Name | Type | Req | Description |
|---|---|---|---|
| platformSetId | string | – | – |
No output schema declared.
No examples provided.
copy_screenshot ~35
Copy a screenshot onto another platform set.
| Name | Type | Req | Description |
|---|---|---|---|
| screenshotId | string | yes | – |
| targetPlatformSetId | string | yes | – |
No output schema declared.
No examples provided.
duplicate_screenshot ~28
Duplicate a screenshot and insert the copy immediately after it.
| Name | Type | Req | Description |
|---|---|---|---|
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
generate_asset ~91
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.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt | string | – | What to draw, up to 2000 characters. |
| quality | string | – | – |
| referenceUrl | string | – | Optional https image URL used as a visual reference. |
No output schema declared.
No examples provided.
generate_background ~35
Generate an AI background for one card. Spends credits.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt | string | – | – |
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
generate_mascot ~108
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.
| Name | Type | Req | Description |
|---|---|---|---|
| presetId | string | – | – |
| prompt | string | – | What to draw, up to 2000 characters. Optional when presetId is set. |
| quality | string | – | – |
| referenceUrl | string | – | Optional https image URL used as a visual reference. |
No output schema declared.
No examples provided.
get_editor_snapshot ~123
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.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | – | Open every set of this platform. Use this when you know the store and not the set id. |
| platformSetId | string | – | Open this set. Ids come from a snapshot that omitted screenshots. |
No output schema declared.
No examples provided.
get_sprite ~52
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.
| Name | Type | Req | Description |
|---|---|---|---|
| imageId | string | yes | – |
No output schema declared.
No examples provided.
list_library ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | – |
| limit | number | – | Page size, 1 to 50. Defaults to 20. Mascots are capped at 10. |
| page | number | – | Page number, starting at 1. Defaults to 1. |
No output schema declared.
No examples provided.
move_screenshot ~35
Move a screenshot left or right within its platform set.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | yes | – |
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
rate_this_mcp ~52
Rate how well these MCP tools worked for the task you just finished, from 1 to 5 stars. Call it once per task.
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | – | – |
| stars | integer | yes | – |
No output schema declared.
No examples provided.
redo ~18
Redo the last undone edit in the open editor.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
remove_asset ~36
Remove an image layer from a screenshot in the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| assetId | string | yes | – |
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
remove_div ~36
Remove a box layer from a screenshot in the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| divId | string | yes | – |
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
remove_phone ~33
Remove an extra phone added with add_phone.
| Name | Type | Req | Description |
|---|---|---|---|
| phoneId | string | yes | – |
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
remove_platform_set ~32
Remove an extra platform set. The first set of each platform stays.
| Name | Type | Req | Description |
|---|---|---|---|
| platformSetId | string | yes | – |
No output schema declared.
No examples provided.
remove_screenshot ~25
Remove a screenshot from the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
remove_text ~36
Remove a text layer from a screenshot in the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| screenshotId | string | yes | – |
| textId | string | yes | – |
No output schema declared.
No examples provided.
rename_project ~20
Rename the open project.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
No output schema declared.
No examples provided.
reorder_element ~84
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.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | yes | – |
| elementId | string | yes | – |
| kind | string | yes | – |
| screenshotId | string | yes | – |
No output schema declared.
No examples provided.
report_mcp_feedback ~54
Report a bug, an unexpected tool result, or a suggestion about these MCP tools, when you notice one.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | – |
| message | string | yes | – |
| toolName | string | – | – |
No output schema declared.
No examples provided.
search_google_fonts ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| limit | number | – | 1 to 50. Defaults to 20. |
| query | string | – | Part of a family name, such as caveat or mono. |
No output schema declared.
No examples provided.
set_device ~240
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.
| Name | Type | Req | Description |
|---|---|---|---|
| deviceId | string | yes | – |
| platformSetId | string | yes | – |
No output schema declared.
No examples provided.
set_language ~29
Switch the open editor to a language that already exists on the project.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | yes | – |
No output schema declared.
No examples provided.
set_link_texts ~27
Link or unlink matching text layers across platform sets.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
No output schema declared.
No examples provided.
set_phone_color ~132
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.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | yes | A generic color (black, white, orange, silver, space-gray, blue, purple, red, green) or, on a HyperRealistic set, a deviceColors id. |
| platformSetId | string | yes | – |
No output schema declared.
No examples provided.
set_project_background ~41
Set or clear the project background image. Pass an empty imageUrl to clear it.
| Name | Type | Req | Description |
|---|---|---|---|
| blur | number | – | – |
| imageUrl | string | yes | – |
No output schema declared.
No examples provided.
set_realistic_frame ~109
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.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| platformSetId | string | yes | – |
| threeD | boolean | – | 3D device model instead of the flat realistic frame. Requires enabled true. |
No output schema declared.
No examples provided.
set_resolution ~40
Set the pixel size of a platform set.
| Name | Type | Req | Description |
|---|---|---|---|
| height | number | yes | – |
| platformSetId | string | yes | – |
| width | number | yes | – |
No output schema declared.
No examples provided.
set_show_notch ~36
Show or hide the notch on a platform set.
| Name | Type | Req | Description |
|---|---|---|---|
| platformSetId | string | yes | – |
| show | boolean | yes | – |
No output schema declared.
No examples provided.
set_squircle_frame ~39
Enable or disable the squircle frame on a platform set.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| platformSetId | string | yes | – |
No output schema declared.
No examples provided.
set_template ~24
Set the template of the open project.
| Name | Type | Req | Description |
|---|---|---|---|
| templateId | string | yes | – |
No output schema declared.
No examples provided.
undo ~16
Undo the last edit in the open editor.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
update_asset ~138
Update an image layer on a screenshot in the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| assetId | string | yes | – |
| height | number | – | CSS pixels on the 500px-tall card. |
| rotation | number | – | – |
| screenshotId | string | yes | – |
| src | string | – | – |
| width | number | – | CSS pixels on the 500px-tall card. |
| x | number | – | Layer center, in percent of the card width from the card center. 50 is the right edge. |
| y | number | – | Layer center, in percent of the card height from the card center. 50 is the bottom edge. |
No output schema declared.
No examples provided.
update_div ~354
Update a box layer on a card.
| Name | Type | Req | Description |
|---|---|---|---|
| backgroundColor | string | – | – |
| borderRadius | number | – | – |
| divId | string | yes | – |
| height | number | – | CSS pixels on the 500px-tall card. |
| html | string | – | New card HTML, with the same rules as add_div html. Empty string clears the card. |
| layer | string | – | front paints above the phone and image layers, back paints behind the phone. Text layers always paint above both. Defaults to front for html cards and back for plain boxes. |
| opacity | number | – | – |
| rotationX | number | – | 3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat. |
| rotationY | number | – | 3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat. |
| rotationZ | number | – | 3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat. |
| scale | number | – | Visual multiplier from the center, 0.1 to 4. The html keeps its layout size and does not reflow. 1 is natural size. |
| screenshotId | string | yes | – |
| width | number | – | CSS pixels on the 500px-tall card. |
| x | number | – | Layer center, in percent of the card width from the card center. 50 is the right edge. |
| y | number | – | Layer center, in percent of the card height from the card center. 50 is the bottom edge. |
No output schema declared.
No examples provided.
update_phone ~718
Update an extra phone added with add_phone. Takes the same phone fields as update_screenshot. The main phone is edited with update_screenshot.
| Name | Type | Req | Description |
|---|---|---|---|
| bottomFadeColor | string | – | Ignored. The fade always goes to transparent, so whatever is behind the phone shows through. |
| bottomFadeEnabled | boolean | – | – |
| bottomFadeHeight | number | – | – |
| bottomFadePosition | string | – | – |
| deviceId | string | – | This phone's own device, any set_device id. Empty string follows the platform set's device. |
| deviceModelColor | string | – | HyperRealistic (threeDFrame): this phone's own real finish, a deviceColors id of its device. Empty string clears it. |
| focusOverlayBlurBackground | boolean | – | – |
| focusOverlayBorderColor | string | – | – |
| focusOverlayBorderRadius | number | – | – |
| focusOverlayBorderWidth | number | – | – |
| focusOverlayCropBottom | number | – | – |
| focusOverlayCropTop | number | – | – |
| focusOverlayEnabled | boolean | – | – |
| focusOverlayOffsetY | number | – | Vertical offset of the focus overlay, as a percent of its height. Negative moves it up. Range is -1000 to 1000. |
| focusOverlayShadowBlur | number | – | – |
| focusOverlayShadowColor | string | – | – |
| focusOverlayShadowEnabled | boolean | – | – |
| focusOverlayShadowOffsetX | number | – | – |
| focusOverlayShadowOffsetY | number | – | – |
| foldAmount | number | – | Foldable devices and laptops only. iphone-duo: 0 is open flat, 1 is closed; imageUrl shows on the inner display. MacBooks (macbook-*): the lid, opening = 120 x (1 - foldAmount) degrees (0 fully open,… |
| imageRotation | number | – | Old name of rotationZ; it sets rotationZ. |
| imageScale | number | – | – |
| imageUrl | string | – | – |
| imageX | number | – | Phone center, in pixels from the card center on the 500px-tall card. |
| imageY | number | – | Phone center, in pixels from the card center on the 500px-tall card. Positive moves down. |
| outerImageUrl | string | – | Foldable devices (iphone-duo) only: the outer display's image URL (shows when folded). Empty string clears it. |
| phoneColor | string | – | This phone's own generic color (black, white, orange, silver, space-gray, blue, purple, red, green). Empty string follows the platform set's color. |
| phoneId | string | yes | – |
| rotationX | number | – | Tilt in degrees (top away from the viewer). 3D frames only. |
| rotationY | number | – | Turn in degrees (right side away from the viewer). 3D frames only. |
| rotationZ | number | – | The phone's rotation in degrees, on every frame (with no tilt it is a flat rotation). |
| screenshotId | string | yes | – |
| shadowBlur | number | – | – |
| shadowColor | string | – | – |
| shadowEnabled | boolean | – | – |
| shadowOffsetX | number | – | – |
| shadowOffsetY | number | – | – |
No output schema declared.
No examples provided.
update_screenshot ~793
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.
| Name | Type | Req | Description |
|---|---|---|---|
| backgroundColor | string | – | – |
| backgroundImage | string | – | – |
| backgroundImageBlur | number | – | – |
| backgroundPatternColor | string | – | – |
| backgroundPatternId | string | – | – |
| bottomFadeColor | string | – | Ignored. The fade always goes to transparent, so whatever is behind the phone shows through. |
| bottomFadeEnabled | boolean | – | – |
| bottomFadeHeight | number | – | – |
| bottomFadePosition | string | – | – |
| deviceId | string | – | This phone's own device, any set_device id. Empty string follows the platform set's device. |
| deviceModelColor | string | – | HyperRealistic (threeDFrame): this phone's own real finish, a deviceColors id of its device. Empty string clears it. |
| focusOverlayBlurBackground | boolean | – | – |
| focusOverlayBorderColor | string | – | – |
| focusOverlayBorderRadius | number | – | – |
| focusOverlayBorderWidth | number | – | – |
| focusOverlayCropBottom | number | – | – |
| focusOverlayCropTop | number | – | – |
| focusOverlayEnabled | boolean | – | – |
| focusOverlayOffsetY | number | – | Vertical offset of the focus overlay, as a percent of its height. Negative moves it up. Range is -1000 to 1000. |
| focusOverlayShadowBlur | number | – | – |
| focusOverlayShadowColor | string | – | – |
| focusOverlayShadowEnabled | boolean | – | – |
| focusOverlayShadowOffsetX | number | – | – |
| focusOverlayShadowOffsetY | number | – | – |
| foldAmount | number | – | Foldable devices and laptops only. iphone-duo: 0 is open flat, 1 is closed; imageUrl shows on the inner display. MacBooks (macbook-*): the lid, opening = 120 x (1 - foldAmount) degrees (0 fully open,… |
| hideCardOverflow | boolean | – | – |
| imageDisabled | boolean | – | – |
| imageRotation | number | – | Old name of rotationZ; it sets rotationZ. |
| imageScale | number | – | – |
| imageUrl | string | – | – |
| imageX | number | – | Phone center, in pixels from the card center on the 500px-tall card. |
| imageY | number | – | Phone center, in pixels from the card center on the 500px-tall card. Positive moves down. |
| outerImageUrl | string | – | Foldable devices (iphone-duo) only: the outer display's image URL (shows when folded). Empty string clears it. |
| phoneColor | string | – | This phone's own generic color (black, white, orange, silver, space-gray, blue, purple, red, green). Empty string follows the platform set's color. |
| rotationX | number | – | Tilt in degrees (top away from the viewer). 3D frames only. |
| rotationY | number | – | Turn in degrees (right side away from the viewer). 3D frames only. |
| rotationZ | number | – | The phone's rotation in degrees, on every frame (with no tilt it is a flat rotation). |
| screenshotId | string | yes | – |
| shadowBlur | number | – | – |
| shadowColor | string | – | – |
| shadowEnabled | boolean | – | – |
| shadowOffsetX | number | – | – |
| shadowOffsetY | number | – | – |
No output schema declared.
No examples provided.
update_store_listing ~51
Update App Store or Google Play listing fields for the current language. Does not generate copy. Returns the names of the fields written.
| Name | Type | Req | Description |
|---|---|---|---|
| appStore | object | – | – |
| googlePlay | object | – | – |
No output schema declared.
No examples provided.
update_template_color ~100
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.
| Name | Type | Req | Description |
|---|---|---|---|
| colorId | string | yes | – |
| value | string | yes | – |
No output schema declared.
No examples provided.
update_text ~271
Update a text layer on a screenshot in the open editor.
| Name | Type | Req | Description |
|---|---|---|---|
| align | string | – | – |
| backgroundColor | string | – | – |
| borderColor | string | – | – |
| borderRadius | number | – | – |
| color | string | – | CSS color, such as #ffffff |
| content | string | – | – |
| fontFamily | string | – | Font for the whole layer, such as Nunito: a built-in editor font or one added with add_project_font. |
| fontSize | number | – | Font size in CSS pixels on the 500px-tall editor canvas. |
| fontWeight | string | – | – |
| lineHeight | number | – | Multiplier of the font size |
| rotation | number | – | – |
| screenshotId | string | yes | – |
| textId | string | yes | – |
| textShadowBlur | number | – | – |
| textShadowColor | string | – | – |
| textShadowEnabled | boolean | – | – |
| textShadowOffsetX | number | – | – |
| textShadowOffsetY | number | – | – |
| x | number | – | Layer center, in percent of the card width from the card center. 50 is the right edge. |
| y | number | – | Layer center, in percent of the card height from the card center. 50 is the bottom edge. |
No output schema declared.
No examples provided.
upload_image ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| base64 | string | – | Optional raw base64 or data URL. Omit this and POST the file to uploadUrl. |
| filename | string | yes | File name, 1 to 120 characters, no path. Use a png, jpg, jpeg, or webp extension. For type asset, svg is also allowed. |
| type | string | yes | – |
No output schema declared.
No examples provided.
How do I install the AppScreenStudio MCP server?
AppScreenStudio is a hosted endpoint at https://www.appscreenstudio.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · www.appscreenstudio.com
claude mcp add --transport http com-appscreenstudio-app-screen-studio 'https://www.appscreenstudio.com/api/mcp'
What is the AppScreenStudio MCP server?
AppScreenStudio is an MCP server listed in the public MCP registry as com.appscreenstudio/app-screen-studio. Design App Store and Google Play screenshots with your AI agent in the AppScreenStudio editor. This page covers its hosted endpoint (https://www.appscreenstudio.com/api/mcp).
Is the AppScreenStudio MCP server safe to use?
AppScreenStudio scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the AppScreenStudio MCP server expose?
AppScreenStudio exposes 49 tools: get_editor_snapshot, update_text, add_text, remove_text, add_screenshot, and 44 more. Their descriptions and schemas cost roughly 6,631 tokens of context every time the server is loaded.
Does the AppScreenStudio MCP server require authentication?
Yes. AppScreenStudio asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the AppScreenStudio MCP server still maintained?
AppScreenStudio is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.