Skip to content

The iOS MCP servers that exist today, and where each fits

An iOS MCP server gives a coding agent tools for an app: build it, launch it, read its screen, tap it. Eight exist that we could verify on 18 October 2026. They split on three questions. What do they drive, a simulator or your iPhone? Who decides that a check passed? What stops the agent from sending a message from your phone?

We make one of them, so its row comes first and every other row comes from that project’s own README or docs, read today. Where we don’t know, the cell says so.

The table

ServerDrivesDoesVerdictApprovalsTerms
MobsterSimulators, USB iPhoneTree, tap, type, swipe, screenshots, checksAssertions on the tree, no modelCard in the Mac app; agent can’t answerMac app: free
XcodeBuildMCPSimulators, devicesBuild, test, tap, screenshots, LLDBYour test resultsNot describedMIT
Xcode (Apple)SimulatorsBuild, test, previews, touch, screenshotsYour test resultsXcode alerts on connectPart of Xcode
mobile-mcpSimulators, USB iPhone, AndroidElement list, tap, screenshotsNot describedNot describedApache-2.0
Appium MCPSimulators, iPhoneFind, gesture, screenshot, generate testsYour Appium testsNot describedApache-2.0
Maestro MCPSimulators, no iPhoneInspect, screenshot, run flowsFlow resultNot describedApache-2.0 repo
ios-simulator-mcpSimulatorsTree, tap, type, swipe, videoNot describedNot describedMIT
Blitz iPhone-mcpiPhone, simulatorsScan screen, actions, screenshotsNot describedNot describedMIT

“Not described” means the README or docs we read say nothing on it. It doesn’t mean the server lacks it. The sections below carry the detail and the source for each row.

Mobster

The Mobster server drives a headless simulator it manages or a USB iPhone. It ships with Mobster for Mac and with the open-source mobster command (curl -fsSL https://mobster.dev/install.sh | sh).

verify_start takes the steps and expect, the assertions the verdict will be decided by, fixed before the agent touches the app. verify_finish checks them against the accessibility tree and returns passed, failed, needs_review or couldnt_run, with frames. No model reads the verdict. The MCP server docs show how the tools fit together. Here is screen on the task list of a made-up to-do app:

Screen  com.example.yourapp  402×874 pt  keyboard: none  alert: nonee1  text    "Tasks"                            id=tasks_titlee2  text    "3 tasks left"                     id=tasks_lefte3  button  "Water the plants"  value="To do"  id=task_1e4  button  "Call the bank"     value="To do"  id=task_2e5  button  "Book the dentist"  value="To do"  id=task_3e6  button  "Add a task"                       id=add_taske7  button  "Clear done"                       id=clear_done  disabled(7 shown)

Then the agent taps a task by its identifier:

{"tool": "tap", "arguments": {"run_id": "…", "target": {"id": "task_1"}}}

The reply is Tapped “Water the plants”; the screen changed. The next outline has selected on the task and Clear done no longer disabled.

On a real iPhone, three rules apply to every tool:

  • The first call into an app you haven’t allowed shows Allow Mobster to use …? in the Mac app and waits. The phone goes Home until you answer.
  • A tap that sends, buys, posts or deletes shows an approval card in the Mac app. Your agent can’t answer it.
  • --allow-device limits the server to the iPhones you name. Any other real device is listed as not_allowed.

The server adds itself to 14 clients from Settings › Connectors in Mobster for Mac. Four have run a real session against it; the docs list how each of the 14 was checked. Claude Code finished 9 of 14 everyday tasks on an iPhone 15 Pro through this server, at a median 25 s a task, one run per task (benchmarks).

Limits: Mobster reads the accessibility tree, so an element with no label is hard to name. The server builds nothing and runs no debugger. A real iPhone needs Developer Mode and a signed runner, which Device setup covers.

In Mobster for Mac, simulator and iPhone tools are free to use. For AI, use a supported AI plan, an API key or a model on your Mac.

XcodeBuildMCP, now MobileBuildMCP

Sentry’s project describes itself as “a Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.” The repository is now named MobileBuildMCP, and the project site lists 59 tools: build and run, test, LLDB debugging with breakpoints and variable inspection, and UI automation with tap, swipe and screenshots. It drives simulators and, per its site, physical devices over USB or Wi-Fi. Device tools need code signing set up in Xcode. The licence is MIT.

This is the pick for building, testing and debugging. Mobster builds nothing, and this server doesn’t describe a verdict from assertions or an approval card. The README and site say nothing on either.

Xcode’s own MCP server

Apple’s page “Giving external agents access to Xcode” has you turn on “Allow external agents to use Xcode tools” under Xcode › Settings › Intelligence, then point the agent at xcrun mcpbridge. Open the project in Xcode first. Xcode alerts you when an external agent connects.

The Xcode 27 release notes list what agents can do: build and test, render previews, debug through the run state and the console, and “boot simulators, install and launch apps, synthesize touch events, and capture screenshots to verify UI behavior.” Beta 5 previews a second mode, xcrun mcp-server, that runs without an open workspace. The notes we read describe simulators; they don’t describe an agent driving a physical iPhone.

Pick it when you want Apple’s build and preview tools with no third-party install.

mobile-mcp

The mobile-next project supports four targets: iOS simulators, iOS real devices connected over USB and trusted, Android emulators and Android devices. Its tools include mobile_list_elements_on_screen, mobile_click_on_screen_at_coordinates and mobile_take_screenshot. The licence is Apache-2.0. The README describes no approval step and no pass or fail criteria. Its “verify” step only checks setup.

This is the pick if one server must cover iOS and Android.

Appium’s MCP server

The appium organization’s server automates Android with UiAutomator2 and iOS with XCUITest. For a real iPhone it needs Developer Mode and an Apple ID in Xcode, and appium_prepare_ios_real_device downloads and signs WebDriverAgent. It generates test code from natural-language scenarios, with output described as Java and TestNG. It needs Node.js 22, a JDK and Xcode. The licence is Apache-2.0.

Pick it when your team already runs Appium, because the agent produces tests in that stack. Our Appium comparison covers the non-MCP side.

Maestro’s MCP server

Maestro’s MCP server ships inside the Maestro CLI. Its list_devices covers “Android emulators, iOS simulators, and Chromium for web.” Other tools are inspect_screen, take_screenshot and run, which executes YAML flows, plus cloud tools that need Maestro Cloud authentication. Maestro’s README says “Physical iOS devices are not yet supported.” GitHub issue 686, “Support real iOS devices,” is still open. It was opened in January 2023.

Pick it when your suite is Maestro flows on simulators. Our Maestro comparison covers the gap.

ios-simulator-mcp

This MIT-licensed server controls the iOS Simulator through 17 tools, among them ui_describe_all, ui_find_element, ui_tap, ui_type, ui_swipe, ui_view, record_video, install_app and open_url. It needs Node.js 20, Xcode and Facebook’s IDB. It drives simulators only.

Pick it for a small, read-and-tap server on a simulator, with video.

Blitz iPhone-mcp

The README says it lets agents “control real iPhones and iPhone simulators on MacOS.” A phone connects by USB or the same Wi-Fi network. The agent builds and installs WebDriverAgent on the phone, which takes 1 to 3 minutes the first time. It lists ten tools, including scan_ui, describe_screen, device_action and get_screenshot. The licence is MIT. The README describes no approval workflow and no verdict.

Pick it to try a real iPhone with the least setup around it, and read its code before you give it a phone you use daily.

Which to pick

You wantPick
Build, run tests, debug in LLDBXcodeBuildMCP or Xcode’s server
One server for iOS and Androidmobile-mcp
Generated tests inside an Appium suiteAppium MCP
Maestro flows on simulatorsMaestro MCP
A simulator, read and tapios-simulator-mcp
A verdict from code, and approvals on a real iPhoneMobster

Run two when the job spans two columns. Xcode’s tools build the app and Mobster runs it. The Mobster docs show Xcode’s server added beside it with the commands Apple documents:

claude mcp add --scope user --transport stdio xcode -- xcrun mcpbridgemobster mcp install claude-code

Ask your agent to build the app and check on a simulator that the paywall shows three plans. It builds with Xcode’s tools and passes the .app to verify_start. It drives the simulator and returns the verdict with its frames. The Mobster docs page on Xcode’s agents has the steps and the Xcode setting to turn on.

Try the real iPhone path

Get Mobster for Mac, then add the server from Settings › Connectors. Give Claude Code or Codex your real iPhone through MCP walks through the phone, and Test an iOS app on a real iPhone with an AI agent covers the whole loop. Give Claude Code a real iPhone is the shortest start, and Connectors lists the clients. The docs have Add Mobster to your agent.

Questions

  • What is the best MCP server for iOS development?

    For building and running tests on a simulator, XcodeBuildMCP (now MobileBuildMCP) or Xcode's own MCP server. For driving a real iPhone and getting a verdict from code, Mobster. They run side by side in one agent, so you rarely pick only one.

  • Is there an MCP server for a real iPhone?

    Yes. Mobster, mobile-mcp, Appium's MCP server and Blitz's iPhone-mcp document a USB iPhone. They differ in who decides pass or fail and in what stops the agent before it sends, buys, posts or deletes.

  • Does Xcode have an MCP server?

    Yes. Xcode exposes one through xcrun mcpbridge, and you turn it on under Xcode › Settings › Intelligence. Apple's Xcode 27 notes say agents can boot simulators, install and launch apps, synthesize touch events and capture screenshots.

  • Which iOS MCP server works with Claude Code?

    All of them speak MCP over stdio, so Claude Code can add any of them with claude mcp add. Mobster also sets itself up in 13 other clients from Settings › Connectors in Mobster for Mac.

Sources