Xcode MCP Server
The Xcode MCP Server enables comprehensive management of Xcode projects, simulators, and physical devices:
Build & Test
Build, test, clean, and archive Xcode projects or workspaces
Show build settings, available destinations, and SDKs
Simulator Control
List, boot, shut down, and erase iOS/watchOS/tvOS simulators
Install and launch apps, capture screenshots, and open URLs on simulators
Physical Device Support
List connected iOS devices and device pairs; get detailed device info
Install apps, build, and run apps directly on physical devices (with automatic signing)
Project & File Management
List schemes and show build settings for projects/workspaces
Create new Xcode projects (iOS/macOS), Swift source files, and directories
Read file contents and modify/add entries to
.plistfiles
Web Monitor
Start, stop, and check the status of a web interface for visual command execution and monitoring
Enables creation and management of iOS applications, with support for building, testing, and deploying to iOS simulators.
Supports development of macOS applications with project creation, building capabilities, and management tools.
Facilitates creation and modification of Swift source files within Xcode projects.
Provides programmatic access to Xcode functionality for creating, building, testing, and managing iOS/macOS projects, including project management, file operations, and simulator management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Xcode MCP Server create a new iOS app called PhotoGallery"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@ebowwa/mcp-xcode
Xcode MCP server - build, test, run, and manage simulators from Claude Code.
Installation
npm install @ebowwa/mcp-xcodeRelated MCP server: MCP Xcode
Requirements
macOS (Darwin)
Xcode Command Line Tools (
xcode-select --install)
Tools
Build Tools
Tool | Description |
| Build an Xcode project/workspace |
| Run unit/UI tests |
| Create .xcarchive for distribution |
| Clean build folder |
| Show all build settings for a scheme |
Project Info
Tool | Description |
| Get project/workspace info |
| List all schemes |
| List available destinations |
Simulator Tools
Tool | Description |
| List all available simulators |
| Boot a simulator |
| Shutdown simulator(s) |
| Install app on simulator |
| Launch app on simulator |
| Terminate app on simulator |
| Open URL on simulator |
| Take screenshot |
Device Tools
Tool | Description |
| List connected physical devices |
| List installed iOS/tvOS/watchOS runtimes |
Usage Examples
Build a Scheme
{
"scheme": "MyApp",
"destination": "platform=iOS Simulator,name=iPhone 15"
}Run Tests
{
"scheme": "MyAppTests",
"onlyTesting": "MyAppTests/MyTestCase/testExample"
}Boot Simulator
{
"name": "iPhone 15",
"runtime": "iOS 17.2"
}Install and Launch App
{
"appPath": "/path/to/MyApp.app",
"bundleId": "com.mycompany.myapp"
}Claude Code Configuration
Add to your ~/.claude.json:
{
"mcpServers": {
"xcode": {
"command": "bun",
"args": ["run", "/path/to/mcp-xcode/dist/index.js"]
}
}
}License
MIT
Available Tools
33 toolsstart_web_monitorB
Start the web interface for visual command execution and monitoring
Inputs: no named parameters.
stop_web_monitorB
Stop the web interface if it is running
Inputs: no named parameters.
web_monitor_statusB
Get the current status of the web monitor
Inputs: no named parameters.
xcode_add_plist_entryC
Add a new entry to a plist file
Inputs: plist_path (required), key (required), type (required), value (required).
xcode_archive_projectC
Create an archive for distribution
Inputs: project_path (required), scheme (required), archive_path (required).
xcode_boot_simulatorC
Boot a specific simulator by device ID
Inputs: device_id (required).
xcode_build_for_deviceA
Build project specifically for physical device with automatic signing
Inputs: project_path (required), scheme (required), device_id (required).
xcode_build_projectC
Build an Xcode project with specific scheme and configuration
Inputs: project_path (required), scheme (required), configuration, destination, +1 more.
xcode_capture_screenshotC
Capture screenshot from simulator
Inputs: device_id (required), output_path (required).
xcode_clean_projectC
Clean build artifacts for an Xcode project
Inputs: project_path (required), scheme.
xcode_create_directoryC
Create a directory with subdirectories if needed
Inputs: path (required).
xcode_create_projectC
Create a new Xcode project with basic structure
Inputs: project_path (required), project_name (required), bundle_id (required), platform.
xcode_create_swift_fileC
Create a new Swift source file with content
Inputs: file_path (required), content (required).
xcode_device_infoB
Get detailed information about a specific device
Inputs: device_id (required).
xcode_erase_simulatorC
Erase simulator data and settings
Inputs: device_id (required).
xcode_install_app_deviceB
Install an app on a physical device
Inputs: device_id (required), app_path (required).
xcode_install_app_simulatorC
Install an app on a simulator
Inputs: device_id (required), app_path (required).
xcode_launch_app_simulatorC
Launch an app on a simulator
Inputs: device_id (required), bundle_id (required).
xcode_list_available_simulatorsA
List only available (not shutdown) simulators
Inputs: no named parameters.
xcode_list_device_pairsB
List paired devices (iOS devices paired with Mac)
Inputs: no named parameters.
xcode_list_physical_devicesB
List all connected physical iOS devices
Inputs: no named parameters.
xcode_list_schemesB
List available schemes in an Xcode project
Inputs: project_path (required).
xcode_list_simulatorsB
List all available iOS, watchOS, and tvOS simulators
Inputs: no named parameters.
xcode_list_simulators_jsonB
List simulators in JSON format for parsing
Inputs: no named parameters.
xcode_list_workspace_schemesC
List schemes in an Xcode workspace
Inputs: workspace_path (required).
xcode_modify_plistC
Modify a value in a plist file
Inputs: plist_path (required), key (required), value (required).
xcode_read_fileC
Read contents of a file
Inputs: file_path (required).
xcode_run_on_deviceC
Build and run app on physical device
Inputs: project_path (required), scheme (required), device_id (required), bundle_id (required), +1 more.
xcode_show_build_settingsC
Show build settings for a project/scheme
Inputs: project_path (required), scheme (required).
xcode_show_destinationsB
Show available destinations for a scheme
Inputs: project_path (required), scheme (required).
xcode_show_sdk_infoB
Show available SDKs and their paths
Inputs: no named parameters.
xcode_shutdown_simulatorC
Shutdown a specific simulator
Inputs: device_id (required).
xcode_test_projectC
Run tests for an Xcode project
Inputs: project_path (required), scheme (required), destination.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 33 tools
Most tools have distinct purposes targeting specific Xcode operations like building, testing, simulator management, or file manipulation. However, some overlap exists: 'xcode_list_simulators' and 'xcode_list_available_simulators' could be confusing, and 'xcode_build_project' vs 'xcode_build_for_device' might cause misselection without careful reading of descriptions.
Tool names follow a highly consistent pattern: all start with 'xcode_' prefix (except three web monitor tools) and use snake_case with clear verb_noun structure (e.g., 'xcode_build_project', 'xcode_list_simulators'). The three web monitor tools also maintain consistent naming ('start_web_monitor', etc.).
With 33 tools, this is borderline heavy for an Xcode server. While Xcode has many functionalities, the count feels excessive and could overwhelm agents. Some tools might be consolidated (e.g., multiple simulator listing tools). A more focused set of 15-25 tools would be better scoped.
The toolset provides comprehensive coverage of Xcode development workflows: project creation, building, testing, archiving, simulator/device management, file operations, and monitoring. It includes CRUD-like operations for files and simulators, and covers both physical devices and simulators. No obvious gaps are present for the domain.
Maintenance
Related MCP Connectors
Build, test and cache insights for Xcode, Gradle and Bazel projects, for coding agents.
Cloud iPhones and Macs with Xcode for AI agents: build, run and test iOS apps, use the screen.
The cloud Mac alone, with Xcode, for AI agents: run commands, build and test, use the screen.
Cloud iPhone Simulators for AI agents: build the Xcode project, read the screen, tap by label, test.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnable Claude Code, Cursor, or your favorite LLM to interact with Xcode, building your projects the same way you do, and seeing the same errors. Greatly increases productivity when working on iOS, iPadOS, macOS, visionOS, tvOS projects & Swift packages - or any time you might use Xcode.2938 PyPI5MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to build, test, run, and manage Apple platform projects (iOS, macOS, tvOS, watchOS, visionOS) directly through Xcode. Provides comprehensive control over Xcode projects, Swift packages, simulators, and development workflows without leaving your editor.57 npm2MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Xcode projects by listing targets, reading configurations, and triggering builds via the Model Context Protocol. It facilitates natural language interaction with macOS developer tools to streamline iOS app development processes.6176 npmMIT
- AlicenseAqualityFmaintenanceProvides structured access to Xcode development tools including xcrun, xcodebuild, and xctrace for building, testing, and analyzing projects.152MIT