Is the Appscreenstudio App Screen Studio MCP server down?

mcp-registry/com.appscreenstudio/app-screen-studio · v0.1.0

Also listed as github/appscreenstudio/appscreenstudio-mcp

healthy
Last checked 2026-10-23 20:53 UTC · handshake 844ms

As of 2026-10-23 20:53 UTC, the Appscreenstudio App Screen Studio MCP server is up with a Glimind reliability score of 94/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

uptime (30d checks)
100%
checks observed
1,311
outages (90d)
0
tools
49

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

Install Appscreenstudio App Screen Studio MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http appscreenstudio-app-screen-studio-mcp-se https://www.appscreenstudio.com/api/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "appscreenstudio-app-screen-studio-mcp-se": {
      "type": "http",
      "url": "https://www.appscreenstudio.com/api/mcp"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: D (63/100)

D (63/100): 0 error(s), 4 warning(s) across 49 tool(s); ~9,961 tokens of tool definitions.
Scores higher than 0% of 15,594 MCP servers Glimind has audited.
Its tool list costs an agent ~9,961 tokens per session — more than 80% of servers.
63 → 63 since 2026-10-18
no tool-poisoning patterns
Schemas100
Descriptions30
Safety hints0
Token cost75
Client compatibility70
Protocol100
Reliability100
Stability100

What to fix (5)

49 of 49 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: add_asset, add_div, add_phone, add_platform_set, add_project_font and 44 more

49 tools on one server. Tool-selection accuracy drops as the menu grows, and some clients (e.g. Cursor) cap the number of active tools.

Group tools by task into smaller servers or toolsets, and merge near-duplicates behind one tool with a mode parameter. How to fix →

178 parameter(s) across 44 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: add_asset, add_div, add_phone, add_platform_set, add_screenshot and 39 more

24 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.

Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →

Tools: add_platform_set, move_screenshot, remove_asset, remove_div, remove_phone and 19 more

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

Auto-fix: 37 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 44 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio/fixes

