CCM
/MCP
SkillsMCPMarketplacesDigestLearnAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Learn
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Xcodebuildmcp

getsentry/xcodebuildmcp
5.9k71 toolsSTDIOregistry active
Summary

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.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Tools

Public tool metadata for what this MCP can expose to an agent.

71 tools
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.

Parameters* required
pidinteger
Process ID to attach directly
waitForboolean
Wait for the process to appear when attaching
bundleIdstring
Bundle identifier of the app to attach (e.g., 'com.example.MyApp')
makeCurrentboolean
Set this debug session as the current session (default: true)default: true
continueOnAttachboolean
Resume execution automatically after attaching (default: true)default: true
debug_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.

Parameters* required
filestring
Source file path for breakpoint
lineinteger
Line number for breakpoint
functionstring
Function name to break on
conditionstring
Optional condition expression for the breakpoint
debugSessionIdstring
Debug session ID to target (defaults to current session)
debug_breakpoint_removeRemove a breakpoint by id for the active debug session.2 params

Remove a breakpoint by id for the active debug session.

Parameters* required
breakpointIdinteger
Breakpoint id to remove
debugSessionIdstring
Debug session ID to target (defaults to current session)
debug_continueResume execution in the active debug session or a specific debugSessionId.1 params

Resume execution in the active debug session or a specific debugSessionId.

Parameters* required
debugSessionIdstring
Debug session ID to resume (defaults to current session)
debug_detachDetach the current debugger session or a specific debugSessionId.1 params

Detach the current debugger session or a specific debugSessionId.

Parameters* required
debugSessionIdstring
Debug session ID to detach (defaults to current session)
debug_lldb_commandRun an arbitrary LLDB command within the active debug session.3 params

Run an arbitrary LLDB command within the active debug session.

Parameters* required
commandstring
timeoutMsinteger
debugSessionIdstring
debug_stackReturn a thread backtrace from the active debug session.3 params

Return a thread backtrace from the active debug session.

Parameters* required
maxFramesinteger
Maximum frames to return
threadIndexinteger
Thread index for backtrace
debugSessionIdstring
Debug session ID to target (defaults to current session)
debug_variablesReturn variables for a selected frame in the active debug session.2 params

Return variables for a selected frame in the active debug session.

Parameters* required
frameIndexinteger
Frame index to inspect
debugSessionIdstring
Debug session ID to target (defaults to current session)
build_deviceBuilds an app for a connected device.3 params

Builds an app for a connected device.

Parameters* required
extraArgsarray
Additional arguments to pass to xcodebuild
derivedDataPathstring
Path to derived data directory
preferXcodebuildboolean
Prefer xcodebuild over faster alternatives
cleanCleans build products with xcodebuild.4 params

Cleans build products with xcodebuild.

Parameters* required
platformstring
Optional: Platform to clean for (defaults to iOS). Choose from macOS, iOS, iOS Simulator, watchOS, watchOS Simulator, tvOS, tvOS Simulator, visionOS, visionOS Simulatorone of macOS · iOS · iOS Simulator · watchOS · watchOS Simulator · tvOS
extraArgsarray
Additional xcodebuild arguments
derivedDataPathstring
Optional: Path where derived data might be located
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system, useful for when incremental build system fails.
discover_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.

Parameters* required
maxDepthinteger
Optional: Maximum directory depth to scan. Defaults to 5.
scanPathstring
Optional: Path relative to workspace root to scan. Defaults to workspace root.
workspaceRootstring
The absolute path of the workspace root to scan within.
get_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' })

Parameters* required
appPathstring
Path to the .app bundle to extract bundle ID from (full path to the .app directory)
get_device_app_pathRetrieves the built app path for a connected device.1 params

Retrieves the built app path for a connected device.

Parameters* required
platformstring
Target platform (defaults to iOS)one of iOS · watchOS · tvOS · visionOS
install_app_deviceInstalls an app on a connected device.1 params

Installs an app on a connected device.

Parameters* required
appPathstring
Path to the .app bundle to install (full path to the .app directory)
launch_app_deviceLaunches an app on a connected device.1 params

Launches an app on a connected device.

Parameters* required
bundleIdstring
Bundle identifier of the app to launch (e.g., "com.example.MyApp")
list_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.

Parameters* required
bundleIdstring
Bundle identifier of the app to launch and capture logs for.
stop_app_deviceStops a running app on a connected device.1 params

Stops a running app on a connected device.

Parameters* required
processIdnumber
Process ID (PID) of the app to stop
stop_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.

Parameters* required
logSessionIdstring
The session ID returned by start_device_log_cap.
test_deviceRuns tests on a physical Apple device.5 params

Runs tests on a physical Apple device.

Parameters* required
platformstring
Target platform (defaults to iOS)one of iOS · watchOS · tvOS · visionOS
extraArgsarray
Additional arguments to pass to xcodebuild
testRunnerEnvobject
Environment variables to pass to the test runner (TEST_RUNNER_ prefix added automatically)
derivedDataPathstring
Path to derived data directory
preferXcodebuildboolean
Prefer xcodebuild over faster alternatives
doctorProvides 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.

Parameters* required
enabledboolean
Optional: dummy parameter to satisfy MCP protocol
start_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.

Parameters* required
bundleIdstring
Bundle identifier of the app to capture logs for.
captureConsoleboolean
Whether to capture console output (requires app relaunch).
stop_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.

Parameters* required
logSessionIdstring
The session ID returned by start_sim_log_cap.
build_macosBuilds a macOS app.3 params

Builds a macOS app.

Parameters* required
extraArgsarray
Additional xcodebuild arguments
derivedDataPathstring
Path where build products and other derived data will go
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system
build_run_macosBuilds and runs a macOS app.3 params

Builds and runs a macOS app.

Parameters* required
extraArgsarray
Additional xcodebuild arguments
derivedDataPathstring
Path where build products and other derived data will go
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system
get_mac_app_pathRetrieves the built macOS app bundle path.2 params

Retrieves the built macOS app bundle path.

Parameters* required
extraArgsarray
Additional arguments to pass to xcodebuild
derivedDataPathstring
Path to derived data directory
get_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.

Parameters* required
appPathstring
Path to the macOS .app bundle to extract bundle ID from (full path to the .app directory)
launch_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.

Parameters* required
argsarray
Additional arguments to pass to the app
appPathstring
Path to the macOS .app bundle to launch (full path to the .app directory)
stop_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.

Parameters* required
appNamestring
Name of the application to stop (e.g., "Calculator" or "MyApp")
processIdnumber
Process ID (PID) of the application to stop
test_macosRuns tests for a macOS target.4 params

Runs tests for a macOS target.

Parameters* required
extraArgsarray
Additional xcodebuild arguments
testRunnerEnvobject
Environment variables to pass to the test runner (TEST_RUNNER_ prefix added automatically)
derivedDataPathstring
Path where build products and other derived data will go
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system
scaffold_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.

Parameters* required
outputPathstring
Path where the project should be created
displayNamestring
App display name (shown on home screen/dock). If not provided, will use projectName
projectNamestring
Name of the new project
customizeNamesboolean
Whether to customize project names and identifiers. Default is true.default: true
bundleIdentifierstring
Bundle identifier (e.g., com.example.myapp). If not provided, will use com.example.projectname
deploymentTargetstring
iOS deployment target (e.g., 18.4, 17.0). If not provided, will use 18.4
marketingVersionstring
Marketing version (e.g., 1.0, 2.1.3). If not provided, will use 1.0
targetedDeviceFamilyarray
Targeted device families
currentProjectVersionstring
Build number (e.g., 1, 42, 100). If not provided, will use 1
supportedOrientationsarray
Supported orientations for iPhone
supportedOrientationsIpadarray
Supported orientations for iPad
scaffold_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.

Parameters* required
outputPathstring
Path where the project should be created
displayNamestring
App display name (shown on home screen/dock). If not provided, will use projectName
projectNamestring
Name of the new project
customizeNamesboolean
Whether to customize project names and identifiers. Default is true.default: true
bundleIdentifierstring
Bundle identifier (e.g., com.example.myapp). If not provided, will use com.example.projectname
deploymentTargetstring
macOS deployment target (e.g., 15.4, 14.0). If not provided, will use 15.4
marketingVersionstring
Marketing version (e.g., 1.0, 2.1.3). If not provided, will use 1.0
currentProjectVersionstring
Build number (e.g., 1, 42, 100). If not provided, will use 1
session-clear-defaultsClear selected or all session defaults.2 params

