appdesigns App Store screenshots

App Store and Google Play screenshots MCP: your agent captures the app, you edit and export. Free.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,202Tokens (tool definitions)
~2.2 KBTypical response size
Moderate attention impact (0.94% of 128k context)

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": {
    "screenshots": {
      "url": "https://appdesigns.click/api/mcp"
    }
  }
}

Remote endpoints

https://appdesigns.click/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_workflow(platform, store)

Returns the full appdesigns recipe for one platform and store, as markdown: how to pick the screens, how to check and populate demo data with the user's consent, the exact capture commands (simulator or emulator, status bar, deep links), the caption rules, and the upload and hand-off steps. Read-only; changes nothing.

Input Schema

{
  "type": "object",
  "properties": {
    "platform": {
      "type": "string",
      "enum": [
        "ios",
        "android",
        "expo",
        "react-native",
        "flutter",
        "web"
      ],
      "description": "How the app is built: ios (Swift or Objective-C), android (Kotlin or Java), expo, react-native, flutter, or web (a web app or PWA)."
    },
    "store": {
      "default": "app_store",
      "description": "Which store the screenshots are for.",
      "type": "string",
      "enum": [
        "app_store",
        "play"
      ]
    }
  },
  "required": [
    "platform"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_devices(store)

Lists the device frames, frame colours and canvas sizes appdesigns offers for one store, with the defaults create_project uses when you leave them out. The App Store gets Apple devices only; Google Play gets Android phones. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "store": {
      "default": "app_store",
      "description": "Which store the screenshots are for.",
      "type": "string",
      "enum": [
        "app_store",
        "play"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_project(project_name, store, device, frame_color, background_color, ...)

Starts a screenshot set: 1 to 6 screenshots in store order, each with a screen name and a headline. Returns a project_handle and one upload command (bash and PowerShell forms) that sends every screenshot straight to storage; run it once, then call finish_project with the handle. Upload and call finish_project within 3 hours (an unfinished project lapses then); a finished one waits 72 hours to be opened. Nothing is public and no account is needed; the user saves the set to their account when they open the link finish_project returns.

Input Schema

{
  "type": "object",
  "properties": {
    "project_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "The app's name. It becomes the project name in the user's appdesigns library."
    },
    "store": {
      "default": "app_store",
      "description": "Which store the set is for.",
      "type": "string",
      "enum": [
        "app_store",
        "play"
      ]
    },
    "device": {
      "description": "A device id from list_devices. Defaults to iphone-17-pro-max for the App Store and pixel-11-pro for Google Play.",
      "type": "string",
      "maxLength": 40
    },
    "frame_color": {
      "description": "A colour id of that device from list_devices. Leave it out to pick one that stands out from the background.",
      "type": "string",
      "maxLength": 40
    },
    "background_color": {
      "description": "#RRGGBB. Use the app's brand or accent colour if you can find it in the code. Leave it out for a neutral light background.",
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    },
    "canvas_size": {
      "description": "A canvas size from list_devices, as WIDTHxHEIGHT. Leave it out for the store default (1320x2868 for iPhone, 2048x2732 for iPad, 1080x1920 for Play).",
      "type": "string",
      "maxLength": 12
    },
    "screens": {
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "screen_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 24,
            "description": "The screen or feature name, shown as the small line: 1 to 3 words, at most 24 characters. Example: \"Weekly stats\"."
          },
          "headline": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40,
            "description": "The big line: the benefit this screen shows, 2 to 6 words, 32 characters or fewer (40 at most; longer is set smaller). Sentence case, no trailing period. Example: \"See where every dollar goes\"."
          },
          "file_path": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "Absolute path to the PNG or JPEG screenshot (no ~ or $VARIABLES; they are not expanded). Not read by the server; it goes into the upload command."
          }
        },
        "required": [
          "screen_name",
          "headline",
          "file_path"
        ]
      },
      "description": "One entry per screenshot, in the order the store should show them. The first sells the app."
    }
  },
  "required": [
    "project_name",
    "screens"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡finish_project(project_handle)

Checks that every screenshot of a project was uploaded and is a real PNG or JPEG, then returns the link that opens the set in the appdesigns editor, where the user saves it to their account and can edit and export it. Calling it again returns a fresh link and retires the previous one.

Input Schema

{
  "type": "object",
  "properties": {
    "project_handle": {
      "type": "string",
      "minLength": 10,
      "maxLength": 100,
      "description": "The project_handle create_project returned."
    }
  },
  "required": [
    "project_handle"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools