simctl-mcp
by ambar
simctl-mcp is a Model Context Protocol server implementation designed for controlling iOS Simulators. It enables interaction with the simulator through standard input/output streams or HTTP, offering a range of functionalities for device and app management.
Last updated: N/A
What is simctl-mcp?
simctl-mcp is a server that implements the Model Context Protocol, allowing developers and testers to interact with and control iOS Simulators programmatically. It provides a set of tools and functionalities to manage devices, apps, permissions, system features, certificates, and media content within the simulator environment.
How to use simctl-mcp?
The server can be started in STDIO mode (default) or HTTP Server mode. In STDIO mode, use npx simctl-mcp
. In HTTP Server mode, use npx simctl-mcp --http
(default port 8081) or npx simctl-mcp --http --port <port>
for a custom port. Configuration can be set in .cursor/mcp.json
or .vscode/mcp.json
.
Key features of simctl-mcp
Device Management (create, delete, boot, shutdown, list)
App Management (install, uninstall, launch, terminate, get info)
App Permissions (grant, revoke, reset)
System Features (open URLs, add media, get/set environment variables, appearance)
Certificate & Security (add root/regular certificates, reset keychain)
Media & Content (take screenshots, get/set pasteboard content)
Use cases of simctl-mcp
Automated testing of iOS applications
Scripting simulator interactions for development workflows
Managing simulator configurations for different testing scenarios
Programmatically installing and configuring apps in the simulator
Simulating push notifications and other system events
Automating the setup of simulator environments for CI/CD pipelines
FAQ from simctl-mcp
What operations does the simulator support?
What operations does the simulator support?
The server supports a wide range of operations, including device management, app management, permission control, and system feature manipulation.
How do I open a URL in the simulator?
How do I open a URL in the simulator?
You can use the server to open URLs directly in the simulator's Safari browser.
How can I set the clipboard content?
How can I set the clipboard content?
The server allows you to programmatically set the clipboard content of the simulator.
Can I get the bundle ID of an installed app?
Can I get the bundle ID of an installed app?
Yes, the server provides functionality to retrieve the bundle ID and other information about installed apps.
How do I generate an Appium connection string?
How do I generate an Appium connection string?
The server can assist in generating Appium connection strings for specific apps running in the simulator.