Server Configuration
Describes the environment variables required to run the server.
Name | Required | Description | Default |
---|---|---|---|
SENTRY_DISABLED | No | Disable Sentry error monitoring and diagnostics by setting to 'true' | false |
INCREMENTAL_BUILDS_ENABLED | No | Enable experimental incremental builds support for lightning fast builds | false |
XCODEBUILDMCP_DYNAMIC_TOOLS | No | Enable dynamic tool loading to optimize context window usage by loading only essential tools initially and dynamically loading relevant tools based on AI-powered discovery | false |
XCODEBUILDMCP_ENABLED_WORKFLOWS | No | Comma-separated list of workflows to load in static mode (e.g., 'simulator,device,project-discovery'). Available workflows: device, simulator, simulator-management, swift-package, project-discovery, macos, ui-testing, logging, project-scaffolding, utilities, doctor, discovery |
Schema
Prompts
Interactive templates invoked by user choice
Name | Description |
---|---|
No prompts |
Resources
Contextual data attached and managed by the client
Name | Description |
---|---|
devices | |
doctor | |
simulators |
Tools
Functions exposed to the LLM to take actions
Name | Description |
---|---|
build_dev_proj | Builds an app from a project file for a physical Apple device. IMPORTANT: Requires projectPath and scheme. Example: build_dev_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) |
clean_proj | Cleans build products and intermediate files from a project. IMPORTANT: Requires projectPath. Example: clean_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) |
discover_projs | Scans a directory (defaults to workspace root) to find Xcode project (.xcodeproj) and workspace (.xcworkspace) files. |
get_app_bundle_id | Extracts the bundle identifier from an app bundle (.app) for any Apple platform (iOS, iPadOS, watchOS, tvOS, visionOS). IMPORTANT: You MUST provide the appPath parameter. Example: get_app_bundle_id({ appPath: '/path/to/your/app.app' }) |
get_device_app_path_proj | Gets the app bundle path for a physical device application (iOS, watchOS, tvOS, visionOS) using a project file. IMPORTANT: Requires projectPath and scheme. Example: get_device_app_path_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' }) |
install_app_device | Installs an app on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and appPath. |
launch_app_device | Launches an app on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and bundleId. |
list_devices | Lists connected physical Apple devices (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro) with their UUIDs, names, and connection status. Use this to discover physical devices for testing. |
list_schems_proj | Lists available schemes in the project file. IMPORTANT: Requires projectPath. Example: list_schems_proj({ projectPath: '/path/to/MyProject.xcodeproj' }) |
show_build_set_proj | Shows build settings from a project file using xcodebuild. IMPORTANT: Requires projectPath and scheme. Example: show_build_set_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) |
start_device_log_cap | Starts capturing logs from a specified Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro) by launching the app with console output. Returns a session ID. |
stop_app_device | Stops an app running on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and processId. |
stop_device_log_cap | Stops an active Apple device log capture session and returns the captured logs. |
test_device_proj | Runs tests for an Apple project on a physical device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro) using xcodebuild test and parses xcresult output. IMPORTANT: Requires projectPath, scheme, and deviceId. |
build_dev_ws | Builds an app from a workspace for a physical Apple device. IMPORTANT: Requires workspacePath and scheme. Example: build_dev_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' }) |
clean_ws | Cleans build products for a specific workspace using xcodebuild. IMPORTANT: Requires workspacePath. Scheme/Configuration are optional. Example: clean_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' }) |
get_device_app_path_ws | Gets the app bundle path for a physical device application (iOS, watchOS, tvOS, visionOS) using a workspace. IMPORTANT: Requires workspacePath and scheme. Example: get_device_app_path_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme' }) |
list_schems_ws | Lists available schemes in the workspace. IMPORTANT: Requires workspacePath. Example: list_schems_ws({ workspacePath: '/path/to/MyProject.xcworkspace' }) |
show_build_set_ws | Shows build settings from a workspace using xcodebuild. IMPORTANT: Requires workspacePath and scheme. Example: show_build_set_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' }) |
test_device_ws | Runs tests for an Apple workspace on a physical device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro) using xcodebuild test and parses xcresult output. IMPORTANT: Requires workspacePath, scheme, and deviceId. |
discover_tools | Analyzes a natural language task description and enables the most relevant development workflow. Prioritizes project/workspace workflows (simulator/device/macOS) and also supports task-based workflows (simulator-management, logging) and Swift packages. |
doctor | Provides comprehensive information about the MCP server environment, available dependencies, and configuration status. |
start_sim_log_cap | Starts capturing logs from a specified simulator. Returns a session ID. By default, captures only structured logs. |
stop_sim_log_cap | Stops an active simulator log capture session and returns the captured logs. |
build_mac_proj | Builds a macOS app using xcodebuild from a project file. |
build_run_mac_proj | Builds and runs a macOS app from a project file in one step. |
get_mac_app_path_proj | Gets the app bundle path for a macOS application using a project file. IMPORTANT: Requires projectPath and scheme. Example: get_mac_app_path_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' }) |
get_mac_bundle_id | Extracts the bundle identifier from a macOS app bundle (.app). IMPORTANT: You MUST provide the appPath parameter. Example: get_mac_bundle_id({ appPath: '/path/to/your/app.app' }) Note: In some environments, this tool may be prefixed as mcp0_get_macos_bundle_id. |
launch_mac_app | Launches a macOS application. IMPORTANT: You MUST provide the appPath parameter. Example: launch_mac_app({ appPath: '/path/to/your/app.app' }) Note: In some environments, this tool may be prefixed as mcp0_launch_macos_app. |
stop_mac_app | Stops a running macOS application. Can stop by app name or process ID. |
test_macos_proj | Runs tests for a macOS project using xcodebuild test and parses xcresult output. |
build_mac_ws | Builds a macOS app using xcodebuild from a workspace. |
build_run_mac_ws | Builds and runs a macOS app from a workspace in one step. |
get_mac_app_path_ws | Gets the app bundle path for a macOS application using a workspace. IMPORTANT: Requires workspacePath and scheme. Example: get_mac_app_path_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme' }) |
test_macos_ws | Runs tests for a macOS workspace using xcodebuild test and parses xcresult output. |
scaffold_ios_project | Scaffold a new iOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper iOS configuration. |
scaffold_macos_project | Scaffold a new macOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper macOS configuration. |
boot_sim | Boots an iOS simulator. IMPORTANT: You MUST provide the simulatorUuid parameter. Example: boot_sim({ simulatorUuid: 'YOUR_UUID_HERE' }) |
list_sims | Lists available iOS simulators with their UUIDs. |
open_sim | Opens the iOS Simulator app. |
reset_simulator_location | Resets the simulator's location to default. |
set_sim_appearance | Sets the appearance mode (dark/light) of an iOS simulator. |
set_simulator_location | Sets a custom GPS location for the simulator. |
sim_statusbar | Sets the data network indicator in the iOS simulator status bar. Use "clear" to reset all overrides, or specify a network type (hide, wifi, 3g, 4g, lte, lte-a, lte+, 5g, 5g+, 5g-uwb, 5g-uc). |
build_run_sim_id_proj | Builds and runs an app from a project file on a simulator specified by UUID. IMPORTANT: Requires projectPath, scheme, and simulatorId. Example: build_run_sim_id_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' }) |
build_run_sim_name_proj | Builds and runs an app from a project file on a simulator specified by name. IMPORTANT: Requires projectPath, scheme, and simulatorName. Example: build_run_sim_name_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' }) |
build_sim_id_proj | Builds an app from a project file for a specific simulator by UUID. IMPORTANT: Requires projectPath, scheme, and simulatorId. Example: build_sim_id_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' }) |
build_sim_name_proj | Builds an app from a project file for a specific simulator by name. IMPORTANT: Requires projectPath, scheme, and simulatorName. Example: build_sim_name_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' }) |
describe_ui | Gets entire view hierarchy with precise frame coordinates (x, y, width, height) for all visible elements. Use this before UI interactions or after layout changes - do NOT guess coordinates from screenshots. Returns JSON tree with frame data for accurate automation. |
get_sim_app_path_id_proj | Gets the app bundle path for a simulator by UUID using a project file. IMPORTANT: Requires projectPath, scheme, platform, and simulatorId. Example: get_sim_app_path_id_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorId: 'SIMULATOR_UUID' }) |
get_sim_app_path_name_proj | Gets the app bundle path for a simulator by name using a project file. IMPORTANT: Requires projectPath, scheme, platform, and simulatorName. Example: get_sim_app_path_name_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' }) |
install_app_sim | Installs an app in an iOS simulator. IMPORTANT: You MUST provide both the simulatorUuid and appPath parameters. Example: install_app_sim({ simulatorUuid: 'YOUR_UUID_HERE', appPath: '/path/to/your/app.app' }) |
launch_app_logs_sim | Launches an app in an iOS simulator and captures its logs. |
launch_app_sim | Launches an app in an iOS simulator. IMPORTANT: You MUST provide both the simulatorUuid and bundleId parameters. Note: You must install the app in the simulator before launching. The typical workflow is: build → install → launch. Example: launch_app_sim({ simulatorUuid: 'YOUR_UUID_HERE', bundleId: 'com.example.MyApp' }) |
screenshot | Captures screenshot for visual verification. For UI coordinates, use describe_ui instead (don't determine coordinates from screenshots). |
stop_app_sim | Stops an app running in an iOS simulator. Requires simulatorUuid and bundleId. |
test_sim_id_proj | Runs tests for a project on a simulator by UUID using xcodebuild test and parses xcresult output. |
test_sim_name_proj | Runs tests for a project on a simulator by name using xcodebuild test and parses xcresult output. |
build_run_sim_id_ws | Builds and runs an app from a workspace on a simulator specified by UUID. IMPORTANT: Requires workspacePath, scheme, and simulatorId. Example: build_run_sim_id_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' }) |
build_run_sim_name_ws | Builds and runs an app from a workspace on a simulator specified by name. IMPORTANT: Requires workspacePath, scheme, and simulatorName. Example: build_run_sim_name_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', simulatorName: 'iPhone 16' }) |
build_sim_id_ws | Builds an app from a workspace for a specific simulator by UUID. IMPORTANT: Requires workspacePath, scheme, and simulatorId. Example: build_sim_id_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' }) |
build_sim_name_ws | Builds an app from a workspace for a specific simulator by name. IMPORTANT: Requires workspacePath, scheme, and simulatorName. Example: build_sim_name_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme', simulatorName: 'iPhone 16' }) |
get_sim_app_path_id_ws | Gets the app bundle path for a simulator by UUID using a workspace. IMPORTANT: Requires workspacePath, scheme, platform, and simulatorId. Example: get_sim_app_path_id_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorId: 'SIMULATOR_UUID' }) |
get_sim_app_path_name_ws | Gets the app bundle path for a simulator by name using a workspace. IMPORTANT: Requires workspacePath, scheme, platform, and simulatorName. Example: get_sim_app_path_name_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' }) |
launch_app_sim_name_ws | Launches an app in an iOS simulator by simulator name. IMPORTANT: You MUST provide both the simulatorName and bundleId parameters. Note: You must install the app in the simulator before launching. The typical workflow is: build → install → launch. Example: launch_app_sim_name_ws({ simulatorName: 'iPhone 16', bundleId: 'com.example.MyApp' }) |
stop_app_sim_name_ws | Stops an app running in an iOS simulator by simulator name. IMPORTANT: You MUST provide both the simulatorName and bundleId parameters. |
test_sim_id_ws | Runs tests for a workspace on a simulator by UUID using xcodebuild test and parses xcresult output. |
test_sim_name_ws | Runs tests for a workspace on a simulator by name using xcodebuild test and parses xcresult output. |
swift_package_build | Builds a Swift Package with swift build |
swift_package_clean | Cleans Swift Package build artifacts and derived data |
swift_package_list | Lists currently running Swift Package processes |
swift_package_run | Runs an executable target from a Swift Package with swift run |
swift_package_stop | Stops a running Swift Package executable started with swift_package_run |
swift_package_test | Runs tests for a Swift Package with swift test |
button | Press hardware button on iOS simulator. Supported buttons: apple-pay, home, lock, side-button, siri |
gesture | Perform gesture on iOS simulator using preset gestures: scroll-up, scroll-down, scroll-left, scroll-right, swipe-from-left-edge, swipe-from-right-edge, swipe-from-top-edge, swipe-from-bottom-edge |
key_press | Press a single key by keycode on the simulator. Common keycodes: 40=Return, 42=Backspace, 43=Tab, 44=Space, 58-67=F1-F10. |
key_sequence | Press key sequence using HID keycodes on iOS simulator with configurable delay |
long_press | Long press at specific coordinates for given duration (ms). Use describe_ui for precise coordinates (don't guess from screenshots). |
swipe | Swipe from one point to another. Use describe_ui for precise coordinates (don't guess from screenshots). Supports configurable timing. |
tap | Tap at specific coordinates. Use describe_ui to get precise element coordinates (don't guess from screenshots). Supports optional timing delays. |
touch | Perform touch down/up events at specific coordinates. Use describe_ui for precise coordinates (don't guess from screenshots). |
type_text | Type text (supports US keyboard characters). Use describe_ui to find text field, tap to focus, then type. |