- Home
- MCP servers
- iOS Development
iOS Development
- typescript
3
GitHub Stars
typescript
Language
2 months ago
First Indexed
3 weeks ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"dagba-ios-mcp": {
"command": "node",
"args": [
"/absolute/path/to/ios-dev-mcp-server/build/index.js"
]
}
}
}You get a complete MCP server that lets you control iOS simulators, manage apps, inspect UI, run builds and tests, and automate iOS development workflows from Claude AI. This server is designed to enable autonomous iOS simulator operations and Swift/Xcode tooling through a clean, scriptable interface you can invoke from an MCP client. It is built to be integrated into a local development setup where you can boot simulators, install apps, interact with the UI, stream logs, and drive builds and tests from your workflows.
How to use
You use this MCP server by running it locally as an MCP endpoint and connecting your MCP client to the provided stdio command. Start by building the server, then configure your MCP client to point at the local build in your environment. Once connected, you can drive simulators and Xcode tooling using the available tools in scripted workflows or Claude Code skills. Typical usage patterns include: booting a simulator, installing and launching your app, taking screenshots for UI verification, streaming logs for debugging, and running unit/UI tests with parsed results.
How to install
Follow these concrete steps to set up the iOS Development MCP Server locally and ready it for Claude Code integration.
# Prerequisites
# - macOS with Xcode 15+ and Command Line Tools installed
# - Node.js 18+
# Quick Setup
# 1) Clone the server repository
# (Use your actual repo path for the command below)
git clone https://github.com/dagba/ios-mcp
cd ios-mcp
# 2) Install dependencies
npm install
# 3) Build the project
npm run build
Additional setup and configuration
Configure the MCP client to load and use the local server build. The following configuration demonstrates how to wire the server into Claude Code so you can start issuing MCP prompts that drive the iOS tooling.
{
"mcpServers": {
"ios_dev_mcp": {
"command": "node",
"args": ["/absolute/path/to/ios-dev-mcp-server/build/index.js"],
"metadata": {
"name": "iOS Development MCP Server",
"description": "Comprehensive iOS simulator control and Swift/Xcode development tools",
"version": "0.4.0"
}
}
}
}
Troubleshooting and tips
If you encounter issues during setup, verify that the build output path matches the path specified in your configuration. Ensure Xcode Command Line Tools are installed and that the required Node version is active. If a simulator cannot be booted, confirm you have a valid simulator runtime installed via Xcode and that the specified device UDID exists on your system.
Future plans and licensing
This project is actively developed to expand tool coverage, improve reliability, and add richer integration points with Claude Code. Planned enhancements include more robust build tooling, improved test reporting, deeper Instruments/Profiling support, and expanded Swift Package Manager automation. The software is released under the MIT license and is provided as-is for development and experimentation.
Available tools
simulator_list_devices
List all available iOS simulator devices with their current states.
simulator_boot
Boot an iOS simulator device by UDID.
simulator_shutdown
Shutdown a running iOS simulator device.
simulator_get_info
Get detailed information about a specific simulator device.
simulator_screenshot
Capture a screenshot from the iOS simulator with automatic compression.
simulator_tap
Tap at specific coordinates on the simulator screen.
simulator_swipe
Perform a swipe gesture between two points on the simulator.
simulator_long_press
Long press to reveal context menus on the simulator.
simulator_describe_ui
Describe the full accessibility UI tree of the current screen.
simulator_describe_point
Describe the accessibility information for the element at given coordinates.
simulator_launch_app
Launch an app on the simulator by its bundle identifier.
simulator_terminate_app
Terminate a running app on the simulator.
simulator_install_app
Install an .app bundle on the simulator.
simulator_uninstall_app
Uninstall an app from the simulator and its data.
simulator_open_url
Open a URL or deep link on the simulator.
simulator_get_logs
Retrieve recent log entries from the simulator with optional filters.
simulator_type_text
Type text into the currently focused text field on the simulator.
simulator_press_home
Simulate pressing the home button on the simulator.
simulator_send_keys
Send hardware keyboard shortcuts or text to the simulator.
simulator_list_crashes
List crash reports with optional filtering by bundle and date.
simulator_get_crash
Retrieve a full crash report with stacktrace for a given crash.
simulator_delete_crashes
Delete crash reports from the simulator to clean up storage.
simulator_stream_logs
Stream real-time logs from the simulator with optional predicates.
simulator_input_text
Type text into focused fields in an advanced input workflow.
simulator_press_button
Simulate hardware button presses (HOME, LOCK, SIDE_BUTTON, SIRI, APPLE_PAY).
xcodebuild_build
Build apps for the simulator with error parsing and timing data.
xcodebuild_clean
Clean build artifacts and derived data.
xcodebuild_test
Run unit and UI tests with structured results.
xcodebuild_build_stats
Get build time statistics, trends, and performance insights.
simulator_status_bar_override
Override status bar visuals for demos and testing.
simulator_status_bar_list
List current status bar overrides on a simulator.
simulator_status_bar_clear
Clear all status bar overrides and restore default visuals.
simulator_set_appearance
Switch simulator appearance between light and dark modes.
simulator_get_appearance
Query the current appearance mode of the simulator.
simulator_set_content_size
Set Dynamic Type size for accessibility testing.
simulator_get_content_size
Get the current Dynamic Type size setting.
simulator_set_increase_contrast
Enable or disable increased contrast accessibility mode.
simulator_grant_permission
Grant a privacy permission to an app without prompting.
simulator_revoke_permission
Revoke a privacy permission for an app.
simulator_reset_permissions
Reset app permissions to prompt on next use.
simulator_send_push_notification
Send a simulated push notification to an app.
simulator_set_location
Set the simulator GPS location for testing.
simulator_simulate_route
Simulate movement along a route with defined waypoints.
simulator_list_location_scenarios
List predefined location scenarios for testing.
simulator_clear_location
Stop location simulation and clear any overrides.
simulator_start_video_recording
Start recording the simulator screen to a video file.
simulator_stop_video_recording
Stop recording and save the video.
simulator_add_media
Add photos, videos, or contacts to the simulator library.
simulator_get_app_container_path
Get the file system path to an app's container.
simulator_clipboard_copy
Copy text to the simulator clipboard.
simulator_clipboard_paste
Paste text from the simulator clipboard.
simulator_clipboard_sync
Sync the clipboard between simulators.
simulator_add_root_certificate
Add a trusted root certificate to the simulator keychain.
simulator_add_certificate
Add a certificate to the simulator keychain.
simulator_reset_keychain
Reset the simulator keychain and credentials.
simulator_trigger_icloud_sync
Trigger an iCloud sync on the simulator.