
Xcodebuildmcp
XcodeBuildMCP provides an MCP server and CLI tool that enables AI agents to work with iOS and macOS projects by offering build automation and project inspection capabilities. The server exposes tools for interacting with Xcode projects, building targets, and managing the build process, allowing agents to programmatically interact with Xcode workflows on macOS. It solves the problem of giving AI assistants direct access to native iOS/macOS development tasks without requiring manual intervention or shell command composition.
- GitHub stars
- 6.5K
- tools
- 71
- transport
- STDIO
- env vars
- 4
- last updated
- Jul 23, 2026
Tools
71 toolsPublic tool metadata for what this MCP can expose to an agent.
debug_attach_simAttach LLDB to a running iOS simulator app. Provide bundleId or pid, plus simulator defaults.5 params
Attach LLDB to a running iOS simulator app. Provide bundleId or pid, plus simulator defaults.
bundleIdstringcontinueOnAttachbooleanmakeCurrentbooleanpidintegerwaitForbooleandebug_breakpoint_addAdd a breakpoint by file/line or function name for the active debug session.5 params
Add a breakpoint by file/line or function name for the active debug session.
conditionstringdebugSessionIdstringfilestringfunctionstringlineintegerdebug_breakpoint_removeRemove a breakpoint by id for the active debug session.2 params
Remove a breakpoint by id for the active debug session.
breakpointIdintegerdebugSessionIdstringdebug_continueResume execution in the active debug session or a specific debugSessionId.1 params
Resume execution in the active debug session or a specific debugSessionId.
debugSessionIdstringdebug_detachDetach the current debugger session or a specific debugSessionId.1 params
Detach the current debugger session or a specific debugSessionId.
debugSessionIdstringdebug_lldb_commandRun an arbitrary LLDB command within the active debug session.3 params
Run an arbitrary LLDB command within the active debug session.
commandstringdebugSessionIdstringtimeoutMsintegerdebug_stackReturn a thread backtrace from the active debug session.3 params
Return a thread backtrace from the active debug session.
debugSessionIdstringmaxFramesintegerthreadIndexintegerdebug_variablesReturn variables for a selected frame in the active debug session.2 params
Return variables for a selected frame in the active debug session.
debugSessionIdstringframeIndexintegerbuild_deviceBuilds an app for a connected device.3 params
Builds an app for a connected device.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleancleanCleans build products with xcodebuild.4 params
Cleans build products with xcodebuild.
derivedDataPathstringextraArgsarrayplatformstringmacOS · iOS · iOS Simulator · watchOS · watchOS Simulator · tvOSpreferXcodebuildbooleandiscover_projsScans a directory (defaults to workspace root) to find Xcode project (.xcodeproj) and workspace (.xcworkspace) files.3 params
Scans a directory (defaults to workspace root) to find Xcode project (.xcodeproj) and workspace (.xcworkspace) files.
maxDepthintegerscanPathstringworkspaceRootstringget_app_bundle_idExtracts 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' })1 params
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' })
appPathstringget_device_app_pathRetrieves the built app path for a connected device.1 params
Retrieves the built app path for a connected device.
platformstringiOS · watchOS · tvOS · visionOSinstall_app_deviceInstalls an app on a connected device.1 params
Installs an app on a connected device.
appPathstringlaunch_app_deviceLaunches an app on a connected device.1 params
Launches an app on a connected device.
bundleIdstringlist_devicesLists 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.
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.
No parameter schema in public metadata yet.
list_schemesLists schemes for a project or workspace.
Lists schemes for a project or workspace.
No parameter schema in public metadata yet.
show_build_settingsShows xcodebuild build settings.
Shows xcodebuild build settings.
No parameter schema in public metadata yet.
start_device_log_capStarts log capture on a connected device.1 params
Starts log capture on a connected device.
bundleIdstringstop_app_deviceStops a running app on a connected device.1 params
Stops a running app on a connected device.
processIdnumberstop_device_log_capStops an active Apple device log capture session and returns the captured logs.1 params
Stops an active Apple device log capture session and returns the captured logs.
logSessionIdstringtest_deviceRuns tests on a physical Apple device.5 params
Runs tests on a physical Apple device.
derivedDataPathstringextraArgsarrayplatformstringiOS · watchOS · tvOS · visionOSpreferXcodebuildbooleantestRunnerEnvobjectdoctorProvides comprehensive information about the MCP server environment, available dependencies, and configuration status.1 params
Provides comprehensive information about the MCP server environment, available dependencies, and configuration status.
enabledbooleanstart_sim_log_capStarts capturing logs from a specified simulator. Returns a session ID. By default, captures only structured logs.2 params
Starts capturing logs from a specified simulator. Returns a session ID. By default, captures only structured logs.
bundleIdstringcaptureConsolebooleanstop_sim_log_capStops an active simulator log capture session and returns the captured logs.1 params
Stops an active simulator log capture session and returns the captured logs.
logSessionIdstringbuild_macosBuilds a macOS app.3 params
Builds a macOS app.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleanbuild_run_macosBuilds and runs a macOS app.3 params
Builds and runs a macOS app.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleanget_mac_app_pathRetrieves the built macOS app bundle path.2 params
Retrieves the built macOS app bundle path.
derivedDataPathstringextraArgsarrayget_mac_bundle_idExtracts 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.1 params
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.
appPathstringlaunch_mac_appLaunches 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.2 params
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.
appPathstringargsarraystop_mac_appStops a running macOS application. Can stop by app name or process ID.2 params
Stops a running macOS application. Can stop by app name or process ID.
appNamestringprocessIdnumbertest_macosRuns tests for a macOS target.4 params
Runs tests for a macOS target.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleantestRunnerEnvobjectscaffold_ios_projectScaffold a new iOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper iOS configuration.11 params
Scaffold a new iOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper iOS configuration.
bundleIdentifierstringcurrentProjectVersionstringcustomizeNamesbooleandeploymentTargetstringdisplayNamestringmarketingVersionstringoutputPathstringprojectNamestringsupportedOrientationsarraysupportedOrientationsIpadarraytargetedDeviceFamilyarrayscaffold_macos_projectScaffold a new macOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper macOS configuration.8 params
Scaffold a new macOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper macOS configuration.
bundleIdentifierstringcurrentProjectVersionstringcustomizeNamesbooleandeploymentTargetstringdisplayNamestringmarketingVersionstringoutputPathstringprojectNamestringsession-clear-defaultsClear selected or all session defaults.2 params
Clear selected or all session defaults.
allbooleankeysarraysession-set-defaultsSet the session defaults needed by many tools. Most tools require one or more session defaults to be set before they can be used. Agents should set all relevant defaults up front in a single call (e.g., project/workspace, scheme, simulator or device ID, useLatestOS) to avoid i...10 params
Set the session defaults needed by many tools. Most tools require one or more session defaults to be set before they can be used. Agents should set all relevant defaults up front in a single call (e.g., project/workspace, scheme, simulator or device ID, useLatestOS) to avoid i...
archstringarm64 · x86_64configurationstringdeviceIdstringprojectPathstringschemestringsimulatorIdstringsimulatorNamestringsuppressWarningsbooleanuseLatestOSbooleanworkspacePathstringsession-show-defaultsShow current session defaults.
Show current session defaults.
No parameter schema in public metadata yet.
boot_simBoots an iOS simulator.
Boots an iOS simulator.
No parameter schema in public metadata yet.
build_run_simBuilds and runs an app on an iOS simulator.3 params
Builds and runs an app on an iOS simulator.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleanbuild_simBuilds an app for an iOS simulator.3 params
Builds an app for an iOS simulator.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleandescribe_uiGets 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. Requires th...
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. Requires th...
No parameter schema in public metadata yet.
get_sim_app_pathRetrieves the built app path for an iOS simulator.1 params
Retrieves the built app path for an iOS simulator.
platformstringiOS Simulator · watchOS Simulator · tvOS Simulator · visionOS Simulatorinstall_app_simInstalls an app in an iOS simulator.1 params
Installs an app in an iOS simulator.
appPathstringlaunch_app_logs_simLaunches an app in an iOS simulator and captures its logs.2 params
Launches an app in an iOS simulator and captures its logs.
argsarraybundleIdstringlaunch_app_simLaunches an app in an iOS simulator.2 params
Launches an app in an iOS simulator.
argsarraybundleIdstringlist_simsLists available iOS simulators with their UUIDs.1 params
Lists available iOS simulators with their UUIDs.
enabledbooleanopen_simOpens the iOS Simulator app.
Opens the iOS Simulator app.
No parameter schema in public metadata yet.
record_sim_videoStarts or stops video capture for an iOS simulator.4 params
Starts or stops video capture for an iOS simulator.
fpsintegeroutputFilestringstartbooleanstopbooleanscreenshotCaptures screenshot for visual verification. For UI coordinates, use describe_ui instead (don't determine coordinates from screenshots).
Captures screenshot for visual verification. For UI coordinates, use describe_ui instead (don't determine coordinates from screenshots).
No parameter schema in public metadata yet.
stop_app_simStops an app running in an iOS simulator.1 params
Stops an app running in an iOS simulator.
bundleIdstringtest_simRuns tests on an iOS simulator.4 params
Runs tests on an iOS simulator.
derivedDataPathstringextraArgsarraypreferXcodebuildbooleantestRunnerEnvobjecterase_simsErases a simulator by UDID.1 params
Erases a simulator by UDID.
shutdownFirstbooleanreset_sim_locationResets the simulator's location to default.
Resets the simulator's location to default.
No parameter schema in public metadata yet.
set_sim_appearanceSets the appearance mode (dark/light) of an iOS simulator.1 params
Sets the appearance mode (dark/light) of an iOS simulator.
modestringdark · lightset_sim_locationSets a custom GPS location for the simulator.2 params
Sets a custom GPS location for the simulator.
latitudenumberlongitudenumbersim_statusbarSets 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).1 params
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).
dataNetworkstringclear · hide · wifi · 3g · 4g · lteswift_package_buildBuilds a Swift Package with swift build5 params
Builds a Swift Package with swift build
architecturesarrayconfigurationstringdebug · releasepackagePathstringparseAsLibrarybooleantargetNamestringswift_package_cleanCleans Swift Package build artifacts and derived data1 params
Cleans Swift Package build artifacts and derived data
packagePathstringswift_package_listLists currently running Swift Package processes
Lists currently running Swift Package processes
No parameter schema in public metadata yet.
swift_package_runRuns an executable target from a Swift Package with swift run7 params
Runs an executable target from a Swift Package with swift run
argumentsarraybackgroundbooleanconfigurationstringdebug · releaseexecutableNamestringpackagePathstringparseAsLibrarybooleantimeoutnumberswift_package_stopStops a running Swift Package executable started with swift_package_run1 params
Stops a running Swift Package executable started with swift_package_run
pidnumberswift_package_testRuns tests for a Swift Package with swift test7 params
Runs tests for a Swift Package with swift test
configurationstringdebug · releasefilterstringpackagePathstringparallelbooleanparseAsLibrarybooleanshowCodecovbooleantestProductstringbuttonPress hardware button on iOS simulator. Supported buttons: apple-pay, home, lock, side-button, siri2 params
Press hardware button on iOS simulator. Supported buttons: apple-pay, home, lock, side-button, siri
buttonTypestringapple-pay · home · lock · side-button · siridurationnumbergesturePerform 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-edge7 params
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
deltanumberdurationnumberpostDelaynumberpreDelaynumberpresetstringscroll-up · scroll-down · scroll-left · scroll-right · swipe-from-left-edge · swipe-from-right-edgescreenHeightintegerscreenWidthintegerkey_pressPress a single key by keycode on the simulator. Common keycodes: 40=Return, 42=Backspace, 43=Tab, 44=Space, 58-67=F1-F10.2 params
Press a single key by keycode on the simulator. Common keycodes: 40=Return, 42=Backspace, 43=Tab, 44=Space, 58-67=F1-F10.
durationnumberkeyCodeintegerkey_sequencePress key sequence using HID keycodes on iOS simulator with configurable delay2 params
Press key sequence using HID keycodes on iOS simulator with configurable delay
delaynumberkeyCodesarraylong_pressLong press at specific coordinates for given duration (ms). Use describe_ui for precise coordinates (don't guess from screenshots).3 params
Long press at specific coordinates for given duration (ms). Use describe_ui for precise coordinates (don't guess from screenshots).
durationnumberxintegeryintegerswipeSwipe from one point to another. Use describe_ui for precise coordinates (don't guess from screenshots). Supports configurable timing.8 params
Swipe from one point to another. Use describe_ui for precise coordinates (don't guess from screenshots). Supports configurable timing.
deltanumberdurationnumberpostDelaynumberpreDelaynumberx1integerx2integery1integery2integertapTap at specific coordinates or target elements by accessibility id or label. Use describe_ui to get precise element coordinates prior to using x/y parameters (don't guess from screenshots). Supports optional timing delays.6 params
Tap at specific coordinates or target elements by accessibility id or label. Use describe_ui to get precise element coordinates prior to using x/y parameters (don't guess from screenshots). Supports optional timing delays.
idstringlabelstringpostDelaynumberpreDelaynumberxintegeryintegertouchPerform touch down/up events at specific coordinates. Use describe_ui for precise coordinates (don't guess from screenshots).5 params
Perform touch down/up events at specific coordinates. Use describe_ui for precise coordinates (don't guess from screenshots).
delaynumberdownbooleanupbooleanxintegeryintegertype_textType text (supports US keyboard characters). Use describe_ui to find text field, tap to focus, then type.1 params
Type text (supports US keyboard characters). Use describe_ui to find text field, tap to focus, then type.
textstringSponsors
Configuration
INCREMENTAL_BUILDS_ENABLEDdefault: falseEnable experimental xcodemake incremental builds (true/false or 1/0).
XCODEBUILDMCP_ENABLED_WORKFLOWSComma-separated list of workflows to load at startup (e.g., 'simulator,device,project-discovery').
XCODEBUILDMCP_SENTRY_DISABLEDdefault: falseDisable Sentry error reporting (preferred flag).
XCODEBUILDMCP_DEBUGdefault: falseEnable verbose debug logging from the server.
Readme
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Details
- Repository
- github.com/getsentry/xcodebuildmcp
- Category
- Mobile Development
- Package
xcodebuildmcp- Transport
- STDIO
- Registry
- MCP registry, active