MCP server for interacting with the iOS simulator
{
"mcpServers": {
"ios-simulator": {
"env": {
"IOS_SIMULATOR_MCP_IDB_PATH": "~/bin/idb",
"IOS_SIMULATOR_MCP_FILTERED_TOOLS": "screenshot,record_video,stop_recording",
"IOS_SIMULATOR_MCP_DEFAULT_OUTPUT_DIR": "~/Code/awesome-project/tmp"
},
"args": [
"-y",
"ios-simulator-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server for interacting with the iOS simulator
Is it safe?
No known CVEs for ios-simulator-mcp. 1 previously resolved.
No authentication — any process on your machine can connect.
MIT. View license →
Is it maintained?
Last commit 2 days ago. 1,832 stars. 1,928 weekly downloads.
Will it work with my client?
Transport: stdio, sse, http. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
Context cost
13 tools. ~1,800 tokens (0.9% of 200K).
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'ios-simulator-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
get_booted_sim_idGet the ID of the currently booted iOS simulator
open_simulatorOpens the iOS Simulator application
ui_describe_allDescribes accessibility information for the entire screen in the iOS Simulator
ui_tapTap on the screen in the iOS Simulator
ui_typeInput text into the iOS Simulator
ui_swipeSwipe on the screen in the iOS Simulator
ui_describe_pointReturns the accessibility element at given co-ordinates on the iOS Simulator's screen
ui_viewGet the image content of a compressed screenshot of the current simulator view
screenshotTakes a screenshot of the iOS Simulator
record_videoRecords a video of the iOS Simulator using simctl directly
This server is missing a description.If you've used it, help the community.
Add informationNo open vulnerabilities. 1 fixed CVE.
CVE-2025-52573FixediOS Simulator MCP Command Injection allowed via exec API
# Command Injection in MCP Server The MCP Server at https://github.com/joshuayoes/ios-simulator-mcp/ is written in a way that is vulnerable to command injection vulnerability attacks as part of some of its MCP Server tool definition and implementation. ## Vulnerable tool The MCP Server exposes the tool `ui_tap` which relies on Node.js child process API `exec` which is an unsafe and vulnerable API if concatenated with untrusted user input. LLM exposed user input for `duration`, `udid`, and `x
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Ios Simulator Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.
Security Notice: Command injection vulnerabilities present in versions < 1.3.3 have been fixed. Please update to v1.3.3 or later. See SECURITY.md for details.
https://github.com/user-attachments/assets/453ebe7b-cc93-4ac2-b08d-0f8ac8339ad3
This project has been featured and mentioned in various publications and resources:
get_booted_sim_idDescription: Get the ID of the currently booted iOS simulator
Parameters: No Parameters
open_simulatorDescription: Opens the iOS Simulator application
Parameters: No Parameters
ui_describe_allDescription: Describes accessibility information for the entire screen in the iOS Simulator
Parameters:
{
/**
* Udid of target, can also be set with the IDB_UDID env var
* Format: UUID (8-4-4-4-12 hexadecimal characters)
*/
udid?: string;
}
ui_tapDescription: Tap on the screen in the iOS Simulator
Parameters:
{
/**
* Press duration in seconds (decimal numbers allowed)
*/
duration?: string;
/**
* Udid of target, can also be set with the IDB_UDID env var
* Format: UUID (8-4-4-4-12 hexadecimal characters)
*/
udid?: string;
/** The x-coordinate */
x: number;
/** The y-coordinate */
y: number;
}
ui_typeDescription: Input text into the iOS Simulator
Parameters:
{
/**
* Udid of target, can also be set with the IDB_UDID env var
* Format: UUID (8-4-4-4-12 hexadecimal characters)
*/
udid?: string;
/**
* Text to input
* Format: ASCII printable characters only
*/
text: string;
}
ui_swipeDescription: Swipe on the screen in the iOS Simulator
Parameters:
{
/**
* Swipe duration in seconds (decimal numbers allowed)
*/
duration?: string;
/**
* Udid of target, can also be set with the IDB_UDID env var
* Format: UUID (8-4-4-4-12 hexadecimal characters)
*/
udid?: string;
/** The starting x-coordinate */
x_start: number;
/** The starting y-coordinate */
y_start: number;
/** The ending x-coordinate */
x_end: number;
/** The ending y-coordinate */
y_end: number;
/** The size of each step in the swipe (default is 1) */
delta?: number;
}
ui_describe_pointDescription: Returns the accessibility element at given co-ordinates on the iOS Simulator's screen
Parameters:
{
/**
* Udid of target, can also be set with the IDB_UDID env var
* Format: UUID (8-4-4-4-12 hexadecimal
... [View full README on GitHub](https://github.com/joshuayoes/ios-simulator-mcp#readme)