XcodeBuildMCP
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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| build_dev_projB | 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_projB | Cleans build products and intermediate files from a project. IMPORTANT: Requires projectPath. Example: clean_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) |
| discover_projsC | Scans a directory (defaults to workspace root) to find Xcode project (.xcodeproj) and workspace (.xcworkspace) files. |
| get_app_bundle_idA | 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_projA | 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_deviceA | Installs an app on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and appPath. |
| launch_app_deviceA | Launches an app on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and bundleId. |
| list_devicesA | 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_projB | Lists available schemes in the project file. IMPORTANT: Requires projectPath. Example: list_schems_proj({ projectPath: '/path/to/MyProject.xcodeproj' }) |
| show_build_set_projB | 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_capA | 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_deviceA | 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_capB | Stops an active Apple device log capture session and returns the captured logs. |
| test_device_projA | 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_wsB | 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_wsA | 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_wsA | 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_wsB | Lists available schemes in the workspace. IMPORTANT: Requires workspacePath. Example: list_schems_ws({ workspacePath: '/path/to/MyProject.xcworkspace' }) |
| show_build_set_wsA | 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_wsA | 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_toolsB | 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. |
| doctorB | Provides comprehensive information about the MCP server environment, available dependencies, and configuration status. |
| start_sim_log_capC | Starts capturing logs from a specified simulator. Returns a session ID. By default, captures only structured logs. |
| stop_sim_log_capA | Stops an active simulator log capture session and returns the captured logs. |
| build_mac_projC | Builds a macOS app using xcodebuild from a project file. |
| build_run_mac_projC | Builds and runs a macOS app from a project file in one step. |
| get_mac_app_path_projC | 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_idA | 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_appB | 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_appB | Stops a running macOS application. Can stop by app name or process ID. |
| test_macos_projB | Runs tests for a macOS project using xcodebuild test and parses xcresult output. |
| build_mac_wsC | Builds a macOS app using xcodebuild from a workspace. |
| build_run_mac_wsC | Builds and runs a macOS app from a workspace in one step. |
| get_mac_app_path_wsB | 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_wsA | Runs tests for a macOS workspace using xcodebuild test and parses xcresult output. |
| scaffold_ios_projectB | 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_projectB | Scaffold a new macOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper macOS configuration. |
| boot_simB | Boots an iOS simulator. IMPORTANT: You MUST provide the simulatorUuid parameter. Example: boot_sim({ simulatorUuid: 'YOUR_UUID_HERE' }) |
| list_simsB | Lists available iOS simulators with their UUIDs. |
| open_simB | Opens the iOS Simulator app. |
| reset_simulator_locationC | Resets the simulator's location to default. |
| set_sim_appearanceB | Sets the appearance mode (dark/light) of an iOS simulator. |
| set_simulator_locationC | Sets a custom GPS location for the simulator. |
| sim_statusbarA | 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_projA | 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_projB | 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_projB | 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_projB | 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_uiA | 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_projB | 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_projA | 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_simA | 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_simC | Launches an app in an iOS simulator and captures its logs. |
| launch_app_simA | 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' }) |
| screenshotB | Captures screenshot for visual verification. For UI coordinates, use describe_ui instead (don't determine coordinates from screenshots). |
| stop_app_simB | Stops an app running in an iOS simulator. Requires simulatorUuid and bundleId. |
| test_sim_id_projB | Runs tests for a project on a simulator by UUID using xcodebuild test and parses xcresult output. |
| test_sim_name_projC | Runs tests for a project on a simulator by name using xcodebuild test and parses xcresult output. |
| build_run_sim_id_wsB | 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_wsB | 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_wsA | 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_wsB | 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_wsA | 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_wsB | 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_wsA | 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_wsA | Stops an app running in an iOS simulator by simulator name. IMPORTANT: You MUST provide both the simulatorName and bundleId parameters. |
| test_sim_id_wsB | Runs tests for a workspace on a simulator by UUID using xcodebuild test and parses xcresult output. |
| test_sim_name_wsB | Runs tests for a workspace on a simulator by name using xcodebuild test and parses xcresult output. |
| swift_package_buildC | Builds a Swift Package with swift build |
| swift_package_cleanC | Cleans Swift Package build artifacts and derived data |
| swift_package_listB | Lists currently running Swift Package processes |
| swift_package_runB | Runs an executable target from a Swift Package with swift run |
| swift_package_stopA | Stops a running Swift Package executable started with swift_package_run |
| swift_package_testB | Runs tests for a Swift Package with swift test |
| buttonA | Press hardware button on iOS simulator. Supported buttons: apple-pay, home, lock, side-button, siri |
| gestureA | 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_pressA | Press a single key by keycode on the simulator. Common keycodes: 40=Return, 42=Backspace, 43=Tab, 44=Space, 58-67=F1-F10. |
| key_sequenceC | Press key sequence using HID keycodes on iOS simulator with configurable delay |
| long_pressA | Long press at specific coordinates for given duration (ms). Use describe_ui for precise coordinates (don't guess from screenshots). |
| swipeB | Swipe from one point to another. Use describe_ui for precise coordinates (don't guess from screenshots). Supports configurable timing. |
| tapA | Tap at specific coordinates. Use describe_ui to get precise element coordinates (don't guess from screenshots). Supports optional timing delays. |
| touchB | Perform touch down/up events at specific coordinates. Use describe_ui for precise coordinates (don't guess from screenshots). |
| type_textB | Type text (supports US keyboard characters). Use describe_ui to find text field, tap to focus, then type. |
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 |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/getsentry/XcodeBuildMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server