add_asset 1 change
{
  "name": "add_asset",
  "description": "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.",
  "inputSchema": {
    "type": "object",
    "required": [
      "screenshotId",
      "src"
    ],
    "properties": {
      "x": {
        "type": "number",
        "description": "Layer center, in percent of the card width from the card center. 50 is the right edge."
      },
      "y": {
        "type": "number",
        "description": "Layer center, in percent of the card height from the card center. 50 is the bottom edge."
      },
      "src": {
        "type": "string"
      },
      "width": {
        "type": "number",
        "description": "CSS pixels on the 500px-tall card."
      },
      "height": {
        "type": "number",
        "description": "CSS pixels on the 500px-tall card."
      },
      "rotation": {
        "type": "number",
        "description": "Degrees, clockwise."
      },
      "screenshotId": {
        "type": "string"
      },
      "spriteCoordinate": {
        "type": "object",
        "required": [
          "x",
          "y",
          "width",
          "height"
        ],
        "properties": {
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          }
        },
        "description": "Crop rectangle on the source image, in source pixels. Use a pose from list_library."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}
add_div 1 change
{
  "name": "add_div",
  "description": "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.",
  "inputSchema": {
    "type": "object",
    "required": [
      "screenshotId",
      "width",
      "height"
    ],
    "properties": {
      "x": {
        "type": "number",
        "description": "Layer center, in percent of the card width from the card center. 50 is the right edge."
      },
      "y": {
        "type": "number",
        "description": "Layer center, in percent of the card height from the card center. 50 is the bottom edge."
      },
      "html": {
        "type": "string",
        "description": "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 with add_project_font; @import and external stylesheets are rejected. Mark everything a user may want to change, so the editor's Content panel can edit it and AI translation translates it: data-edit=\"text\" on each element whose words change (headlines, labels, list rows, numbers; put it on the innermost element holding the words; line breaks are <br>), data-edit=\"image\" on an <img> or on an element with a CSS background-image, data-edit-color=\"--accent\" on an element whose style sets that CSS variable (use it as var(--accent); comma-separate several), data-edit-list on a container whose direct children are repeatable items (rows, bullets, cards), with data-max (default 12) and data-min (default 1). data-label names a field or list in the panel. Text in unmarked elements is not translated."
      },
      "layer": {
        "enum": [
          "front",
          "back"
        ],
        "type": "string",
        "description": "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."
      },
      "scale": {
        "type": "number",
        "description": "Visual multiplier from the center, 0.1 to 4. The html keeps its layout size and does not reflow. 1 is natural size."
      },
      "width": {
        "type": "number",
        "description": "CSS pixels on the 500px-tall card."
      },
      "height": {
        "type": "number",
        "description": "CSS pixels on the 500px-tall card."
      },
      "opacity": {
        "type": "number"
      },
      "rotationX": {
        "type": "number",
        "description": "3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat."
      },
      "rotationY": {
        "type": "number",
        "description": "3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat."
      },
      "rotationZ": {
        "type": "number",
        "description": "3D tilt in degrees, -360 to 360, about the box center with the same perspective as phones. 0 is flat."
      },
      "borderRadius": {
        "type": "number"
      },
      "screenshotId": {
        "type": "string"
      },
      "backgroundColor": {
        "type": "string"
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}
add_phone 1 change
{
  "name": "add_phone",
  "description": "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.",
  "inputSchema": {
    "type": "object",
    "required": [
      "screenshotId"
    ],
    "properties": {
      "imageX": {
        "type": "number",
        "description": "Phone center, in pixels from the card center on the 500px-tall card."
      },
      "imageY": {
        "type": "number",
        "description": "Phone center, in pixels from the card center on the 500px-tall card. Positive moves down."
      },
      "deviceId": {
        "type": "string",
        "description": "This phone's own device, any set_device id. Empty string follows the platform set's device."
      },
      "imageUrl": {
        "type": "string"
      },
      "rotationX": {
        "type": "number",
        "description": "Tilt in degrees (top away from the viewer). 3D frames only."
      },
      "rotationY": {
        "type": "number",
        "description": "Turn in degrees (right side away from the viewer). 3D frames only."
      },
      "rotationZ": {
        "type": "number",
        "description": "The phone's rotation in degrees, on every frame (with no tilt it is a flat rotation)."
      },
      "foldAmount": {
        "type": "number",
        "description": "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, 0.083 is 110°, 1 closed). A laptop's display stays facing the viewer and its base swings about the hinge, so rotationX below 0 tips the top toward the viewer and shows the keyboard."
      },
      "imageScale": {
        "type": "number"
      },
      "phoneColor": {
        "type": "string",
        "description": "This phone's own generic color (black, white, orange, silver, space-gray, blue, purple, red, green). Empty string follows the platform set's color."
      },
      "shadowBlur": {
        "type": "number"
      },
      "shadowColor": {
        "type": "string"
      },
      "screenshotId": {
        "type": "string"
      },
      "imageRotation": {
        "type": "number",
        "description": "Old name of rotationZ; it sets rotationZ."
      },
      "outerImageUrl": {
        "type": "string",
        "description": "Foldable devices (iphone-duo) only: the outer display's image URL (shows when folded). Empty string clears it."
      },
      "shadowEnabled": {
        "type": "boolean"
      },
      "shadowOffsetX": {
        "type": "number"
      },
      "shadowOffsetY": {
        "type": "number"
      },
      "bottomFadeColor": {
        "type": "string",
        "description": "Ignored. The fade always goes to transparent, so whatever is behind the phone shows through."
      },
      "bottomFadeHeight": {
        "type": "number"
      },
      "deviceModelColor": {
        "type": "string",
        "description": "HyperRealistic (threeDFrame): this phone's own real finish, a deviceColors id of its device. Empty string clears it."
      },
      "bottomFadeEnabled": {
        "type": "boolean"
      },
      "bottomFadePosition": {
        "enum": [
          "top",
          "bottom"
        ],
        "type": "string"
      },
      "focusOverlayCropTop": {
        "type": "number"
      },
      "focusOverlayEnabled": {
        "type": "boolean"
      },
      "focusOverlayOffsetY": {
        "type": "number",
        "description": "Vertical offset of the focus overlay, as a percent of its height. Negative moves it up. Range is -1000 to 1000."
      },
      "focusOverlayCropBottom": {
        "type": "number"
      },
      "focusOverlayShadowBlur": {
        "type": "number"
      },
      "focusOverlayBorderColor": {
        "type": "string"
      },
      "focusOverlayBorderWidth": {
        "type": "number"
      },
      "focusOverlayShadowColor": {
        "type": "string"
      },
      "focusOverlayBorderRadius": {
        "type": "number"
      },
      "focusOverlayShadowEnabled": {
        "type": "boolean"
      },
      "focusOverlayShadowOffsetX": {
        "type": "number"
      },
      "focusOverlayShadowOffsetY": {
        "type": "number"
      },
      "focusOverlayBlurBackground": {
        "type": "boolean"
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/com.appscreenstudio/app-screen-studio"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/com.appscreenstudio/app-screen-studio"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio.svg)](https://glimind.com/server/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio.svg
   :target: https://glimind.com/server/mcp-registry%2Fcom.appscreenstudio%2Fapp-screen-studio?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:5add7aaf4a759b57…, first seen 2026-10-18, included at leaf 22851 of 54,527. Version history · verify what your client received.

Tools (49)

Compare: most reliable media servers · most reliable other servers · most reliable ml servers · most reliable knowledge servers · most reliable search servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Appscreenstudio App Screen Studio MCP server down right now?

As of 2026-10-23 20:53 UTC, the Appscreenstudio App Screen Studio MCP server is up with a Glimind reliability score of 94/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

How many tools does Appscreenstudio App Screen Studio MCP server provide?

Appscreenstudio App Screen Studio MCP server advertises 49 tools, including add_asset, add_div, add_phone, add_platform_set, add_project_font.

How do I install Appscreenstudio App Screen Studio MCP server?

Point your MCP client at this streamable-http endpoint: https://www.appscreenstudio.com/api/mcp

Is the Appscreenstudio App Screen Studio MCP server safe to connect to an AI agent?

Glimind scanned all 49 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Appscreenstudio App Screen Studio MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve