XcodeBuildMCP, now MobileBuildMCP from Sentry, is the MCP server iOS developers keep naming as a daily driver: it lets the agent discover schemes, build for a simulator, run tests, launch the app and look at the screen, instead of guessing xcodebuild flags. This loadout pins it with telemetry disabled and adds the rules for Swift work: build, test and look before reporting, main-actor UI, no force unwraps on outside data, Swift Testing for new tests, and hands off signing, entitlements, pbxproj and uploads.
What's in it
- MobileBuildMCP pinned, telemetry off via MOBILEBUILDMCP_SENTRY_DISABLED
- Session defaults set once: project, scheme, simulator
- Done means built, tested, launched and seen on screen
- Swift concurrency rules; no unsafe escapes without a reason
- No pbxproj reformatting, signing changes or uploads
You'll need
- Tools:
node,xcode - MCP servers: mobilebuildmcp
Verification
| Check | Result | What we found |
|---|---|---|
| Listinglisting.yaml matches the schema and declares every file in the folder. | Pass | Schema valid; 5 files declared, none missing or extra
|
| Files parseJSON parses; SKILL.md and .mdc front matter is valid YAML with the fields each agent needs; code fences are closed. | Pass | All 5 files parse; front matter valid |
| AdaptersCLAUDE.md imports @AGENTS.md, GEMINI.md imports @./AGENTS.md, and both match the generator. | Pass | CLAUDE.md and GEMINI.md import AGENTS.md and are up to date
|
| Install pathsEvery file lands where each agent documents it, with no collisions, and the laid-out project is re-discovered correctly. | Pass | Correct paths for all 6 agents; layouts re-discovered
|
| MCP configmcp.json is structurally valid, converts to each agent's format, declares no literal secrets, and referenced packages exist on npm/PyPI. | Pass | 1 server valid: mobilebuildmcp
|
| Safety scanThe intake scanner finds no credentials, risky shell, hidden Unicode or prompt-injection wording, and the listing's network flag is honest. | Pass | Clean: no credentials, risky shell or hidden text
|
| ReferencesLinks and file paths between the loadout's files resolve, including for each agent's installed layout. | Pass | 2 references between files resolve for every agent |
| Size limitsFile count and sizes are within the submission limits; SKILL.md bodies stay under 500 lines. | Pass | 5 files, 4.2 KB total; largest AGENTS.md 1.9 KB
|
| LicenceA recognised SPDX licence, with the licence text available. | Pass | MIT, by Agent Loadout; text in the repository LICENSE |
| Starter buildA minimal fixture project with the loadout applied installs and builds or type-checks, and the loadout's own code examples compile. | Not applicable | Not applicable: building Swift apps needs macOS with Xcode and simulators, which the Linux CI runner does not have
|
What this means: a script checked the files themselves: they parse, they install where each agent looks, any MCP config is sound, the safety scan is clean, references between files resolve, and, where a free and repeatable fixture exists, a small starter project builds with the loadout applied. No AI agent was run. Per-agent results ("tested with agent") are separate and stay untested until an agent actually runs.
Install
Choose your agent. Run the commands from your project root, or download a zip already laid out in the right folders.
Claude Code reads CLAUDE.md (imports AGENTS.md with @AGENTS.md) and skills from .claude/skills/.
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/AGENTS.md curl -fsSL --create-dirs -o CLAUDE.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/CLAUDE.md curl -fsSL --create-dirs -o .claude/skills/ios-build-loop/SKILL.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/skills/ios-build-loop/SKILL.md curl -fsSL --create-dirs -o .mcp.json https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/mcp.json
| File | Goes to |
|---|---|
AGENTS.md | AGENTS.md |
CLAUDE.md | CLAUDE.md |
skills/ios-build-loop/SKILL.md | .claude/skills/ios-build-loop/SKILL.md |
mcp.json | .mcp.json |
Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.
Codex CLI reads AGENTS.md and skills from .agents/skills/.
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/AGENTS.md curl -fsSL --create-dirs -o .agents/skills/ios-build-loop/SKILL.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/skills/ios-build-loop/SKILL.md
| File | Goes to |
|---|---|
AGENTS.md | AGENTS.md |
skills/ios-build-loop/SKILL.md | .agents/skills/ios-build-loop/SKILL.md |
Manual step mcp.json: Codex reads MCP servers from ~/.codex/config.toml (TOML, not JSON). Add each server with `codex mcp add` or copy the URL into an [mcp_servers.<name>] table. View the file.
Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.
Cursor reads AGENTS.md + .cursor/rules/*.mdc and skills from .agents/skills/.
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/AGENTS.md curl -fsSL --create-dirs -o .agents/skills/ios-build-loop/SKILL.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/skills/ios-build-loop/SKILL.md curl -fsSL --create-dirs -o .cursor/mcp.json https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/mcp.json
| File | Goes to |
|---|---|
AGENTS.md | AGENTS.md |
skills/ios-build-loop/SKILL.md | .agents/skills/ios-build-loop/SKILL.md |
mcp.json | .cursor/mcp.json |
Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.
Gemini CLI reads GEMINI.md (imports AGENTS.md with @./AGENTS.md) and skills from .agents/skills/.
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/AGENTS.md curl -fsSL --create-dirs -o GEMINI.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/GEMINI.md curl -fsSL --create-dirs -o .agents/skills/ios-build-loop/SKILL.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/skills/ios-build-loop/SKILL.md
| File | Goes to |
|---|---|
AGENTS.md | AGENTS.md |
GEMINI.md | GEMINI.md |
skills/ios-build-loop/SKILL.md | .agents/skills/ios-build-loop/SKILL.md |
Manual step mcp.json: Gemini CLI reads MCP servers from the mcpServers block of .gemini/settings.json. Merge the servers in by hand, and use httpUrl instead of url for HTTP servers. Since 18 June 2026 Gemini CLI serves only Gemini Code Assist Standard/Enterprise licences and paid API keys; personal accounts use Antigravity CLI. View the file.
Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.
Antigravity CLI reads AGENTS.md (read natively; GEMINI.md is also read) and skills from .agents/skills/.
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/AGENTS.md curl -fsSL --create-dirs -o .agents/skills/ios-build-loop/SKILL.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/skills/ios-build-loop/SKILL.md curl -fsSL --create-dirs -o .agents/mcp_config.json https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/generated/antigravity-cli/mcp_config.json
| File | Goes to |
|---|---|
AGENTS.md | AGENTS.md |
skills/ios-build-loop/SKILL.md | .agents/skills/ios-build-loop/SKILL.md |
mcp.json | .agents/mcp_config.json |
Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.
GitHub Copilot reads AGENTS.md and skills from .agents/skills/.
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/AGENTS.md curl -fsSL --create-dirs -o .agents/skills/ios-build-loop/SKILL.md https://loadout.jnw-it.com/raw/ios-mobilebuildmcp/1.0.0/skills/ios-build-loop/SKILL.md
| File | Goes to |
|---|---|
AGENTS.md | AGENTS.md |
skills/ios-build-loop/SKILL.md | .agents/skills/ios-build-loop/SKILL.md |
Manual step mcp.json: In VS Code, MCP servers go in .vscode/mcp.json under a "servers" key (not "mcpServers"). Copilot CLI uses ~/.copilot/mcp-config.json. View the file.
Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.
Files
Rules AGENTS.md Swift and Xcode rules with MobileBuildMCP as the build tool. 31 lines
# AGENTS.md: iOS and macOS app with MobileBuildMCP
Swift app built with Xcode. The agent builds, runs and tests through MobileBuildMCP (formerly XcodeBuildMCP), not by
guessing `xcodebuild` flags.
## Tools
- MCP server `mobilebuildmcp` (pinned in the MCP config). On first use in a session, list projects and schemes, and set
the session defaults (project or workspace, scheme, simulator) once instead of passing them on every call.
- Telemetry is off in the MCP config (`MOBILEBUILDMCP_SENTRY_DISABLED`). Keep it that way unless the human changes it.
- If the server is unavailable, fall back to `xcodebuild -scheme <scheme> -destination 'platform=iOS Simulator,name=<device>' build test`.
## Done means
- The app builds for the simulator with no new warnings, the tests for the scheme pass, and you launched the app and
looked at the screen you changed (screenshot or UI hierarchy through the MCP server).
## Swift rules
- Swift concurrency: UI work on `@MainActor`; no `DispatchQueue.main.async` in new code. Respect strict concurrency
checking if the project enables it; do not silence warnings with `@unchecked Sendable` or `nonisolated(unsafe)`
without explaining why it is safe.
- SwiftUI: small views, state owned in one place (`@State`, `@Observable` models), no business logic in `body`.
- No force unwraps (`!`) or `try!` on data from outside the app. Errors are typed and shown to the user where it matters.
- Tests with Swift Testing (`@Test`, `#expect`) for new code, unless the project only uses XCTest.
## Never
- Never edit `project.pbxproj` by hand when the change can be made through a tool, and never reorder or reformat it.
If you must add a file, prefer a folder the project already syncs or ask the human.
- Never change signing settings, bundle identifiers, entitlements or provisioning without the human asking.
- Never upload to TestFlight or the App Store.
Use the `ios-build-loop` skill for every change. Adapter CLAUDE.md Imports AGENTS.md for Claude Code. 11 lines
# CLAUDE.md
@AGENTS.md
## Claude Code notes
- Skills from this loadout live in `.claude/skills/`: `ios-build-loop`. Use them when their description matches the task.
- MCP servers for this project are in `.mcp.json`. If a server is not connected, tell the human rather than working around it.
- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.
<!-- From the Agent Loadout "iOS builds with MobileBuildMCP (XcodeBuildMCP)" v1.0.0 — https://loadout.jnw-it.com/loadouts/ios-mobilebuildmcp/ --> Adapter GEMINI.md Imports AGENTS.md for Gemini CLI. 10 lines
# GEMINI.md
@./AGENTS.md
## Gemini CLI notes
- Skills from this loadout live in `.agents/skills/`: `ios-build-loop`. Use them when their description matches the task.
- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.
<!-- From the Agent Loadout "iOS builds with MobileBuildMCP (XcodeBuildMCP)" v1.0.0 — https://loadout.jnw-it.com/loadouts/ios-mobilebuildmcp/ --> Skill skills/ios-build-loop/SKILL.md Build, test, run and look, through MobileBuildMCP. 20 lines
---
name: ios-build-loop
description: Build, test, run and look at an iOS or macOS change through MobileBuildMCP, then fix what the build log or the screen shows. Use for every change to a Swift app.
---
# iOS build loop
1. Session setup (once): discover projects and schemes, list simulators, and set session defaults for project or
workspace, scheme and simulator. Prefer a recent iPhone simulator that is already booted.
2. Baseline: build and run the tests before changing anything, so later failures are known to be yours.
3. Make the change. Keep it small; one screen or one behaviour.
4. Build for the simulator. Read errors and new warnings from the structured build output and fix them before going on.
5. Run the tests for the scheme. A failing test you did not touch means stop and report.
6. Launch the app on the simulator, go to the changed screen and take a screenshot or read the UI hierarchy.
Compare with what was asked; if it is wrong, go back to step 3.
7. Capture logs if the change involves runtime behaviour; look for new errors.
8. Report: what changed, build and test results, and the screenshot.
On a device: device tools need code signing set up in Xcode by the human. Do not change signing to make it work. All files: source zip · Licence MIT · By Agent Loadout · First listed
Credits
Public work that inspired this loadout. The wording here is our own; follow the links for the originals.
Installing and testing
How do I install iOS builds with MobileBuildMCP (XcodeBuildMCP) in Claude Code?
From your project root, put AGENTS.md, CLAUDE.md, skills/ios-build-loop/SKILL.md at .claude/skills/ios-build-loop/SKILL.md, mcp.json at .mcp.json. The "Claude Code" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ios-mobilebuildmcp/claude-code.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.
How do I install iOS builds with MobileBuildMCP (XcodeBuildMCP) in Codex CLI?
From your project root, put AGENTS.md, skills/ios-build-loop/SKILL.md at .agents/skills/ios-build-loop/SKILL.md. The "Codex CLI" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ios-mobilebuildmcp/codex.zip, which is already laid out. mcp.json needs a manual step: Codex reads MCP servers from ~/.codex/config.toml (TOML, not JSON). Add each server with `codex mcp add` or copy the URL into an [mcp_servers.<name>] table. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.
How do I install iOS builds with MobileBuildMCP (XcodeBuildMCP) in Cursor?
From your project root, put AGENTS.md, skills/ios-build-loop/SKILL.md at .agents/skills/ios-build-loop/SKILL.md, mcp.json at .cursor/mcp.json. The "Cursor" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ios-mobilebuildmcp/cursor.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.
How do I install iOS builds with MobileBuildMCP (XcodeBuildMCP) in Gemini CLI?
From your project root, put AGENTS.md, GEMINI.md, skills/ios-build-loop/SKILL.md at .agents/skills/ios-build-loop/SKILL.md. The "Gemini CLI" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ios-mobilebuildmcp/gemini-cli.zip, which is already laid out. mcp.json needs a manual step: Gemini CLI reads MCP servers from the mcpServers block of .gemini/settings.json. Merge the servers in by hand, and use httpUrl instead of url for HTTP servers. Since 18 June 2026 Gemini CLI serves only Gemini Code Assist Standard/Enterprise licences and paid API keys; personal accounts use Antigravity CLI. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.
How do I install iOS builds with MobileBuildMCP (XcodeBuildMCP) in Antigravity CLI?
From your project root, put AGENTS.md, skills/ios-build-loop/SKILL.md at .agents/skills/ios-build-loop/SKILL.md, mcp.json at .agents/mcp_config.json. The "Antigravity CLI" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ios-mobilebuildmcp/antigravity-cli.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.
How do I install iOS builds with MobileBuildMCP (XcodeBuildMCP) in GitHub Copilot?
From your project root, put AGENTS.md, skills/ios-build-loop/SKILL.md at .agents/skills/ios-build-loop/SKILL.md. The "GitHub Copilot" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ios-mobilebuildmcp/copilot.zip, which is already laid out. mcp.json needs a manual step: In VS Code, MCP servers go in .vscode/mcp.json under a "servers" key (not "mcpServers"). Copilot CLI uses ~/.copilot/mcp-config.json. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.
Has iOS builds with MobileBuildMCP (XcodeBuildMCP) been tested?
It passed the Level 1 automated install checks on 2026-10-17: the files parse, install to each agent's documented paths, and pass the safety scan. No AI agent has run it yet, so no agent pass or fail is claimed.
More for Claude Code, Codex, Cursor, Gemini CLI, Antigravity CLI and GitHub Copilot.