LanceSign Up

Guide

The iOS agent stack: Xcode MCP, iOS Simulator MCP, and App Store Connect MCP

Quick answer

XcodeBuildMCP handles builds and test runs. ios-simulator-mcp gives your agent eyes and fingers in the Simulator. Lance covers everything after the build: TestFlight, listings, in-app purchases, review. Install all three and an agent can go from git clone to "Waiting for Review" without you opening Xcode.

Three MCP servers turn a coding agent into a full iOS development setup: an Xcode MCP to build and run, an iOS Simulator MCP to see and tap the app, and an App Store Connect MCP to ship it. This guide covers what each layer does, which servers to install, and the exact configs for Cursor and Claude Code.

Layer 1: Xcode MCP for building, testing, running

There are things your agent cannot do with shell access alone: read structured build errors, manage schemes and destinations, run tests with results it can parse. An Xcode MCP server wraps xcodebuild and friends into tools an agent uses reliably instead of scraping log soup.

Our pick: XcodeBuildMCP (open source, maintained by Sentry).

{
  "mcpServers": {
    "XcodeBuildMCP": {
      "command": "npx",
      "args": ["-y", "xcodebuildmcp@latest", "mcp"]
    }
  }
}

An honest note: if your project is pure Expo or React Native with EAS, you may not need this layer locally at all. Skip to layer 3.

Layer 2: iOS Simulator MCP so the agent has eyes

Agents write UIs they cannot see. A simulator MCP fixes the loop: boot a simulator, take screenshots, tap, type, read the view hierarchy. Your agent catches its own layout bugs instead of shipping them to TestFlight.

Our pick: ios-simulator-mcp (wraps simctl plus accessibility inspection).

{
  "mcpServers": {
    "ios-simulator": {
      "command": "npx",
      "args": ["-y", "ios-simulator-mcp"]
    }
  }
}

This layer requires a Mac with Xcode installed, because simulators run nowhere else. No Mac? That is exactly what layer 3 exists for.

Layer 3: App Store Connect MCP for everything after the build

This is the layer where the open source options thin out. API wrapper MCPs exist for App Store Connect, but the App Store is not an API problem. It is a workflow problem: listings with rules, in-app purchase metadata that blocks review, screenshots in exact sizes, rejections written in guideline speak.

Lance is a hosted MCP backed by a real operator on a real Mac. Your agent delegates outcomes ("get this ready to submit", "fix this rejection", "create a $4.99 subscription") and the operator carries them out against your actual App Store Connect account, while your Apple credentials never enter the agent's context. It also builds and uploads from a git repo on its own Mac, which is why the path without a Mac works.

npx add-mcp https://api.lance.app/mcp

The full stack, assembled

One config, all three layers. Lance needs no keys in the file: your client discovers its OAuth and opens a browser to sign you in on first use.

{
  "mcpServers": {
    "XcodeBuildMCP": {
      "command": "npx",
      "args": ["-y", "xcodebuildmcp@latest", "mcp"]
    },
    "ios-simulator": {
      "command": "npx",
      "args": ["-y", "ios-simulator-mcp"]
    },
    "lance": {
      "url": "https://api.lance.app/mcp"
    }
  }
}

A realistic session with the full stack:

  1. Agent fixes a bug, builds with XcodeBuildMCP, tests pass.
  2. Screenshots the fix in the simulator, confirms the layout.
  3. Delegates to Lance: bump the build, upload to TestFlight, update the What's New text, submit for review once I confirm.
  4. You confirm. You wake up to "Waiting for Review."

FAQ

Do I need all three MCP servers?

No. They stack by need. Expo developers often run just the simulator server and Lance. If you never want a local toolchain at all, Lance alone covers build to ship from a git URL.

Do these work with Claude Code, Cursor, and Codex?

All three speak standard MCP. Cursor reads .cursor/mcp.json, Claude Code uses claude mcp add, and Codex uses its config.toml. See our Claude Code guide for the full setup.

Can my agent submit to the App Store by itself?

With Lance, submission is consent gated by default. The operator drives your app to the point of submission and waits for your explicit go.

Is any of this free?

XcodeBuildMCP and ios-simulator-mcp are open source. Lance is free to start: 500 credits included when you connect your App Store Connect account, no credit card required.

Your agent builds the app. Lance ships it.

Connect your App Store Connect account and delegate the listing, screenshots, TestFlight, and review from your coding agent.

Start shipping free500 credits included. No credit card required.