thumbs

Guides

How to test an iOS app with Claude Code or Cursor

By Jorge García González, maker of thumbs · 26 October 2026

Disclosure: I make thumbs, one of the options below. It covers only part of this topic today, and I'll say which part.

Claude Code and Cursor are good at writing code. Testing an iOS app also takes a phone: something has to open the app, tap through it and see what's on screen. An MCP server gives the agent that phone. Here is what works today for a native iOS app, what works for a web app, and how to set each one up.

The loop

An agent that tests an app needs the same loop as you: build it, run it on a simulator or a device, look at the screen, act (tap, type, swipe) and report what happened. The coding agent already handles the build and the report. The MCP server supplies look and act.

A native iOS app: a local setup

For an app you are building, the working path today is local, on a Mac:

  1. Build and run in the Simulator. Xcode, xcodebuild or a build-focused MCP server such as XcodeBuildMCP can do this from the agent.
  2. Add an iOS Simulator MCP server so the agent can see and operate the screen. ios-simulator-mcp is one open-source option; per its README it needs macOS, Xcode with simulators, Node.js and Facebook's IDB tool. In Claude Code or Cursor it is a command entry (npx -y ios-simulator-mcp) rather than a URL.
  3. Ask for the flow. For example: "Build the app, launch it in the Simulator, sign up with a test account, and tell me where the flow breaks. Send a screenshot of each failure."

This is free and you stay in control. It takes a Mac and some setup, and a Simulator is not a real device: no real touch hardware, network or battery conditions.

A web app: Safari on iOS, with nothing to install

If what you ship is a website, you can skip the Mac. thumbs is a remote MCP server, and its free early access runs Safari on a shared iOS Simulator:

  1. Join the waitlist. People are let in one at a time.
  2. Claude Code: claude mcp add --transport http thumbs https://mcp.usethumbs.com/mcp, then /mcp and sign in with Google.
  3. Cursor: add { "mcpServers": { "thumbs": { "url": "https://mcp.usethumbs.com/mcp" } } } to ~/.cursor/mcp.json and sign in when asked.
  4. Ask: "Open https://your-site.com/signup in Safari and tell me if the keyboard hides the Submit button."

Each time the agent gets a screenshot and a numbered list of what it can tap, so it can say "tap 4" rather than guess pixel positions. More prompts are in the web app testing guide.

What thumbs can't do for your native app yet

Be clear about the gap: thumbs' early access can't install your own app. The shared Simulator has Safari and Apple's built-in apps only. Testing your own app, or an app with your own account, needs a real iPhone of your own, which is planned; it isn't available yet and has no date or price. Until then, use the local setup above for native work.

Claude Code or Cursor?

Either works with every server in this guide, because both are MCP clients. Claude Code runs in your terminal; Cursor runs in your editor. The MCP part is the same: a local entry for a local server, a URL for a remote one. Pick the one you already use.

Keep an agent honest

FAQ

Can Claude Code test an iOS app? Yes, if it can build the app and operate a simulator. Today that means a local setup on a Mac: Claude Code plus an iOS Simulator MCP server, and a build tool such as XcodeBuildMCP or plain xcodebuild.

Can Cursor do mobile testing? Yes, the same way: Cursor is an MCP client, so you add a local Simulator server or a remote one to ~/.cursor/mcp.json. Cursor writes and builds the code; the MCP server gives the agent the phone screen.

Can I test my own native app with thumbs? Not yet. Early access runs on a shared iOS Simulator with Safari and Apple's built-in apps. Testing your own app needs your own iPhone, which is planned, not available, and has no date or price.

What can I test with thumbs today? Your web app in Safari on iOS: whether the keyboard covers a form, whether a small field zooms the page, whether a fixed footer or layout breaks. It's free in early access, from a waitlist.

Does it replace XCUITest or my test suite? No. An agent is good for a quick exploratory check and for finding what to cover; keep your regression suite for what must never break.

Keep reading