Ios Sim MCP vs Mobilerun

A side-by-side look at the Ios Sim MCP and Mobilerun MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Ios Sim MCP logoIos Sim MCPOS Automation · Local subprocess (stdio)Drive the iOS Simulator via semantic accessibility-tree snapshots. Sub-200ms, no WebDriverAgent.52GoodAuth: not declaredMobilerun logoMobilerunOS Automation · Local subprocess (stdio)Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.49FairAuth: not declared

Verdict: choose Ios Sim MCP for os automation work as a local process; choose Mobilerun for os automation as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Ios Sim MCP logoChoose Ios Sim MCP when

  • You need dedicated capabilities in the OS Automation domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like list_simulators, use_simulator, snapshot.
Explore Ios Sim MCP

Mobilerun logoChoose Mobilerun when

  • You need dedicated capabilities in the OS Automation domain.
  • You prefer a local stdio subprocess transport.
Explore Mobilerun

Feature & specification comparison

Rows where the two servers differ are marked.

SpecIos Sim MCP logoIos Sim MCPMobilerun logoMobilerun
CategoryOS AutomationOS Automation
Quality signal52/100 · Good49/100 · Fair
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars09,746
Directory activity 3 views 0 installs 0 upvotes 7 views 0 installs 0 upvotes
Tools26Not listed

Tools & capabilities

Ios Sim MCP tools 26

  • list_simulatorsList simulators with UDID, state, OS version
  • use_simulatorPick a specific UDID (auto-selected if only one is booted)
  • snapshotCapture the AX tree, assign refs `e1..eN`, return compact text rendering. Filters: `interactive` (default), `actionable`, `all
  • findSearch the snapshot by `id` (AXUniqueId), `label`, `labelContains`, `role`, `actionable
  • tapTap by `{ref}`, `{id}`, or `{x,y}`. Optional `duration` makes it a long-press
  • type_textType into the focused field. Optional `{ref}` or `{id}` taps-then-types. Auto-routes through paste when the dylib is loaded for byte-perfect input — no iOS autocorrect, no first-letter capitalization. `via: "keystroke"` forces the typing path; `via: "paste"` forces the paste path
  • paste_textByte-perfect text via `UIPasteboard` + first-responder `paste:`. Requires the dylib injected. The right answer for emails, passwords, OAuth tokens, anything case-sensitive
  • view_treeWalk the running app's `UIView` hierarchy on the main thread. Reports class names, frames in window coords, alpha/hidden/interactive, text content, and annotates view-controller boundaries. Strictly richer than `snapshot` — sees custom-drawn views, transient overlays, SwiftUI internals. Filter by `…
  • view_hit_test"What view actually receives a tap at (x,y)?" Returns the topmost view plus the full responder chain up to `UIApplication`. The right debugging tool when a `tap` isn't doing what you expect. Requires dylib injected
  • network_startInstall/remove an `URLProtocol` interceptor + swizzle `URLSessionConfiguration` so every `URLSession`-based HTTP request flowing through the app is recorded. Options: `max_records`, `max_body_bytes`, `filter_url_substring`. Requires dylib injected
  • network_tailReturn the most recent N captured records. Default: one line per request (id, method, status, timing, sizes, URL). `full=true` includes headers + body previews inline. Page forward via `since_id
  • network_get_bodyFetch the full request or response body (up to `max_body_bytes`, default 256KB) for a specific record id. Returns base64 + UTF-8 decode for text bodies
  • +14 more on the listing page

Mobilerun tools

No tool names declared yet. Check the project README from the listing page.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Ios Sim MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ios-sim-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-sim-mcp"
      ]
    }
  }
}

Mobilerun

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mobilerun": {
      "command": "uvx",
      "args": [
        "mobilerun"
      ]
    }
  }
}

Frequently asked questions

Ios Sim MCP is categorized under OS Automation and uses a local stdio subprocess. Mobilerun belongs to OS Automation and uses a local stdio subprocess. Pick Ios Sim MCP for os automation work and Mobilerun for os automation.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Ios Sim MCP has no declared pricing — check the project's own site. Mobilerun has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add ios-sim-mcp and mobilerun as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Ios Sim MCP has a quality signal of 52/100 (Good) with 3 views, 0 installs and 0 GitHub stars. Mobilerun has 49/100 (Fair) with 7 views, 0 installs and 9,746 GitHub stars.