Skip to content

Release v2.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Mar 21:49
· 27 commits to main since this release

Release v2.2.0

Added

  • Added get_coverage_report and get_file_coverage tools 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 setup that 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.md generation to the init command, 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 from enabledWorkflows like 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 xcodebuildmcp

MCP config:

"XcodeBuildMCP": {
  "command": "xcodebuildmcp",
  "args": ["mcp"]
}

Option B — npm / npx (Node.js 18+)

Install:

npm install -g xcodebuildmcp@latest

MCP config:

"XcodeBuildMCP": {
  "command": "npx",
  "args": ["-y", "xcodebuildmcp@latest", "mcp"]
}

📦 NPM Package: https://www.npmjs.com/package/xcodebuildmcp/v/2.2.0