XcodeBuildMCP is configured through environment variables provided by your MCP client. Here is a single example showing how to add options to a typical MCP config:
"XcodeBuildMCP": {
"command": "npx",
"args": ["-y", "xcodebuildmcp@latest"],
"env": {
"XCODEBUILDMCP_ENABLED_WORKFLOWS": "simulator,device,project-discovery",
"INCREMENTAL_BUILDS_ENABLED": "false",
"XCODEBUILDMCP_DISABLE_SESSION_DEFAULTS": "false",
"XCODEBUILDMCP_SENTRY_DISABLED": "false"
}
}By default, XcodeBuildMCP loads all tools at startup. If you want a smaller tool surface for a specific workflow, set XCODEBUILDMCP_ENABLED_WORKFLOWS to a comma-separated list of workflow directory names. The session-management workflow is always auto-included since other tools depend on it.
Available workflows:
device(7 tools) - iOS Device Developmentsimulator(12 tools) - iOS Simulator Developmentsimulator-management(5 tools) - Simulator Managementswift-package(6 tools) - Swift Package Managerproject-discovery(5 tools) - Project Discoverymacos(6 tools) - macOS Developmentui-testing(11 tools) - UI Testing & Automationlogging(4 tools) - Log Capture & Managementproject-scaffolding(2 tools) - Project Scaffoldingutilities(1 tool) - Project Utilitiesdoctor(1 tool) - System Doctor
XcodeBuildMCP includes experimental support for incremental builds. This feature is disabled by default and can be enabled by setting the INCREMENTAL_BUILDS_ENABLED environment variable to true.
Important
Incremental builds are highly experimental and your mileage may vary. Please report issues to the issue tracker.
By default, XcodeBuildMCP uses a session-aware mode: the LLM (or client) sets shared defaults once (simulator, device, project/workspace, scheme, etc.), and all tools reuse them. This cuts context bloat not just in each call payload, but also in the tool schemas themselves.
If you prefer the older, explicit style where each tool requires its own parameters, set XCODEBUILDMCP_DISABLE_SESSION_DEFAULTS=true. This restores the legacy schemas with per-call parameters while still honoring any session defaults you choose to set.
Leave this unset for the streamlined session-aware experience; enable it to force explicit parameters on each tool call.
If you do not wish to send error logs to Sentry, set XCODEBUILDMCP_SENTRY_DISABLED=true.
- Session defaults: SESSION_DEFAULTS.md
- Tools reference: TOOLS.md
- Privacy and telemetry: PRIVACY.md
- Troubleshooting: TROUBLESHOOTING.md