# Set up the ASOgenic MCP server ASOgenic is a Model Context Protocol (MCP) server that gives an AI coding agent the tools to do App Store Optimization: research keywords, write and validate App Store metadata, manage screenshots, set up a first release, and submit for review, without the agent ever handling the developer's Apple credentials directly. Follow these steps in order. ## 1. Choose authentication The current hosted endpoint uses a platform API key. It is the simplest and most portable option for unattended agents, CI, and local development: create one at https://asogenic.com/dashboard, store it as a secret, and send it as `Authorization: Bearer `. Do not put a dashboard password or an App Store Connect `.p8` key into an MCP config. MCP OAuth discovery is not enabled on this deployment yet. ## 2. Get a platform API key Open https://asogenic.com/dashboard in a browser, sign in with Google or an email and password, create a key, and copy it. The key is shown once. Ask the user to do this and paste the key back to you; you cannot do it for them. ## 3. Add the MCP server to the client config Add this block to the MCP client config (commonly `.mcp.json` in the project root), pointing it at `https://mcp.asogenic.com/mcp` with the key in the `Authorization` header: { "mcpServers": { "asogenic": { "url": "https://mcp.asogenic.com/mcp", "headers": { "Authorization": "Bearer " } } } } Replace `` with the key from step 1. Restart / reconnect the MCP client so it picks up the new server. ## 4. Provide App Store Connect credentials ASOgenic needs an App Store Connect API key (issuer ID, key ID, and the .p8 private key). The recommended way keeps the key on the user's machine: set `ASC_KEY_ID`, `ASC_ISSUER_ID`, and `ASC_P8_PATH` (or `ASC_P8_PEM`) in the MCP server's own `env` block in the client config. Do NOT paste the .p8 into a tool call unless the user is on a hosted deployment and explicitly wants server-side storage (`asogenic_store_asc_credential`). ## 5. Verify Call `asogenic_auth_status`. It should report `asc_configured: true` and `asc_valid: true`. If not, the ASC credentials in step 3 are wrong or missing. ## 6. Run an optimization pass The order that actually gets an app through Apple review: 1. `asogenic_auth_status`: credentials work. 2. `asogenic_list_apps` / `asogenic_resolve_app`: find the app; keep the `session_key`. 3. `asogenic_intake_product_context`: tell ASOgenic what the app is (everything downstream depends on this). 4. Per locale: `asogenic_fetch_source` -> generate name/subtitle/keywords/description yourself (`asogenic_research_keywords`, `asogenic_assemble_locale`, `asogenic_get_field_spec` are aids) -> `asogenic_validate_record` -> `asogenic_approve_locale` -> `asogenic_publish`. 5. Store setup (each required before submission): category, age rating, version copyright, content-rights declaration, review info, base price, screenshots. App Privacy is set once in the App Store Connect web UI; no API exists for it. 6. `asogenic_get_release_readiness`: read `blockers` (must be empty) and `warnings`. 7. `asogenic_submit_for_review`. ## Limits Your account gets 500 tool calls per month, shared across every key you create, plus short-window rate limiting (about 120/minute). A `RATE_LIMITED` error means slow down and retry in seconds; a `QUOTA_EXCEEDED` error means the monthly allowance is spent. ASOgenic is free while in early access; no card required. Full docs: https://asogenic.com/docs. FAQ: https://asogenic.com/faq