App Publisher MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEMINI_MODEL | No | Gemini model to use. Options: gemini-2.5-flash-image (default, fast), gemini-3-pro-image-preview (best quality, slower). | |
| GEMINI_API_KEY | No | Your Google Gemini API key for AI image generation. Required for generating icons, splash screens, and screenshots. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| configure_api_key | Set or update the Gemini API key for AI image generation. The key is stored locally and persists across sessions. |
| configure_model | Set the default Gemini model for image generation. Persists across sessions. Recommended: gemini-2.5-flash-image (fast), gemini-3-pro-image-preview (best quality). |
| generate_icon | Generate an app icon using AI. Creates a square icon suitable for mobile app stores. Returns the generated image and saves it to disk. |
| resize_icons | Resize an icon image to all required sizes for iOS and/or Android platforms. Generates Xcode-compatible Contents.json for iOS. Source image should be at least 1024x1024. |
| generate_splash | Generate a splash screen (launch screen) design using AI. Creates a professional app launch screen image. |
| generate_screenshot | Generate an app store screenshot mockup using AI. Creates realistic app screenshots for store listings. |
| setup_fastlane | Generate fastlane configuration files (Fastfile, Appfile, metadata structure) for automated iOS/Android app publishing. Includes: copyright auto-set, app_review_information, precheck_include_in_app_purchases: false, skip_app_version_update for metadata lane. |
| publish_ios | Publish the app to the iOS App Store using fastlane deliver. Requires fastlane to be installed and configured. |
| publish_android | Publish the app to Google Play Store using fastlane supply. Requires fastlane to be installed and configured. |
| populate_metadata | Populate fastlane metadata directory with locale-specific content. Creates all required .txt files (name, subtitle, description, keywords, etc.) for each locale. Use this after generate_store_listing to write content directly to fastlane metadata files. |
| validate_metadata | Validate fastlane metadata files for App Store requirements. Checks: subtitle <= 30 chars, keywords <= 100 chars, required files present (name, description, privacy_url, support_url), copyright includes current year. |
| get_status | Check the current configuration status including API key, model, fastlane installation, and generated assets. |
| generate_store_listing | Analyze a project directory and generate complete store listing content (app name, description, keywords, privacy policy, etc.) for iOS App Store and/or Google Play Store. |
| get_publishing_guide | Get a comprehensive step-by-step guide for publishing an app to the iOS App Store or Google Play Store. Customized based on project info if projectDir is provided. |
| setup_maestro | Install and configure Maestro CLI for mobile UI testing automation. Checks Java 17+ requirement and installs Maestro if not present. Run this first before using other maestro_* tools. |
| maestro_screenshot | Take a screenshot of the currently running app on iOS Simulator or Android Emulator using Maestro. Returns the screenshot image. Requires Maestro CLI and a running simulator/emulator. |
| maestro_run_flow | Run a UI test flow on a simulator/emulator using Maestro. Accepts structured steps that are converted to a Maestro flow YAML. Use takeScreenshot steps to capture screenshots during the flow. Returns all captured screenshots as images. Available actions: launchApp, stopApp, clearState, tapOn, tapOnPoint, longPressOn, doubleTapOn, inputText, eraseText, swipe, scroll, scrollUntilVisible, back, home, pressKey, hideKeyboard, takeScreenshot, assertVisible, assertNotVisible, waitForAnimationToEnd, wait, openLink, copyTextFrom, pasteText, runScript |
| maestro_run_yaml | Run a Maestro flow from raw YAML content. For advanced users who want full control over the flow definition. Returns all captured screenshots as images. |
| maestro_status | Check Maestro installation status, version, and list running iOS Simulators and Android Emulators. |
| maestro_store_screenshot | Create professional app store marketing screenshots with headline text and device-framed app screenshot. Uses Gemini AI to composite the image, then resizes to exact iOS/Android store dimensions. Can auto-capture screenshot from running simulator via Maestro, or accept an existing screenshot path. |
| configure_admob | Set up Google AdMob OAuth credentials for ad unit management. After configuration, an authorization URL will be provided to complete the OAuth flow. |
| admob_auth | Complete AdMob OAuth authentication by exchanging the authorization code for access tokens. Run configure_admob first to get the auth URL. |
| admob_list_apps | List all apps registered in your AdMob account. Requires AdMob authentication. |
| admob_create_app | Create a new app in your AdMob account. You can link it to an existing App Store / Play Store app, or create it manually with a display name. |
| admob_list_ad_units | List ad units in your AdMob account. Optionally filter by app ID. |
| admob_create_ad_unit | Create a new ad unit in your AdMob account. Supported formats: BANNER, INTERSTITIAL, REWARDED, REWARDED_INTERSTITIAL, APP_OPEN, NATIVE. |
| admob_integrate | Generate AdMob integration code for a React Native / Expo project. Creates ad components (Banner, Interstitial, Rewarded, AppOpen) with test ID support and installs required dependencies. |
| admob_status | Check AdMob OAuth configuration and authentication status. |
| configure_playstore | Configure Google Play Store API access. Provide either a file path (jsonKeyPath) or the JSON content directly (jsonKeyData). The inline method stores the key in ~/.app-publisher/config.json so you can delete the original file. |
| playstore_status | Check Google Play Store API configuration status. Shows service account details and validates the JSON key file. |
| playstore_setup_key | Set up Google Play Store publishing for a project. Copies the service account JSON key, creates/updates fastlane Appfile and Fastfile for Android, and creates the metadata directory structure with locale folders. |
| playstore_verify_access | Verify that the service account has API access to a specific app on Google Play. Tests by creating and deleting an edit session. |
| playstore_get_app_info | Get comprehensive app information from Google Play Console including all store listings (title, descriptions per language) and release tracks (production, beta, alpha, internal) with version codes and status. |
| playstore_get_listing | Get store listing(s) for an app. If language is specified, returns the full listing for that language. Otherwise returns all listings with titles and short descriptions. |
| playstore_update_listing | Update store listing metadata for a specific language. Can update title (max 50 chars), short description (max 80 chars), and/or full description (max 4000 chars). Changes are committed immediately. |
| playstore_get_tracks | List all release tracks for an app with version codes, release status, and release notes. Tracks include: production, beta, alpha, internal. |
| playstore_list_images | List uploaded images/screenshots for an app. Image types: phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, tvScreenshots, wearScreenshots, icon, featureGraphic, tvBanner. |
| playstore_upload_image | Upload an image (screenshot, icon, feature graphic, etc.) to Google Play Store listing. Supported formats: PNG, JPEG, WebP. Changes are committed immediately. |
| playstore_delete_images | Delete all images of a specific type for a language. Use before re-uploading screenshots to replace them. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seungmanchoi/app-publisher-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server