Clear selected or all session defaults.

Parameters* required
allboolean
keysarray
session-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...

Parameters* required
archstring
Target architecture for macOS builds.one of arm64 · x86_64
schemestring
Xcode scheme. Required by most build/test tools. Use list_schemes to discover available schemes before setting.
deviceIdstring
Physical device ID for device workflows.
projectPathstring
Xcode project (.xcodeproj) path. Mutually exclusive with workspacePath. Required for most build/test tools when workspacePath is not set.
simulatorIdstring
Simulator UUID for simulator workflows. Preferred over simulatorName when both are provided.
useLatestOSboolean
When true, prefer the latest available OS for simulatorName lookups.
configurationstring
Build configuration, e.g. Debug or Release.
simulatorNamestring
Simulator device name for simulator workflows. If simulatorId is also provided, simulatorId is preferred and simulatorName is ignored.
workspacePathstring
Xcode workspace (.xcworkspace) path. Mutually exclusive with projectPath. Required for most build/test tools when projectPath is not set.
suppressWarningsboolean
When true, warning messages are filtered from build output to conserve context
session-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.

Parameters* required
extraArgsarray
Additional xcodebuild arguments
derivedDataPathstring
Path where build products and other derived data will go
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system, useful for when incremental build system fails.
build_simBuilds an app for an iOS simulator.3 params

Builds an app for an iOS simulator.

Parameters* required
extraArgsarray
Additional xcodebuild arguments
derivedDataPathstring
Path where build products and other derived data will go
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system, useful for when incremental build system fails.
describe_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.

Parameters* required
platformstring
Target simulator platform (Required)one of iOS Simulator · watchOS Simulator · tvOS Simulator · visionOS Simulator
install_app_simInstalls an app in an iOS simulator.1 params

Installs an app in an iOS simulator.

Parameters* required
appPathstring
Path to the .app bundle to install (full path to the .app directory)
launch_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.

Parameters* required
argsarray
Additional arguments to pass to the app
bundleIdstring
Bundle identifier of the app to launch (e.g., 'com.example.MyApp')
launch_app_simLaunches an app in an iOS simulator.2 params

Launches an app in an iOS simulator.

Parameters* required
argsarray
Additional arguments to pass to the app
bundleIdstring
Bundle identifier of the app to launch (e.g., 'com.example.MyApp')
list_simsLists available iOS simulators with their UUIDs.1 params

Lists available iOS simulators with their UUIDs.

Parameters* required
enabledboolean
Optional flag to enable the listing operation.
open_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.

Parameters* required
fpsinteger
Frames per second (default 30)
stopboolean
Stop recording if true
startboolean
Start recording if true
outputFilestring
Destination MP4 path to move the recorded video to on stop
screenshotCaptures 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.

Parameters* required
bundleIdstring
Bundle identifier of the app to stop (e.g., 'com.example.MyApp')
test_simRuns tests on an iOS simulator.4 params

Runs tests on an iOS simulator.

Parameters* required
extraArgsarray
Additional xcodebuild arguments
testRunnerEnvobject
Environment variables to pass to the test runner (TEST_RUNNER_ prefix added automatically)
derivedDataPathstring
Path where build products and other derived data will go
preferXcodebuildboolean
If true, prefers xcodebuild over the experimental incremental build system, useful for when incremental build system fails.
erase_simsErases a simulator by UDID.1 params

Erases a simulator by UDID.

Parameters* required
shutdownFirstboolean
If true, shuts down the simulator before erasing.
reset_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.

Parameters* required
modestring
The appearance mode to set (either "dark" or "light")one of dark · light
set_sim_locationSets a custom GPS location for the simulator.2 params

Sets a custom GPS location for the simulator.

Parameters* required
latitudenumber
The latitude for the custom location.
longitudenumber
The longitude for the custom location.
sim_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).

Parameters* required
dataNetworkstring
Data network type to display in status bar. Use "clear" to reset all overrides. Valid values: clear, hide, wifi, 3g, 4g, lte, lte-a, lte+, 5g, 5g+, 5g-uwb, 5g-uc.one of clear · hide · wifi · 3g · 4g · lte
swift_package_buildBuilds a Swift Package with swift build5 params

Builds a Swift Package with swift build

Parameters* required
targetNamestring
Optional target to build
packagePathstring
Path to the Swift package root (Required)
architecturesarray
Target architectures to build for
configurationstring
Swift package configuration (debug, release)one of debug · release
parseAsLibraryboolean
Build as library instead of executable
swift_package_cleanCleans Swift Package build artifacts and derived data1 params

Cleans Swift Package build artifacts and derived data

Parameters* required
packagePathstring
Path to the Swift package root (Required)
swift_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

Parameters* required
timeoutnumber
Timeout in seconds (default: 30, max: 300)
argumentsarray
Arguments to pass to the executable
backgroundboolean
Run in background and return immediately (default: false)
packagePathstring
Path to the Swift package root (Required)
configurationstring
Build configuration: 'debug' (default) or 'release'one of debug · release
executableNamestring
Name of executable to run (defaults to package name)
parseAsLibraryboolean
Add -parse-as-library flag for @main support (default: false)
swift_package_stopStops a running Swift Package executable started with swift_package_run1 params

Stops a running Swift Package executable started with swift_package_run

Parameters* required
pidnumber
Process ID (PID) of the running executable
swift_package_testRuns tests for a Swift Package with swift test7 params

Runs tests for a Swift Package with swift test

Parameters* required
filterstring
Filter tests by name (regex pattern)
parallelboolean
Run tests in parallel (default: true)
packagePathstring
Path to the Swift package root (Required)
showCodecovboolean
Show code coverage (default: false)
testProductstring
Optional specific test product to run
configurationstring
Swift package configuration (debug, release)one of debug · release
parseAsLibraryboolean
Add -parse-as-library flag for @main support (default: false)
buttonPress 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

Parameters* required
durationnumber
buttonTypestring
one of apple-pay · home · lock · side-button · siri
gesturePerform 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

Parameters* required
deltanumber
Optional: Distance to move in pixels.
presetstring
The gesture preset to perform. Must be one of: scroll-up, scroll-down, scroll-left, scroll-right, swipe-from-left-edge, swipe-from-right-edge, swipe-from-top-edge, swipe-from-bottom-edge.one of scroll-up · scroll-down · scroll-left · scroll-right · swipe-from-left-edge · swipe-from-right-edge
durationnumber
Optional: Duration of the gesture in seconds.
preDelaynumber
Optional: Delay before starting the gesture in seconds.
postDelaynumber
Optional: Delay after completing the gesture in seconds.
screenWidthinteger
Optional: Screen width in pixels. Used for gesture calculations. Auto-detected if not provided.
screenHeightinteger
Optional: Screen height in pixels. Used for gesture calculations. Auto-detected if not provided.
key_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.

Parameters* required
keyCodeinteger
durationnumber
key_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

Parameters* required
delaynumber
keyCodesarray
long_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).

Parameters* required
xinteger
yinteger
durationnumber
swipeSwipe 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.

Parameters* required
x1integer
x2integer
y1integer
y2integer
deltanumber
durationnumber
preDelaynumber
postDelaynumber
tapTap 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.

Parameters* required
xinteger
yinteger
idstring
labelstring
preDelaynumber
postDelaynumber
touchPerform 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).

Parameters* required
xinteger
yinteger
upboolean
downboolean
delaynumber
type_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.

Parameters* required
textstring
XcodeBuild MCP

A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.

CI npm version License: MIT Node.js Xcode 16 macOS MCP Ask DeepWiki AgentAudit Security

Installation

XcodeBuildMCP ships as a single package with two modes: a CLI for direct terminal use and an MCP server for AI coding agents. Either install method gives you both.

Option A — Homebrew

brew tap getsentry/xcodebuildmcp
brew install xcodebuildmcp

Option B — npm (Node.js 18+)

npm install -g xcodebuildmcp@latest

Verify either install:

xcodebuildmcp --help

Connect your MCP client

Drop-in config snippets for Cursor, Claude Code, Codex, can be found in the official docs page MCP Clients. Most clients can also run the MCP server on demand via npx -y xcodebuildmcp@latest mcp without a global install.

