Release v2.2.0
Release v2.2.0
Added
-
Added
get_coverage_reportandget_file_coveragetools for inspecting code coverage from test results — view per-target summaries or drill into function-level coverage and uncovered line ranges for specific files (#240 by @irangareddy). See docs/TOOLS.md. -
Added a unified build-and-run command for physical devices, matching the existing simulator workflow so agents can build and launch device apps in a single step.
-
Added an interactive setup wizard via
xcodebuildmcp setupthat walks you through creating or updating.xcodebuildmcp/config.yaml— select workflows, pick a simulator, set your scheme and project, and configure debug options without editing YAML by hand. Non-interactive mode remains available for CI and scripting. See docs/CONFIGURATION.md.xcodebuildmcp setup
-
Added
AGENTS.mdgeneration to theinitcommand, providing prescriptive agent workflow instructions for your project. -
Added support for custom workflows in
.xcodebuildmcp/config.yaml. Define your own workflow names and map them to an explicit list of tools, then reference them fromenabledWorkflowslike any built-in workflow. This lets you limit the tools your agent sees to exactly the ones you need. See docs/CONFIGURATION.md.enabledWorkflows: ["my-workflow"] customWorkflows: my-workflow: - build_run_sim - record_sim_video - screenshot
-
Added AdaL CLI setup instructions (#242 by @Abdulrahmansoliman).
Changed
-
CLI now auto-fills tool arguments from session defaults. If your config file sets a scheme, project path, or simulator, every CLI command picks those up automatically — no need to repeat
--scheme,--project-path, and similar flags on every invocation. See docs/CLI.md.# .xcodebuildmcp/config.yaml sessionDefaults: scheme: MyApp projectPath: ./MyApp.xcodeproj simulatorName: iPhone 17 Pro
# Before: every command needed explicit flags xcodebuildmcp simulator build --scheme MyApp --project-path ./MyApp.xcodeproj # Now: flags are filled from session defaults xcodebuildmcp simulator build
This also works with session defaults profiles, which is especially useful for monorepos. Define a profile per sub-project and the CLI uses the active profile's values. Override the profile for a single command with
--profile. See docs/SESSION_DEFAULTS.md.# .xcodebuildmcp/config.yaml schemaVersion: 1 sessionDefaultsProfiles: calculator: workspacePath: ./iOS_Calculator/CalculatorApp.xcworkspace scheme: CalculatorApp simulatorName: iPhone 17 Pro ios-test: projectPath: ./iOS/MCPTest.xcodeproj scheme: MCPTest simulatorName: iPhone 17 Pro spm: projectPath: ./spm scheme: spm activeSessionDefaultsProfile: calculator
# Build using the active profile (calculator) xcodebuildmcp simulator build-and-run # Build a different sub-project without switching the active profile xcodebuildmcp simulator build-and-run --profile ios-test
-
Default simulator updated from iPhone 16 to iPhone 17.
-
Tool annotations now more accurately classify operations, reducing unnecessary confirmation prompts in MCP clients that respect annotations (#253 by @saschagordner).
-
Improved agent workflow guidance with more prescriptive instructions for common tasks.
-
Bundled AXe updated to 1.5.2.
Fixed
- Fixed Swift Package tools (
swift_package_build,swift_package_test,swift_package_clean) hiding compiler diagnostics when stderr was empty (#255 by @doovers). - Fixed stderr warnings (e.g. "multiple matching destinations") hiding actual test failures by prioritizing xcresult output when available (#254 by @czottmann).
Various other internal improvements to stability, performance, and code quality.
Option A — Homebrew (no Node.js required)
Install:
brew tap getsentry/xcodebuildmcp
brew install xcodebuildmcpMCP config:
"XcodeBuildMCP": {
"command": "xcodebuildmcp",
"args": ["mcp"]
}Option B — npm / npx (Node.js 18+)
Install:
npm install -g xcodebuildmcp@latestMCP config:
"XcodeBuildMCP": {
"command": "npx",
"args": ["-y", "xcodebuildmcp@latest", "mcp"]
}📦 NPM Package: https://www.npmjs.com/package/xcodebuildmcp/v/2.2.0