The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the AppLaunchFlow listing page.
MCP server for AppLaunchFlow — create App Store & Google Play screenshots with AI.
AppLaunchFlow is a hosted MCP connector with OAuth 2.1 and PKCE. No API key, local token, or scoped npm package name is required.
The shortest setup command configures the hosted connector and opens OAuth:
Useful follow-up commands:
The equivalent native Codex commands are:
The same one-command setup is available for Claude Code. It replaces a legacy AppLaunchFlow entry when necessary, adds the hosted HTTP connector, and opens OAuth sign-in:
The equivalent native Claude Code commands are:
Paste the displayed URL when creating a custom MCP connector in ChatGPT. The
same URL is also available at any time with npx -y applaunchflow url.
Use this Streamable HTTP endpoint and enable OAuth when prompted:
This repository is also a distributable Claude Code plugin. Its
.claude-plugin/plugin.json manifest bundles the hosted OAuth connector from
.mcp.json, so users do not need to copy a server configuration manually.
To validate or try the plugin directly from a clone:
Claude Code starts the hosted connector when the plugin is enabled and opens the AppLaunchFlow OAuth flow when authentication is required.
prepare_screenshot_styles returns the personalized V1/V2 picker directly in
MCP Apps-compatible hosts and creates a variant only after explicit user
confirmation through the authenticated tool bridge. Other hosts retain the
full-gallery link. Revisit prepared options using the existing widget or that
link; there is no separate render-tool call. Social graphics and promo video
use the same prepare-and-show flow.
See local testing and deployment notes.
The public Streamable HTTP service uses OAuth 2.1 authorization code flow with PKCE through the AppLaunchFlow dashboard.
Public endpoints:
https://mcp.applaunchflow.com/mcphttps://mcp.applaunchflow.com/.well-known/oauth-protected-resourcehttps://mcp.applaunchflow.com/healthzAppLaunchFlow is published as io.github.ynnickw/applaunchflow in the official
MCP Registry. The checked-in server.json is the canonical
registry manifest and points clients to the hosted OAuth connector.
Registry publication runs automatically from GitHub Actions when the manifest
changes on main. Keep the manifest version aligned with package.json; the
test suite enforces this before publication.
APPLAUNCHFLOW_MCP_PUBLIC_URL may be either the origin or the full /mcp
URL; both services normalize it to the same canonical resource URL. Set
APPLAUNCHFLOW_MCP_PUBLIC_URL=https://mcp.applaunchflow.com/mcp and
NEXT_PUBLIC_APP_URL=https://dashboard.applaunchflow.com on the dashboard.
The included Dockerfile produces a non-root OCI image for the hosted server.
The MCP host and dashboard must both be served through public HTTPS in
production. Do not expose the Node process directly without a TLS-terminating
platform or reverse proxy.
Screenshot and social-graphics styles are prepared once for the selected app screenshots, then the chosen style is applied from cache. This lets users compare styles without paying for another AI call when they choose one.
For App Store screenshots:
list_source_screenshotsprepare_screenshot_styles with 3-7 ordered pathsbrowse_templates can reopen a prepared catalog, and apply_screenshot_style
remains available when an API client supplies a template id directly.
For social graphics:
list_source_screenshotsprepare_social_graphics_styles with 3-7 ordered pathsbrowse_social_templates with the returned templateIds, generationId, and catalogKeyapply_social_graphics_style with the returned catalogKeyThe screenshot result includes phone, tablet, and desktop. The social result includes every supported social, store-listing, and mobile-ad format. New screenshot and social-graphics variants always go through their visual pickers so the user explicitly chooses the template and palette.
Run npm test before publishing or deploying. See
docs/openai-submission.md for the final OpenAI
submission checklist and manual test cases.
list_projects shows a compact list with app icons, explicit project selection,
and dashboard links. list_assets shows uploaded screenshots, illustrations,
icons, recordings, backgrounds, fonts, and music/clips using the same browser
component as the dashboard Hub. The Upload button accepts up to 10 files per
batch (25 MB per file), with progress and a refreshed list after completion.
Screenshots use the selected device/platform folder; other uploads use the
selected asset tab. Uploading stores files only: it does not replace the app
icon, apply a design, register a font family, or overwrite existing assets.
Asset deletion remains an explicitly confirmed action in the Hub.
The app-only prepare_asset_upload tool uses the connected account to authorize
one uniquely named storage object. Its signed URL is returned only in widget
metadata. The browser sends the file bytes directly to storage; neither file
contents nor account credentials pass through the model. Refreshing calls the
read-only list_assets tool. No upload is triggered by merely opening the list.
Project selection uses standard MCP Apps messaging, or ChatGPT's native
sendFollowUpMessage bridge when the host does not advertise text messaging.
Hosts with neither retain the exact copy/paste fallback. A failed/ambiguous send
is never automatically retried through another bridge.
For maintainers, regenerate the packaged list views and shared contracts with
npm run sync:dashboard -- /absolute/path/to/dashboard. Add --check to verify
they match without updating the connector artifacts. npm test checks artifact
integrity and contract hashes without requiring another checkout or network.
Existing screenshot, social and promo picker behavior is unchanged.