MCPcopy Index your code
hub / github.com/getsentry/XcodeBuildMCP

github.com/getsentry/XcodeBuildMCP @v2.6.2

repository ↗ · DeepWiki ↗ · release v2.6.2 ↗ · Ask this repo → · + Follow
3,437 symbols 11,548 edges 602 files 69 documented · 2% updated 6d agov2.6.2 · 2026-06-02★ 6,03412 open issues
README

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

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.

Extension points exported contracts — how you extend this code

DebuggerBackend (Interface)
(no doc) [4 implementers]
src/utils/debugger/backends/DebuggerBackend.ts
StreamingExecutionContext (Interface)
(no doc) [2 implementers]
src/types/tool-execution.ts
TrackedProcess (Interface)
* Shared process state management for Swift Package tools. * * Tracks active child processes so they can be individual
src/mcp/tools/swift-package/active-processes.ts
XcodeToolsBridgeToolHandler (Interface)
(no doc) [2 implementers]
src/integrations/xcode-tools-bridge/index.ts
LifecycleStreamLike (Interface)
(no doc) [2 implementers]
src/server/mcp-lifecycle.ts
ToolInvoker (Interface)
(no doc) [2 implementers]
src/runtime/types.ts
CapturedCommand (Interface)
(no doc)
src/smoke-tests/mcp-test-harness.ts
MockToolHandlerResult (Interface)
(no doc)
src/test-utils/test-helpers.ts

Core symbols most depended-on inside this repo

push
called by 976
src/utils/xcodebuild-run-state.ts
log
called by 404
src/utils/logger.ts
createMockCommandResponse
called by 224
src/test-utils/mock-executors.ts
invoke
called by 197
src/snapshot-tests/contracts.ts
allText
called by 192
src/test-utils/test-helpers.ts
createMockFileSystemExecutor
called by 138
src/test-utils/mock-executors.ts
callHandler
called by 135
src/test-utils/test-helpers.ts
get
called by 132
src/utils/session-store.ts

Shape

Function 2,564
Interface 491
Method 317
Class 64
Enum 1

Languages

TypeScript100%
Python1%

Modules by API surface

src/utils/renderers/domain-result-text.ts98 symbols
src/types/domain-results.ts65 symbols
src/mcp/tools/ui-automation/shared/runtime-snapshot.ts65 symbols
src/server/mcp-lifecycle.ts43 symbols
src/utils/sentry.ts40 symbols
src/cli/commands/setup.ts38 symbols
src/benchmarks/claude-ui/harness.ts36 symbols
src/benchmarks/claude-ui/render.ts35 symbols
src/utils/renderers/event-formatting.ts34 symbols
src/utils/workspace-filesystem-lifecycle.ts32 symbols
src/mcp/tools/ui-automation/shared/runtime-next-steps.ts32 symbols
src/snapshot-tests/json-normalize.ts31 symbols

Dependencies from manifests, versioned

@clack/prompts1.0.1 · 1×
@eslint/js9.23.0 · 1×
@modelcontextprotocol/sdk1.27.1 · 1×
@sentry/node10.43.0 · 1×
@types/chokidar1.7.5 · 1×
@types/node22.13.6 · 1×
@types/yargs17.0.33 · 1×
@vitest/coverage-v83.2.4 · 1×
@vitest/ui3.2.4 · 1×
ajv8.18.0 · 1×
bplist-parser0.3.2 · 1×
chokidar5.0.0 · 1×

For agents

$ claude mcp add XcodeBuildMCP \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact