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
| Server | Drives | Does | Verdict | Approvals | Terms |
|---|---|---|---|---|---|
| Mobster | Simulators, USB iPhone | Tree, tap, type, swipe, screenshots, checks | Assertions on the tree, no model | Card in the Mac app; agent can’t answer | Mac app: free |
| XcodeBuildMCP | Simulators, devices | Build, test, tap, screenshots, LLDB | Your test results | Not described | MIT |
| Xcode (Apple) | Simulators | Build, test, previews, touch, screenshots | Your test results | Xcode alerts on connect | Part of Xcode |
| mobile-mcp | Simulators, USB iPhone, Android | Element list, tap, screenshots | Not described | Not described | Apache-2.0 |
| Appium MCP | Simulators, iPhone | Find, gesture, screenshot, generate tests | Your Appium tests | Not described | Apache-2.0 |
| Maestro MCP | Simulators, no iPhone | Inspect, screenshot, run flows | Flow result | Not described | Apache-2.0 repo |
| ios-simulator-mcp | Simulators | Tree, tap, type, swipe, video | Not described | Not described | MIT |
| Blitz iPhone-mcp | iPhone, simulators | Scan screen, actions, screenshots | Not described | Not described | MIT |
“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-devicelimits the server to the iPhones you name. Any other real device is listed asnot_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 want | Pick |
|---|---|
| Build, run tests, debug in LLDB | XcodeBuildMCP or Xcode’s server |
| One server for iOS and Android | mobile-mcp |
| Generated tests inside an Appium suite | Appium MCP |
| Maestro flows on simulators | Maestro MCP |
| A simulator, read and tap | ios-simulator-mcp |
| A verdict from code, and approvals on a real iPhone | Mobster |
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-codeAsk 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
- Mobster docs: MCP server
- Mobster docs: Use Mobster from Xcode's agents
- Mobster docs: benchmarks
- XcodeBuildMCP (now MobileBuildMCP, Sentry): README
- MobileBuildMCP: project site
- Apple: Giving external agents access to Xcode
- Apple: Xcode 27 Release Notes
- mobile-mcp (mobile-next): README
- Appium MCP: README
- Maestro docs: Maestro MCP
- Maestro: README and issue 686, support real iOS devices
- ios-simulator-mcp: README
- Blitz iPhone-mcp: README



