MagicScreenshots

Search real App Store screenshots and preview videos; generate and localize your own.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
76%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'list_magicscreenshots_languages' description lacks action verbin list_magicscreenshots_languages
  • LOWTool 'list_magicscreenshots_markets' description lacks action verbin list_magicscreenshots_markets
  • LOWTool 'get_magicscreenshots_site_summary' name length outside 3-30 rangein get_magicscreenshots_site_summary
  • LOWTool 'get_magicscreenshots_discovery_document' name length outside 3-30 rangein get_magicscreenshots_discovery_document
  • LOWTool 'list_magicscreenshots_languages' name length outside 3-30 rangein list_magicscreenshots_languages

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,983Tokens (tool definitions)
~1003 BTypical response size
Significant attention impact (2.33% 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": {
    "magicscreenshots-mcp": {
      "url": "https://www.magicscreenshots.com/api/mcp"
    }
  }
}

Remote endpoints

https://www.magicscreenshots.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (19)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_api_key(name)

Create an agent API key without an account. Directory browse works with no key. Screenshot lookup works immediately with the key. Restyle and localize require the human to open claim_url, sign in, and pay.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Optional label for the key, such as the agent or chat name."
    }
  },
  "additionalProperties": false
}
🟢list_directory_categories

List App Store screenshot directory categories (Finance, Food & Drink, Productivity, …) with app counts. Use this first when an agent wants inspiration by genre. No API key required.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢list_directory_tags

List listing-screenshot treatments (headline, device-frame, lifestyle, dark, character, social-proof, …) with app counts. These are App Store creative tags, not in-app UI patterns. No API key required.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢list_directory_apps(query, category, tag, chart, has_video, ...)

Search thousands of real App Store listings (the top 100 free and top-grossing apps in every Apple category, refreshed daily). Filter by text, Apple genre slug, listing look (tag), today's chart rank, or apps that have preview videos. Returns slugs for get_directory_app, get_app_videos, get_app_history and create_restyle. No API key required.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "App name, developer, slug or Apple ID. Example: \"duolingo\"."
    },
    "category": {
      "type": "string",
      "description": "Genre slug from list_directory_categories, such as finance or food-drink."
    },
    "tag": {
      "type": "string",
      "description": "Listing-look slug from list_directory_tags, such as headline, device-frame or dark."
    },
    "chart": {
      "type": "string",
      "enum": [
        "free",
        "grossing"
      ],
      "description": "With category: order by today's top free or top grossing chart for that category."
    },
    "has_video": {
      "type": "boolean",
      "description": "Only apps whose listing has an App Store preview video."
    },
    "platform": {
      "type": "string",
      "enum": [
        "ios",
        "android"
      ],
      "description": "ios (App Store) or android (Google Play). Default: both."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "For paging; count in the response is the total match count."
    }
  },
  "additionalProperties": false
}
🟢get_directory_app(slug, app_id, query)

Get one directory app: metadata, ordered listing screenshot URLs (as markdown images), related apps in the same genre, and the create_restyle arguments to copy that style. No API key required.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Directory slug such as duolingo, monzo, or doordash."
    },
    "app_id": {
      "type": "string",
      "description": "Apple numeric app ID."
    },
    "query": {
      "type": "string",
      "description": "App name if you do not have a slug."
    }
  },
  "additionalProperties": false
}
🟢get_directory_screens(slug, index, country)

Get the ordered App Store listing screenshots for a library app, including markdown images a vision model can inspect. Pass country (jp, de, ...) for the localized listing in that storefront. Index is 1-based and matches /apps/:slug/screens/:index. No API key required.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Directory slug such as duolingo."
    },
    "index": {
      "type": "integer",
      "minimum": 1,
      "description": "Optional 1-based screenshot index."
    },
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "App Store country for the localized listing, e.g. jp, de, fr, kr, cn, br, es, it, sa. Default us. get_directory_app lists which storefronts exist."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_app_videos(slug)

App Store preview videos for a library app: poster frames for everyone; with a Pro API key, 1-hour download links to the mp4 files (about 30 s each). Use them as reference when making your own app preview video. Pass slug from list_directory_apps (has_video=true finds apps that have them).

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Library slug such as instagram."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_app_history(slug, limit)

Every version of an app's App Store listing we have captured (screenshots and preview videos per date), newest first. Shows how top apps change their creative over time. Needs a Pro API key; without one it returns how many versions exist.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Library slug such as instagram."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_magicscreenshots_site_summary

Return a concise summary of MagicScreenshots, the screenshot directory, public routes, MCP tools, and auth requirements.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_magicscreenshots_markdown(route)

Fetch a markdown representation of a known MagicScreenshots public page.

Input Schema

