What you can do with Local iOS

Built for

iOS Developers, Mobile QA, Simulator Testing, Agent Workflows

Example workflows

Walk through an app build

Uses local Appium for fast in-loop iOS QA.

Try this

Boot the iOS Simulator, launch the staging app, tap through onboarding, and screenshot each screen.

Test mobile web in Safari

Covers mobile web on a local simulator session.

Try this

Open this URL in Safari on the simulator, wait for load, and summarize layout issues at phone width.

Find and tap a button

Combines element find, tap, and screenshot.

Try this

Locate the Settings gear icon on the current screen, tap it, and report what panel opens.

Debug a stuck screen

Uses screenshot and hierarchy for mobile debugging.

Try this

Capture a screenshot and page source of the current view, then list interactive elements visible on screen.

Context to know first

What is Local iOS best for?

It is best when you already run Xcode and an iOS Simulator on macOS and want your agent to drive it without cloud device farms.

Do I need MCPBundles Desktop?

Yes. Desktop bridges your agent to the Appium server on localhost. Install it on the Mac where the simulator runs and keep Appium listening on port 4723.

How is Local iOS different from Mobile Device?

Local iOS drives a simulator on your Mac through Desktop. Mobile Device provisions real phones and tablets in AWS Device Farm.

AI Skill
SKILL.md

Domain knowledge for Local iOS — workflow patterns, data models, and gotchas for your AI agent.

Local iOS (Appium / XCUITest)

Automate a developer-machine iOS Simulator (or USB-attached real device) via the local Appium 2.x server. Traffic flows backend → desktop proxy TCP tunnel → 127.0.0.1:4723 on the user's macOS machine. XCUITest is the active driver.

Prerequisites

  1. macOS with Xcode + Command Line Tools (xcode-select --install).
  2. A booted iOS Simulator (xcrun simctl list, xcrun simctl boot 'iPhone 15') or a real device with the appropriate WebDriverAgent provisioning profile.
  3. Appium 2.x running locally (appium) with the XCUITest driver installed (appium driver install xcuitest). For Safari sessions start with browser=true.
  4. Install MCPBundles Desktop from https://www.mcpbundles.com/desktop — required so the backend can reach localhost:4723.

Data Model

  • Session is one Appium WebDriver session per user. Re-creating closes the previous one cleanly.
  • Element ids come from an element find step and feed tap-by-element and typed input on a specific field.
  • Screenshot returns a PNG image the agent can interpret.
  • URL navigation requires a Safari WebDriver session — open the session with browser mode enabled.

Gotchas

  • Boot the simulator before opening a session — Appium only attaches to running simulators.
  • Coordinates are WebDriver points (Apple's logical units), not raw pixels. Read window size first when you need to scale taps or swipes.
  • Hardware buttons are Android-only; for iOS use swipe gestures.

Tools in this Server (20)

Local iOS Create Session

Start a local Appium iOS session through the MCPBundles desktop proxy. Requires a booted simulator and a running local Appium 2.x server. Returns the ...

Local iOS Find Element

Find a UI element on the active local iOS session and return its WebDriver element id and visible text.

Local iOS Get Contexts

List the Appium contexts on the active local iOS session. ``NATIVE_APP`` is the native UI tree; ``WEBVIEW_<package>`` (Android) or ``WEBVIEW_<id>`` (i...

Local iOS Get Page Source

Return the current UI hierarchy from the active local iOS session (XML for native apps, HTML for browser sessions). Use this before tapping or typing ...

Local iOS Get WebView HTML

Capture the WebView HTML on the active local iOS session. Switches to the first WEBVIEW context (auto-detected) and returns ``document.documentElement...

Local iOS Get Window Size

Return the WebDriver viewport size for the active local iOS session, used for coordinate-based taps and swipes.

Local iOS Install App

Install an app on the active local iOS session via ``mobile: installApp``. The path is resolved on the developer machine running Appium, not the backe...

Local iOS Launch App

Activate (launch / foreground) an installed app on the active local iOS session via ``mobile: activateApp``.

Local iOS Navigate URL

Open a URL on the active local iOS session. Android uses an Android VIEW intent through the active Appium session; iOS uses the Safari WebDriver sessi...

Local iOS Screenshot

Capture a PNG screenshot from the active local iOS Appium session. Returns the image so the agent can see what is on screen.

Local iOS Session Info

Inspect the active local iOS Appium session — WebDriver id, base URL, capabilities, and start time.

Local iOS Stop Session

Stop the active local iOS Appium session and release the WebDriver lease so the emulator/simulator is free for the next run.

Local iOS Swipe

Swipe on the active local iOS session via W3C Actions. Use ``up`` to scroll content up, ``down`` to scroll down, etc.

Local iOS Switch Context

Switch the active Appium context on the local iOS session. After switching to a WEBVIEW context, ``*_get_page_source`` returns HTML, ``*_find_element`...

Local iOS Tap

Tap at ``(x, y)`` on the active local iOS session using W3C Actions. Coordinates are WebDriver viewport units.

Local iOS Tap Element

Tap a UI element by its WebDriver element id from a prior element find on this session.

Local iOS Terminate App

Force-stop an app on the active local iOS session via ``mobile: terminateApp``. Useful between test runs to start from a cold-launch state.

Local iOS Type Text

Type text on the active local iOS session, either into a specific element or the currently focused field.

Local iOS Uninstall App

Uninstall an app from the active local iOS session via ``mobile: removeApp``.

Local iOS Wait For Element

Poll for a UI element on the active local iOS session until it is found or the timeout elapses. Returns the WebDriver element id and its text once pre...

Frequently Asked Questions

What is Local iOS best for?

It is best when you already run Xcode and an iOS Simulator on macOS and want your agent to drive it without cloud device farms.

Do I need MCPBundles Desktop?

Yes. Desktop bridges your agent to the Appium server on localhost. Install it on the Mac where the simulator runs and keep Appium listening on port 4723.

How is Local iOS different from Mobile Device?

Local iOS drives a simulator on your Mac through Desktop. Mobile Device provisions real phones and tablets in AWS Device Farm.

What do I need installed first?

Xcode with Command Line Tools, a booted iOS Simulator, Appium 2.x with the XCUITest driver, and MCPBundles Desktop.

How do I connect Local iOS to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/local-ios. Authentication is handled automatically.

How many tools does Local iOS provide?

Local iOS provides 20 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Local iOS require?

Local iOS uses API Key. Local iOS requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Local iOS to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/local-ios

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Local iOS and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Local iOS will appear under Not connected — select it and click Connect to complete OAuth.
Name: Local iOS
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/local-ios
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Local iOS?

Sign in to connect your credentials and start running tools from the chat.

Local iOS MCP Server & Skill