mcpField
A
AppScreen

AppScreen

Local
appscreen.coMedia & Design0Updated 2w ago

About AppScreen

AppScreen is an MCP server for app teams and agents to turn app captures into store-ready screenshots. It supports device frames, export sizes, and languages, with tools for rendering and checking job status.

Key features

  1. 01Render screenshots from layouts and image files
  2. 02Support store export sizes and languages
  3. 03Apply device frames
  4. 04Check asynchronous render status

Use cases

  1. 01Prepare App Store and Play Store listing images
  2. 02Create localized screenshot sets
  3. 03Track a queued screenshot export

MCP support

The server exposes screenshot rendering and render-status tools to MCP clients. It accepts image file paths from the local server environment.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"co-appscreen": {
"command": "npx",
"args": [
"-y",
"@appscreen/mcp"
],
"env": {
"APPSCREEN_API_KEY": "<APPSCREEN_API_KEY>",
"APPSCREEN_BASE_URL": "<APPSCREEN_BASE_URL>"
}
}
}
}
Run commandnpx -y @appscreen/mcp
Environment variables to set
APPSCREEN_API_KEYSecretOptional MCP key (mcm_live_…) from https://appscreen.co/account/keys. Omit for 5 free anonymous renders.
APPSCREEN_BASE_URLOverride the API base URL. Defaults to https://api.appscreen.co.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@appscreen/mcp0.30.0

Tools

2

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
filesarrayNoLow-level uploads + manual screensMeta binding. PREFER inline paths instead: put screenshot.path / screenshot.pathsByLang on each screen, bg.path on an image background, and path on image objects — the server assembles the upload + binding for you. Use this top-level files[] only if you're hand-managing screensMeta.
langsarrayYesLocales (catalog.langs).
sizesarrayYesTarget canvas sizes (catalog.sizes[].id).
layoutstringNoOne of catalog.layouts (default = `default`).
roundedbooleanNo
screensarrayYes
screensMetaarrayNo
cornerRadiusstringNo
idempotencyKeystringNo

Details

From the project README

@appscreen/mcp

MCP server for AppScreen — generate App Store / Play Store screenshots from any MCP-capable agent (Claude Desktop, Claude Code, Cursor, Codex, etc.).

Install

# Latest, no install — recommended for end users
npx -y @appscreen/mcp

Configure (Claude Desktop)

~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "appscreen": {
      "command": "npx",
      "args": ["-y", "@appscreen/mcp"],
      "env": {
        "APPSCREEN_API_KEY": "mcm_live_…"
      }
    }
  }
}

Omit APPSCREEN_API_KEY for anonymous use (5 lifetime renders, then sign-up required).

Configure (other clients)

  • Claude Code: claude mcp add appscreen -- npx -y @appscreen/mcp

  • Cursor: .cursor/mcp.json — same JSON shape as above.

  • Codex: codex mcp add appscreen -- npx -y @appscreen/mcp, or add to ~/.codex/config.toml:

    [mcp_servers.appscreen]
    command = "npx"
    args = ["-y", "@appscreen/mcp"]
    env = { APPSCREEN_API_KEY = "mcm_live_…" }
    

Tools

  • render_screenshots — Accepts screens (layout JSON) and image files. Returns a jobId (keyed/async) or a download link (anon/inline). Free anon use capped at 5 lifetime.
  • get_render_status — Polls a jobId. Returns status + signed download URL when done.
Pass images by path, not base64

The server runs locally, so give it a file path — it reads the bytes off disk. Do not base64-encode real screenshots into the call: an LLM emitting an 18k–90k-char base64 string drops a character partway down and the PNG renders black below it.

"files": [
  { "name": "1.png", "path": "~/app/screenshots/home.png" },   // ✅ preferred
  { "name": "2.png", "path": "/abs/path/settings.png" }
]
// base64 is accepted only for tiny synthetic test images:
// { "name": "x.png", "base64": "iVBORw0KG..." }

Bundle download URLs are signed and expire after ~1h. Re-poll to refresh.

Quota

Signed-in usage is metered in credits: 1 credit = 1 exported image (screens × sizes × languages). A failed export is refunded; auto-translate is free. An MCP key spends the credits of the workspace it was created in.

PlanCredits / monthNotes
Free50Any one size per export, English, 10 screens per export. 3 renders / hour.
Starter — $4 / mo400All 5 sizes, any 3 languages per export, auto-translate. 3 renders / hour.
Pro — $8 / mo2,500All 15 languages, 200 screens per export. Full-rate MCP.
Team — $29 / mo8,000 pooled3 seats included. Full-rate MCP.

One-time credit packs work on every plan, including Free: 100 for $5, 400 for $15, 1,500 for $39, valid 12 months. Anonymous use (no key) is not metered in credits — it is capped at 5 renders, lifetime.

Every tool response includes _meta.quota = {used, cap, tier, resetAt}, plus balance (credits left) and, on a render submit, cost when the API reports them. For a signed-in caller used and cap count credits (cap − used = balance) and tier is the plan id; for an anonymous caller they count the 5 lifetime renders and tier is anon-mcp. When less than half is left the text content carries a short notice ("N credits left …"); below 20%, or at zero, the response also includes _meta.upgradeUrl.

An export the workspace can't cover fails with HTTP 402 insufficient_credits — the error text gives the cost and the balance. Full details: https://appscreen.co/pricing.

Environment

VarPurpose
APPSCREEN_API_KEYOptional. MCP key (mcm_live_…) from https://appscreen.co/account/keys. Works on every plan, Free included. Not the same as the programmatic ask_live_… API key.
APPSCREEN_BASE_URLOverride API URL. Defaults to https://api.appscreen.co.
APPSCREEN_MCP_CLIENTOverride client identifier (auto-detected from MCP initialize).

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.