Requirements

  • macOS 14.5 or later
  • Xcode 16.x or later
  • Node.js 18.x or later (not required for Homebrew installation)

Skills

XcodeBuildMCP now includes two optional agent skills:

  • MCP Skill: Primes the agent with instructions on how to use the MCP server's tools (optional when using the MCP server).

  • CLI Skill: Primes the agent with instructions on how to navigate the CLI (recommended when using the CLI).

To install with a global binary:

xcodebuildmcp init

Or install directly via npx without a global install:

npx -y xcodebuildmcp@latest init

For further information on installing skills, see Agent Skills.

Notes

  • XcodeBuildMCP requests xcodebuild to skip macro validation to avoid errors when building projects that use Swift Macros.
  • Device tools require code signing to be configured in Xcode. See Device Code Signing.

Privacy

XcodeBuildMCP uses Sentry for internal runtime error telemetry only. For details and opt-out instructions, see Privacy & Telemetry.

CLI

XcodeBuildMCP provides a unified command-line interface. The mcp subcommand starts the MCP server, while all other commands provide direct terminal access to tools:

# Install globally
npm install -g xcodebuildmcp@latest

# Start the MCP server (for MCP clients)
xcodebuildmcp mcp

# List available tools
xcodebuildmcp tools

# Build for simulator
xcodebuildmcp simulator build --scheme MyApp --project-path ./MyApp.xcodeproj

Check for updates and upgrade in place:

xcodebuildmcp upgrade --check
xcodebuildmcp upgrade --yes

The CLI uses a per-workspace daemon for stateful operations (log capture, debugging, etc.) that auto-starts when needed. See the CLI guide for full documentation.

Documentation

  • Installation: https://xcodebuildmcp.com/docs/installation
  • Setup: https://xcodebuildmcp.com/docs/setup
  • MCP clients: https://xcodebuildmcp.com/docs/clients
  • CLI usage: https://xcodebuildmcp.com/docs/cli
  • Configuration and options: https://xcodebuildmcp.com/docs/configuration
  • Tools reference: https://xcodebuildmcp.com/docs/tools
  • Troubleshooting: https://xcodebuildmcp.com/docs/troubleshooting
  • Privacy: https://xcodebuildmcp.com/docs/privacy
  • Skills: https://xcodebuildmcp.com/docs/skills
  • Contributing: https://xcodebuildmcp.com/docs/contributing

Licence

This project is licensed under the MIT License - see the LICENSE file for details. For third-party licensing notices see the THIRD_PARTY_LICENSES file for details. For npm package attributions see the THIRD_PARTY_PACKAGE_LICENSES file for details.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Configuration

INCREMENTAL_BUILDS_ENABLEDdefault: false

Enable experimental xcodemake incremental builds (true/false or 1/0).

XCODEBUILDMCP_ENABLED_WORKFLOWS

Comma-separated list of workflows to load at startup (e.g., 'simulator,device,project-discovery').

XCODEBUILDMCP_SENTRY_DISABLEDdefault: false

Disable Sentry error reporting (preferred flag).

XCODEBUILDMCP_DEBUGdefault: false

Enable verbose debug logging from the server.

Categories
Mobile Development
Registryactive
Packagexcodebuildmcp
TransportSTDIO
UpdatedJun 2, 2026
View on GitHub

Related Mobile Development MCP Servers

View all →
Expo Android MCP

frndchagas/expo-android

MCP server for Android emulator automation via ADB.
4
iOS Simulator

joshuayoes/ios-simulator-mcp

MCP server for interacting with the iOS simulator
2k
MCP Server Simulator IOS IDB

inditextech/mcp-server-simulator-ios-idb

A Model Context Protocol (MCP) server that enables LLMs to interact with iOS simulators through natural language commands.
303
Mobile Mcp

mobile-next/mobile-mcp

MCP server for iOS and Android Mobile Development, Automation and Testing
5.2k
Claude Mobile

alexgladkov/claude-in-mobile

Provides a unified MCP interface to automate Android and iOS simulators with commands like tap, screenshot, input text, and manage apps.
248
Mobile Device MCP

srmorete/mobile-device-mcp

Control iOS and Android devices with multi-device and seamless Native/WebView support.
23