mcp server
XcodeBuildMCP
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Description as published by the maintainer. Source
- version 1.12.8
- active
active — Most recent push to the repository was 2026-08-05.
What this server can do
58 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
boot_sim(simulatorUuid)- Boots an iOS simulator. After booting, use open_sim() to make the simulator visible. IMPORTANT: You MUST provide the simulatorUuid parameter. Example: boot_sim({ simulatorUuid: 'YOUR_UUID_HERE' }) Required: simulatorUuid.
build_device(scheme, extraArgs, projectPath, configuration, workspacePath, derivedDataPath, preferXcodebuild)- Builds an app from a project or workspace for a physical Apple device. Provide exactly one of projectPath or workspacePath. Example: build_device({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) Required: scheme.
build_macos(arch, scheme, extraArgs, projectPath, configuration, workspacePath, derivedDataPath, preferXcodebuild)- Builds a macOS app using xcodebuild from a project or workspace. Provide exactly one of projectPath or workspacePath. Example: build_macos({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) Required: scheme.
build_run_macos(arch, scheme, extraArgs, projectPath, configuration, workspacePath, derivedDataPath, preferXcodebuild)- Builds and runs a macOS app from a project or workspace in one step. Provide exactly one of projectPath or workspacePath. Example: build_run_macos({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) Required: scheme.
build_run_sim(scheme, extraArgs, projectPath, simulatorId, useLatestOS, configuration, simulatorName, workspacePath, derivedDataPath, preferXcodebuild)- Builds and runs an app from a project or workspace on a specific simulator by UUID or name. Provide exactly one of projectPath or workspacePath, and exactly one of simulatorId or simulatorName. IMPORTANT: Requires either projectPath or workspacePath, plus scheme and either simulatorId or simulatorName. Example: build_run_sim({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' }) Required: scheme.
build_sim(scheme, extraArgs, projectPath, simulatorId, useLatestOS, configuration, simulatorName, workspacePath, derivedDataPath, preferXcodebuild)- Builds an app from a project or workspace for a specific simulator by UUID or name. Provide exactly one of projectPath or workspacePath, and exactly one of simulatorId or simulatorName. IMPORTANT: Requires either projectPath or workspacePath, plus scheme and either simulatorId or simulatorName. Example: build_sim({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' }) Required: scheme.
button(duration, buttonType, simulatorUuid)- Press hardware button on iOS simulator. Supported buttons: apple-pay, home, lock, side-button, siri Required: simulatorUuid, buttonType.
clean(scheme, platform, extraArgs, projectPath, configuration, workspacePath, derivedDataPath, preferXcodebuild)- Cleans build products for either a project or a workspace using xcodebuild. Provide exactly one of projectPath or workspacePath. Platform defaults to iOS if not specified. Example: clean({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', platform: 'iOS' })
describe_ui(simulatorUuid)- 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. Required: simulatorUuid.
discover_projs(maxDepth, scanPath, workspaceRoot)- Scans a directory (defaults to workspace root) to find Xcode project (.xcodeproj) and workspace (.xcworkspace) files. Required: workspaceRoot.
doctor(enabled)- Provides comprehensive information about the MCP server environment, available dependencies, and configuration status.
gesture(delta, preset, duration, preDelay, postDelay, screenWidth, screenHeight, simulatorUuid)- 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 Required: simulatorUuid, preset.
get_app_bundle_id(appPath)- 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' }) Required: appPath.
get_device_app_path(scheme, platform, projectPath, configuration, workspacePath)- Gets the app bundle path for a physical device application (iOS, watchOS, tvOS, visionOS) using either a project or workspace. Provide exactly one of projectPath or workspacePath. Example: get_device_app_path({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' }) Required: scheme.
get_mac_app_path(arch, scheme, extraArgs, projectPath, configuration, workspacePath, derivedDataPath)- Gets the app bundle path for a macOS application using either a project or workspace. Provide exactly one of projectPath or workspacePath. Example: get_mac_app_path({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' }) Required: scheme.
get_mac_bundle_id(appPath)- 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. Required: appPath.
get_sim_app_path(arch, scheme, platform, projectPath, simulatorId, useLatestOS, configuration, simulatorName, workspacePath)- Gets the app bundle path for a simulator by UUID or name using either a project or workspace file. IMPORTANT: Requires either projectPath OR workspacePath (not both), plus scheme, platform, and either simulatorId OR simulatorName (not both). Example: get_sim_app_path({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' }) Required: scheme, platform.
install_app_device(appPath, deviceId)- Installs an app on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and appPath. Required: deviceId, appPath.
install_app_sim(appPath, simulatorUuid)- 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' }) Required: simulatorUuid, appPath.
key_press(keyCode, duration, simulatorUuid)- Press a single key by keycode on the simulator. Common keycodes: 40=Return, 42=Backspace, 43=Tab, 44=Space, 58-67=F1-F10. Required: simulatorUuid, keyCode.
key_sequence(delay, keyCodes, simulatorUuid)- Press key sequence using HID keycodes on iOS simulator with configurable delay Required: simulatorUuid, keyCodes.
launch_app_device(bundleId, deviceId)- Launches an app on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and bundleId. Required: deviceId, bundleId.
launch_app_logs_sim(args, bundleId, simulatorUuid)- Launches an app in an iOS simulator and captures its logs. Required: simulatorUuid, bundleId.
launch_app_sim(args, bundleId, simulatorName, simulatorUuid)- Launches an app in an iOS simulator by UUID or name. If simulator window isn't visible, use open_sim() first. IMPORTANT: Provide either simulatorUuid OR simulatorName, plus bundleId. 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' }) or launch_app_sim({ simulatorName: 'iPhone 16', bundleId: 'com.example.MyApp' }) Required: bundleId.
launch_mac_app(args, appPath)- 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. Required: appPath.
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_schemes(projectPath, workspacePath)- Lists available schemes for either a project or a workspace. Provide exactly one of projectPath or workspacePath. Example: list_schemes({ projectPath: '/path/to/MyProject.xcodeproj' })
list_sims(enabled)- Lists available iOS simulators with their UUIDs.
long_press(x, y, duration, simulatorUuid)- Long press at specific coordinates for given duration (ms). Use describe_ui for precise coordinates (don't guess from screenshots). Required: simulatorUuid, x, y, duration.
open_sim- Opens the iOS Simulator app.
reset_sim_location(simulatorUuid)- Resets the simulator's location to default. Required: simulatorUuid.
scaffold_ios_project(outputPath, displayName, projectName, customizeNames, bundleIdentifier, deploymentTarget, marketingVersion, targetedDeviceFamily, currentProjectVersion, supportedOrientations, supportedOrientationsIpad)- Scaffold a new iOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper iOS configuration. Required: projectName, outputPath.
scaffold_macos_project(outputPath, displayName, projectName, customizeNames, bundleIdentifier, deploymentTarget, marketingVersion, currentProjectVersion)- Scaffold a new macOS project from templates. Creates a modern Xcode project with workspace structure, SPM package for features, and proper macOS configuration. Required: projectName, outputPath.
screenshot(simulatorUuid)- Captures screenshot for visual verification. For UI coordinates, use describe_ui instead (don't determine coordinates from screenshots). Required: simulatorUuid.
set_sim_appearance(mode, simulatorUuid)- Sets the appearance mode (dark/light) of an iOS simulator. Required: simulatorUuid, mode.
set_sim_location(latitude, longitude, simulatorUuid)- Sets a custom GPS location for the simulator. Required: simulatorUuid, latitude, longitude.
show_build_settings(scheme, projectPath, workspacePath)- Shows build settings from either a project or workspace using xcodebuild. Provide exactly one of projectPath or workspacePath, plus scheme. Example: show_build_settings({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' }) Required: scheme.
sim_statusbar(dataNetwork, simulatorUuid)- 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). Required: simulatorUuid, dataNetwork.
start_device_log_cap(bundleId, deviceId)- 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. Required: deviceId, bundleId.
start_sim_log_cap(bundleId, simulatorUuid, captureConsole)- Starts capturing logs from a specified simulator. Returns a session ID. By default, captures only structured logs. Required: simulatorUuid, bundleId.
stop_app_device(deviceId, processId)- Stops an app running on a physical Apple device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro). Requires deviceId and processId. Required: deviceId, processId.
stop_app_sim(bundleId, simulatorName, simulatorUuid)- Stops an app running in an iOS simulator by UUID or name. IMPORTANT: Provide either simulatorUuid OR simulatorName, plus bundleId. Example: stop_app_sim({ simulatorUuid: "UUID", bundleId: "com.example.MyApp" }) or stop_app_sim({ simulatorName: "iPhone 16", bundleId: "com.example.MyApp" }) Required: bundleId.
stop_device_log_cap(logSessionId)- Stops an active Apple device log capture session and returns the captured logs. Required: logSessionId.
stop_mac_app(appName, processId)- Stops a running macOS application. Can stop by app name or process ID.
stop_sim_log_cap(logSessionId)- Stops an active simulator log capture session and returns the captured logs. Required: logSessionId.
swift_package_build(targetName, packagePath, architectures, configuration, parseAsLibrary)- Builds a Swift Package with swift build Required: packagePath.
swift_package_clean(packagePath)- Cleans Swift Package build artifacts and derived data Required: packagePath.
swift_package_list- Lists currently running Swift Package processes
swift_package_run(timeout, arguments, background, packagePath, configuration, executableName, parseAsLibrary)- Runs an executable target from a Swift Package with swift run Required: packagePath.
swift_package_stop(pid)- Stops a running Swift Package executable started with swift_package_run Required: pid.
swift_package_test(filter, parallel, packagePath, showCodecov, testProduct, configuration, parseAsLibrary)- Runs tests for a Swift Package with swift test Required: packagePath.
swipe(x1, x2, y1, y2, delta, duration, preDelay, postDelay, simulatorUuid)- Swipe from one point to another. Use describe_ui for precise coordinates (don't guess from screenshots). Supports configurable timing. Required: simulatorUuid, x1, y1, x2, y2.
tap(x, y, preDelay, postDelay, simulatorUuid)- Tap at specific coordinates. Use describe_ui to get precise element coordinates (don't guess from screenshots). Supports optional timing delays. Required: simulatorUuid, x, y.
test_device(scheme, deviceId, platform, extraArgs, projectPath, configuration, testRunnerEnv, workspacePath, derivedDataPath, preferXcodebuild)- Runs tests for an Apple project or workspace on a physical device (iPhone, iPad, Apple Watch, Apple TV, Apple Vision Pro) using xcodebuild test and parses xcresult output. Provide exactly one of projectPath or workspacePath. IMPORTANT: Requires scheme and deviceId. Example: test_device({ projectPath: "/path/to/MyProject.xcodeproj", scheme: "MyScheme", deviceId: "device-uuid" }) Required: scheme, deviceId.
test_macos(scheme, extraArgs, projectPath, configuration, testRunnerEnv, workspacePath, derivedDataPath, preferXcodebuild)- Runs tests for a macOS project or workspace using xcodebuild test and parses xcresult output. Provide exactly one of projectPath or workspacePath. IMPORTANT: Requires scheme. Example: test_macos({ projectPath: "/path/to/MyProject.xcodeproj", scheme: "MyScheme" }) Required: scheme.
test_sim(scheme, extraArgs, projectPath, simulatorId, useLatestOS, configuration, simulatorName, testRunnerEnv, workspacePath, derivedDataPath, preferXcodebuild)- Runs tests on a simulator by UUID or name using xcodebuild test and parses xcresult output. Works with both Xcode projects (.xcodeproj) and workspaces (.xcworkspace). IMPORTANT: Requires either projectPath or workspacePath, plus scheme and either simulatorId or simulatorName. Example: test_sim({ projectPath: "/path/to/MyProject.xcodeproj", scheme: "MyScheme", simulatorName: "iPhone 16" }) Required: scheme.
touch(x, y, up, down, delay, simulatorUuid)- Perform touch down/up events at specific coordinates. Use describe_ui for precise coordinates (don't guess from screenshots). Required: simulatorUuid, x, y.
type_text(text, simulatorUuid)- Type text (supports US keyboard characters). Use describe_ui to find text field, tap to focus, then type. Required: simulatorUuid, text.
Last successful function declaration observed on
.
Source: pkg:npm/xcodebuildmcp. We list what the server declared;
we do not call any of these functions.
Endpoint status observed on
.
Source: pkg:npm/xcodebuildmcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 6,199 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-08-05 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 14 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 1.12.8 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2025-09-09 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | MIT | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2025-09-09 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 58 tools | Number of functions the server declared when started and asked to list them. It says what the server offers an agent, not how well any of it works. | as of probe | npm |
|
| mcp endpoint status | ok | The server listed 58 functions when asked. | as of probe | npm |
|
| package install scripts | none | This package declares no install-time scripts, so installing it does not execute any of its code. | as of probe | npm |
Where to get it
Related, by what their authors tagged them
-
com.xcodebuildmcp/XcodeBuildMCP
— last commit 2026-08-05, shares model-context-protocol-servers, tag-production, xcode
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
-
io.github.getsentry/sentry-mcp
— last commit 2026-08-07, shares tag-production
MCP server for Sentry - error monitoring, issue tracking, and debugging for AI assistants
-
conorluddy-ios-simulator-skill-ios-simulator-skill
— last commit 2026-06-18, shares xcode
29 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build autom…
-
Axint
— last commit 2026-08-04, shares xcode
Proof and repair for Apple coding agents: validate Swift, run Xcode evidence, and repair failures.
-
io.github.carloshpdoc/memorydetective
— last commit 2026-05-25, shares xcode
iOS leak/perf debugging via MCP: memgraph cycles, .trace analysis, SourceKit-LSP bridging.
-
io.github.ethbak/icon-composer-mcp
— last commit 2026-04-06, shares xcode
CLI and MCP server for creating Apple .icon bundles with Liquid Glass effects (iOS 26+)
-
Famulor
— last commit 2026-06-13, shares model-context-protocol-servers
AI voice agents: assistants, calls, campaigns, leads, knowledge bases, WhatsApp, SMS & SIP trunks.
-
io.github.930m310n/geomelon-mcp
— last commit 2026-07-17, shares model-context-protocol-servers
MCP server for the Geomelon geographic API — stdio and remote HTTP transports
-
io.github.930m310n/mcp
— last commit 2026-07-17, shares model-context-protocol-servers
MCP server for the Geomelon geographic API — stdio and remote HTTP transports
-
io.github.AgenTeam-AI-2026/mcp-apollo
— last commit 2026-04-06, shares model-context-protocol-servers
Apollo.io MCP server. Search people, enrich contacts, find emails, research companies.
These share tags the maintainers applied themselves, such as model-context-protocol-servers, tag-production, xcode, xcodebuild. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.
This is not a recommendation and not a test result. It is a map of what the authors said their work is about.
How the author describes it
Topics the maintainer set on GitHub: mcp, mcp-server, model-context-protocol, model-context-protocol-servers, tag-production, xcode, xcodebuild.
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json