{
  "type": "object",
  "properties": {
    "route": {
      "type": "string",
      "enum": [
        "/",
        "/apps",
        "/studio",
        "/localize-app-store-screenshots",
        "/restyle-app-store-screenshots",
        "/ai-app-store-screenshot-generator",
        "/best-app-store-screenshot-localization-tools",
        "/how-to-translate-app-store-screenshots",
        "/languages",
        "/markets",
        "/categories",
        "/top",
        "/pricing",
        "/agents",
        "/tags",
        "/mcp",
        "/mcp/docs",
        "/faq",
        "/legal"
      ]
    }
  },
  "required": [
    "route"
  ],
  "additionalProperties": false
}
🟢get_magicscreenshots_discovery_document(endpoint)

Fetch a known agent discovery document such as API catalog, Agent Skills, MCP, OAuth metadata, OpenAPI, or llms.txt.

Input Schema

{
  "type": "object",
  "properties": {
    "endpoint": {
      "type": "string",
      "enum": [
        "/.well-known/api-catalog",
        "/.well-known/agent-skills/index.json",
        "/.well-known/mcp/server-card.json",
        "/.well-known/oauth-protected-resource",
        "/.well-known/openid-configuration",
        "/.well-known/oauth-authorization-server",
        "/openapi.json",
        "/llms.txt"
      ]
    }
  },
  "required": [
    "endpoint"
  ],
  "additionalProperties": false
}
🟢list_magicscreenshots_languages(limit)

Return supported screenshot localization languages and public guide routes.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 50
    }
  },
  "additionalProperties": false
}
🟢list_magicscreenshots_markets(region, limit)

Return supported App Store market guides and public market routes.

Input Schema

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "asia-pacific",
        "europe",
        "americas",
        "middle-east"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 100
    }
  },
  "additionalProperties": false
}
🟢get_screenshots(slug, app_url, app_id, query, country, ...)

Fetch high-resolution App Store screenshots. If the app is in the MagicScreenshots directory, returns those curated listing shots (with markdown images) with no API key. Otherwise looks up the live App Store listing (API key required). Pass live=true to skip the directory. Use this for the user's own app; use get_directory_app when you already have a catalog slug.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Directory slug. Returns catalog screens without a live App Store lookup."
    },
    "app_url": {
      "type": "string",
      "description": "Apple App Store URL."
    },
    "app_id": {
      "type": "string",
      "description": "Apple numeric app ID."
    },
    "query": {
      "type": "string",
      "description": "App name to search in the directory, then the App Store."
    },
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "default": "us"
    },
    "live": {
      "type": "boolean",
      "default": false,
      "description": "Skip the directory and fetch the current App Store listing."
    }
  },
  "additionalProperties": false
}
🟡create_restyle(source_app, inspiration_slug, inspiration_app, source_screenshot_urls, inspiration_screenshot_urls, ...)

Restyle the user's App Store screenshots to match a directory inspiration set. Prefer inspiration_slug from list_directory_apps (duolingo, monzo, doordash, …). Requires an API key; the human must claim the key and pay before generation runs.

Input Schema

{
  "type": "object",
  "properties": {
    "source_app": {
      "type": "object",
      "description": "The user's app. Use query, app_url, or app_id from get_screenshots.",
      "properties": {
        "app_url": {
          "type": "string"
        },
        "app_id": {
          "type": "string"
        },
        "query": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "inspiration_slug": {
      "type": "string",
      "description": "Directory slug from list_directory_apps / get_directory_app. Preferred over a free-text inspiration query."
    },
    "inspiration_app": {
      "type": "object",
      "properties": {
        "slug": {
          "type": "string"
        },
        "app_url": {
          "type": "string"
        },
        "app_id": {
          "type": "string"
        },
        "query": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "source_screenshot_urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "inspiration_screenshot_urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 5
    }
  },
  "required": [
    "source_app"
  ],
  "additionalProperties": false
}
🟡create_localize(source_app, source_screenshot_urls, target_locales, limit)

Create MagicScreenshots localization jobs for source App Store screenshots across one or more target locales.

Input Schema

{
  "type": "object",
  "properties": {
    "source_app": {
      "type": "object",
      "properties": {
        "app_url": {
          "type": "string"
        },
        "app_id": {
          "type": "string"
        },
        "query": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "source_screenshot_urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "target_locales": {
      "type": "array",
      "description": "Locale IDs such as JPN, DEU, FRA, BRA, or objects with language/country.",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "language": {
                "type": "string"
              },
              "country": {
                "type": "string"
              }
            },
            "required": [
              "language"
            ],
            "additionalProperties": true
          }
        ]
      }
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 5
    }
  },
  "required": [
    "source_app",
    "target_locales"
  ],
  "additionalProperties": false
}
⚪approve_restyle(group_id, overview_url)

Approve a generated restyle overview and start final screenshot extraction.

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "string"
    },
    "overview_url": {
      "type": "string"
    }
  },
  "required": [
    "group_id"
  ],
  "additionalProperties": false
}
🟢get_job_group(group_id)

Check restyle job group status, overview URL, errors, and final output URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "string"
    }
  },
  "required": [
    "group_id"
  ],
  "additionalProperties": false
}
🟢list_results(limit)

List recent MagicScreenshots restyle job groups and outputs for the authenticated account.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded19 tools