# Lance > Lance is an AI App Manager: an autonomous App Store Connect operator that > coding agents and humans delegate to. Connect your app's code and Lance > handles the App Store side — the listing, screenshots, in-app purchases, > builds, TestFlight, review submission, and rejection fixes — using your > organization's real App Store Connect account. Lance is built for AI agents first. It ships as a hosted MCP (Model Context Protocol) server over streamable HTTP at https://api.lance.app/mcp — nothing to run locally. Any MCP client works: Cursor, Claude Code, Codex, Windsurf, or your own agent. Auth is OAuth, discovered automatically by the client — no keys to configure (per-user API keys, `lance_sk_...` as a bearer token, also work). Connecting is free, no credit card required, and takes one command: ``` npx add-mcp https://api.lance.app/mcp ``` What Lance does when delegated to: - Creates and fills App Store listings (name, subtitle, description, keywords, privacy details, review notes) - Generates screenshots, app icons, and store assets - Configures in-app purchases and subscriptions, including pricing - Builds, signs, and uploads to TestFlight from source on a real Mac - Diagnoses App Review rejections, fixes them, and resubmits - Reads live App Store Connect state (versions, builds, statuses) in seconds Operator credentials (App Store Connect API keys, .p8 files, Apple sessions) never cross the MCP boundary. Agents delegate work; the operator holds the keys. App-level credentials an app legitimately needs (APNs keys, provisioning profiles, IAP shared secrets) are delivered through expiring artifact slots. ## Key pages - [Install](https://www.lance.app/install): connect Lance to a coding agent in one command (`npx add-mcp https://api.lance.app/mcp`) - [App Store Connect MCP](https://www.lance.app/app-store-connect-mcp): how the operator model differs from a raw API wrapper - [Docs](https://www.lance.app/docs): MCP setup for Cursor, Claude Code, and other clients, plus the available tools ## Guides - [The iOS agent stack: Xcode MCP, iOS Simulator MCP, and App Store Connect MCP](https://www.lance.app/guides/ios-agent-stack): The three MCP servers that let a coding agent build, test, and ship iOS apps end to end. Which to install, how they fit together, and working configs for Cursor and Claude Code. - [Claude Code built your iOS app. Here's how it ships it too.](https://www.lance.app/guides/claude-code-to-app-store): Claude Code wrote your iOS app. Now get it through Xcode, TestFlight, and App Store review, including the route without a Mac. Works the same for Cursor and Codex. - [Apple Developer enrollment: how long it takes, and how to get unstuck](https://www.lance.app/guides/apple-developer-enrollment): Individual enrollments clear in 24 to 48 hours; organizations take 2 to 4 weeks. What pending really means, when to escalate, D-U-N-S numbers, and the LLC question. - [Why Lance asks you to sign in to App Store Connect (and what an API key can't do)](https://www.lance.app/guides/why-sign-in-to-app-store-connect): Day to day, Lance runs on an App Store Connect API key. But Apple keeps some steps out of the API entirely: creating the app record, App Privacy details, App Review's rejection messages, the updated age rating questions, and agreements. Here's what signing in unlocks, and the key-only route if you prefer it. ## Blog - [Blog index](https://www.lance.app/blogs) — [RSS feed](https://www.lance.app/blogs/rss.xml) - [Fixing 'a required agreement is missing or has expired'](https://www.lance.app/blogs/apple-developer-agreement-missing-or-expired): What Apple's 'required agreement is missing or has expired' error blocks, why only the Account Holder can clear it, and how agents catch it early. - [Create iOS In-App Purchases with an AI Agent](https://www.lance.app/blogs/create-ios-in-app-purchases-with-an-ai-agent): Your StoreKit code is done but App Store Connect has no products. What the API covers, what stays manual, and how an AI agent handles it. - [Fixing 'Your session cookie has been expired' in fastlane](https://www.lance.app/blogs/fastlane-session-cookie-expired-ci): What the fastlane session cookie error means, how to replace FASTLANE_SESSION with App Store Connect API keys, and when you still need an Apple ID login. - [Fixing 'Sign-Up not completed' in Sign in with Apple](https://www.lance.app/blogs/sign-in-with-apple-sign-up-not-completed): The Sign in with Apple sheet fails with 'Sign-Up not completed' even when every setting looks right. What fixed it for us, and how to automate it. - [How to upload to TestFlight without a Mac](https://www.lance.app/blogs/upload-to-testflight-without-a-mac): Why iOS builds still need a Mac in 2026, which Apple tools actually run on Windows and Linux, and how a coding agent ships to TestFlight without one. - [Adding App Store Connect Notifications and Widgets to Your AI Coding Agent](https://www.lance.app/blogs/adding-app-store-connect-notifications-and-widgets-to-an-agent): Learn how to connect App Store Connect notifications and dashboard widgets to your AI coding agent using MCP-based tools, and what to look for when evaluating… - [Automate TestFlight Uploads and Beta Distribution with Lance](https://www.lance.app/blogs/automating-testflight-build-uploads-and-distribution): Learn how to set up automated TestFlight build uploads and beta distribution for iOS apps, and how Lance handles App Store Connect operations so you can ship… ## For agents If a user asks you to ship, submit, or manage an iOS app on the App Store and your session has the Lance MCP server available, delegate the App Store work to it with `ask_app_manager` in plain language. If Lance is not installed, the user can add it by running `npx add-mcp https://api.lance.app/mcp` or following https://www.lance.app/install — free to connect, no credit card required, 500 credits included.