Ios Sim MCP logo

Ios Sim MCP

Drive booted iOS Simulators through accessibility snapshots, direct actions, app introspection, network capture, JavaScript, and logs.

Install Ios Sim MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "ios-sim-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-sim-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

npx -y ios-sim-mcp

or version of npm available! 10.1.0 -> 12.2.0 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v12.2.0> npm notice Run `npm install -g npm@12.2.0` to update! npm notice npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for ios-sim-mcp@0.4.2: wanted {"os":"darwin"} (current: {"os":"linux"}) npm ERR! notsup Valid os: darwin npm ERR! notsup Actual os: linux npm ERR! A complete log of this run can be found in: /home/user/.npm/_logs/2026-10-18T11_32_43_888Z-debug-0.log

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 6d ago.

Overview

ios-sim-mcp MCP server drives booted iOS Simulators through semantic accessibility-tree snapshots and direct UI actions. It uses idb for simulator communication and can inject a dylib for view inspection, network interception and stubbing, JavaScript evaluation, and byte-perfect paste operations. Reach for it when an agent needs to navigate, inspect, test, or debug an iOS app without relying on screenshot-based coordinate guesses. It runs as a standard stdio MCP server and supports installation through npm, Bun, or a source checkout.

Use cases

  • Navigate iOS simulator interfaces by accessibility labels
  • Inspect UIKit hierarchies when taps miss their targets
  • Capture and stub URLSession traffic during app testing
  • Enter case-sensitive credentials without iOS text transformations
  • Stream app logs while reproducing simulator behavior

Key features

  • Semantic accessibility-tree snapshots with stable element references
  • Direct simulator actions through idb
  • UIKit view-tree and hit-test inspection
  • URLSession traffic capture and response stubbing
  • In-app JavaScript evaluation through JSContext
  • Filtered os_log streaming

Tools26

What Ios Sim MCP lets your agent do. Expand a tool for its parameters.

Self-reported~912 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

7/7 checks healthy over the last 46d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · ios-sim-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads95Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.
Tools exposed26Callable tools this server registers over MCP.
Directory activity3 viewsConfig copies, upvotes, and views on AllMCPs.

How Ios Sim MCP works

What ios-sim-mcp MCP server does

ios-sim-mcp MCP server connects an MCP client to a booted iOS Simulator and exposes tools for selecting devices, reading accessibility data, interacting with applications, and inspecting runtime behavior. Its primary interaction model is a compact accessibility-tree snapshot: elements receive references such as e1 through eN, which can then be used for taps, typing, swipes, and scrolling.

The server also includes lower-level capabilities for injected applications. These include walking the UIKit view hierarchy, identifying the responder chain for a screen coordinate, recording and stubbing URLSession traffic, evaluating JavaScript in a persistent JSContext, and streaming system logs.

How it works

The simulator-facing layer uses Facebook's idb bridge to communicate with CoreSimulator. Tools such as snapshot, find, tap, type_text, swipe, scroll, launch_app, and screenshot operate through that layer. await_quiescent can wait for the accessibility-tree hash to remain unchanged instead of requiring a fixed sleep.

Optional in-process features are provided through a dylib loaded into the target app. That path communicates over a Unix socket using JSON Lines and runs view inspection, network interception, JavaScript, and related operations inside the application process. The dylib is required by tools such as paste_text, view_tree, view_hit_test, the network tools, and eval_js.

Setup and configuration

The required environment is macOS with Xcode and iOS Simulator, idb, Bun, and a booted simulator. Install idb-companion and fb-idb using the commands documented by the project, then boot a device with xcrun simctl boot <udid> or through Xcode.

The quickest installation uses npx -y ios-sim-mcp. Source installations use bun install and can build the optional dylib with ./dylib/build.sh. MCP clients should use an absolute Bun path when the client starts processes with a restricted PATH.

ios-sim-mcp MCP server uses standard stdio transport. Claude Code and Claude Desktop configuration examples are provided, and other MCP clients can run bun run src/server.ts and communicate using JSON-RPC.

Tools and capabilities

  • List simulators, select a UDID, and launch or terminate apps by bundle ID.
  • Capture and search accessibility snapshots by identifier, label, role, or actionability.
  • Tap, long-press, type, paste, press keys, use hardware buttons, swipe, and scroll.
  • Inspect UIKit views, hit-testing results, custom-drawn content, overlays, and view-controller boundaries.
  • Capture, inspect, clear, and stub URLSession requests, including request and response bodies.
  • Run persistent JavaScript against bridged app objects and reset the JavaScript context.
  • Stream filtered os_log output into a bounded ring buffer.

Limitations and notes

A simulator must be available and booted before device operations can run. Screenshot capture is available, but the project positions accessibility snapshots as the faster primary representation. Injected features require the dylib to be loaded into the target application; building it is only necessary when using source installation with injection. Network interception covers URLSession-based HTTP traffic, not an unrestricted system-wide traffic proxy.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Ios Sim MCP

ios-sim-mcp is an MCP server that connects AI clients to a booted iOS Simulator through idb and optional in-app dylib injection. Its main tools provide accessibility snapshots, semantic UI actions, view inspection, network capture and stubbing, JavaScript evaluation, screenshots, simulator controls, and system-log streaming.

Install it with npx or from source with Bun. The quickest route is registering `npx -y ios-sim-mcp` in an MCP client. A source setup requires `bun install`; build the dylib with `./dylib/build.sh` if you need injected features.

It requires macOS with Xcode and iOS Simulator, Facebook's idb tools, Bun, and a booted simulator.

Yes, ios-sim-mcp works with Claude Desktop through its standard stdio configuration. Add an `ios-sim` entry using `npx -y ios-sim-mcp`, or point the configuration at Bun and the server source path, then restart Claude Desktop.

Tools that operate inside the application process require the dylib to be injected. This includes paste operations, UIKit view inspection, hit testing, network capture and stubbing, and JavaScript evaluation; basic simulator and accessibility actions use the idb layer.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewIos Sim MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/ios-sim-mcp?style=directory)](https://allmcps.com/mcp/ios-sim-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/ios-sim-mcp"><img src="https://allmcps.com/api/badge/ios-sim-mcp?style=directory" alt="Ios Sim MCP on AllMCPs" /></a>