MCP server for interacting with the iOS simulator
Connect Ios to Claude, Cursor or any other MCP client and it stops being a tab you switch to. MCP server for interacting with the iOS simulator. The ios mcp server is what makes that connection.
A Model Context Protocol (MCP) server for interacting with iOS simulators. This server allows you to interact with iOS simulators by getting information about them, controlling UI interactions, and inspecting UI elements.
The server ships on npm as ios-simulator-mcp, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
The toolset is worth reading before you wire it up, because it tells you what the integration is really for:
get_booted_sim_id — The get_booted_sim_id tool exposed by this serveropen_simulator — The open_simulator tool exposed by this serverui_describe_all — The ui_describe_all tool exposed by this serverui_tap — The ui_tap tool exposed by this serverui_type — The ui_type tool exposed by this serverui_swipe — The ui_swipe tool exposed by this serverui_describe_point — The ui_describe_point tool exposed by this serverui_find_element — The ui_find_element tool exposed by this serverui_view — The ui_view tool exposed by this serverscreenshot — The screenshot tool exposed by this serverrecord_video — The record_video tool exposed by this serverstop_recording — The stop_recording tool exposed by this serverConfiguration is passed through the environment: IOS_SIMULATOR_MCP_FILTERED_TOOLS, IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR, IOS_SIMULATOR_MCP_IDB_PATH. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Plenty of browser automation servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Ios's toolset — get_booted_sim_id, open_simulator, ui_describe_all and 11 more — is a fair guide to whether it matches your workflow. It is maintained by GitHub Actions; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| get_booted_sim_id | The get_booted_sim_id tool exposed by this server. |
| open_simulator | The open_simulator tool exposed by this server. |
| ui_describe_all | The ui_describe_all tool exposed by this server. |
| ui_tap | The ui_tap tool exposed by this server. |
| ui_type | The ui_type tool exposed by this server. |
| ui_swipe | The ui_swipe tool exposed by this server. |
| ui_describe_point | The ui_describe_point tool exposed by this server. |
| ui_find_element | The ui_find_element tool exposed by this server. |
| ui_view | The ui_view tool exposed by this server. |
| screenshot | The screenshot tool exposed by this server. |
| record_video | The record_video tool exposed by this server. |
| stop_recording | The stop_recording tool exposed by this server. |
| install_app | The install_app tool exposed by this server. |
| launch_app | The launch_app tool exposed by this server. |
{
"mcpServers": {
"ios-simulator": {
"command": "npx",
"args": ["-y", "ios-simulator-mcp"],
"env": {
"IOS_SIMULATOR_MCP_FILTERED_TOOLS": "screenshot,record_video,stop_recording",
"IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR": "~/Code/awesome-project/tmp",
"IOS_SIMULATOR_MCP_IDB_PATH": "~/bin/idb"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| IOS_SIMULATOR_MCP_FILTERED_TOOLS | Configuration value read at startup. | Optional |
| IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR | Filesystem location the server is allowed to use. | Optional |
| IOS_SIMULATOR_MCP_IDB_PATH | Filesystem location the server is allowed to use. | Optional |
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
Industrial-strength web extraction — render, scrape, crawl and search entire sites into clean markdown.
The original Chromium automation reference server — simple, screenshot-driven browser control.
Give your coding agent the full DevTools toolbox: traces, network, console, heap snapshots and Lighthouse.
Puppeteer-powered browser control that drives pages from the accessibility tree instead of pixels.
Cloud browsers for AI agents — automation sessions that run in Browserbase's fleet, not on your machine.