XC-MCP

XC-MCP gives an agent 81 Xcode and iOS Simulator tools and compresses build output into short summaries with details on demand.

  • 102 ★ on the repository
  • Last commit
MCP server

Extended access

Why this level

  • Tools run `xcodebuild` and `simctl` and install and remove apps in the simulator.
  • Some tools erase a device, crash reports and the simulator keychain.
All reasons and checks

conorluddy/xc-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/xc-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Tools run `xcodebuild` and `simctl` and install and remove apps in the simulator.
  • Some tools erase a device, crash reports and the simulator keychain.

This is third-party code. Review the repository files before installing.

What it does

The server wraps `xcodebuild`, `simctl` and `idb` as 81 tools and keeps responses small. One incremental build of a real app yields about 419 thousand log tokens, while the agent gets a summary of roughly 285. The full output is cached for 30 minutes and reachable as a resource link or through the `xcodebuild-get-details` tool. For simulator UI work the server reads the accessibility tree and finds the right button without screenshots. It offers taps, text input, gestures, state snapshots, accessibility audits, device and app management, and crash and hang analysis. The `--build-only` mode keeps 18 build tools.

Who it is for. iOS developers on macOS who hand builds, tests and simulator UI checks to an agent in Claude Code or Codex.

Good fit when

  • A build fails with hundreds of log lines and the agent needs just the error list.
  • A screen is checked in the simulator: find the sign-in button, tap it and compare the result.
  • An accessibility audit of the app runs before release.
  • After a crash the `.ips` report must be parsed to find the failure point.

Not a fit when

  • Development is not on macOS and the server needs Xcode.
  • Only Android or a cross-platform stack without Xcode is used.
  • The client context is limited and 81 tools are too many: the `--build-only` mode fits better.

Example request

Build the MyApp project, show only the errors, run it in an iPhone simulator, tap "Sign In" through the accessibility tree and attach a state snapshot.

MCP

Transport
stdio
Authentication
not required

Environment variables

XC_MCP_CACHE_DIR
Folder for persisted caches; defaults to `~/.xc-mcp`.

Limitations

macOS 13 or newer, Node.js 20+ and Xcode with Command Line Tools 15 or newer are required. The `idb-*` tools need `idb` and idb-companion 1.5.1 or newer from the `facebook/fb` tap, and newer gestures need 1.7. With an outdated idb-companion on Xcode 27 taps are silently lost and the tools refuse to run. Some tools erase data: `simctl-erase`, `idb-crash-delete` and `idb-clear-keychain`; clients are given a destructive-action hint. The repository states no license. The iPhone Duo features use private interfaces and are experimental.

How to disable. Run `claude mcp remove xc-mcp`. The cache sits in `~/.xc-mcp` and can be deleted by hand.

FAQ

How do I connect XC-MCP to Claude Code?

Run `claude mcp add xc-mcp -- npx -y xc-mcp`. Codex has the equivalent `codex mcp add xc-mcp -- npx -y xc-mcp`.

What if taps succeed but nothing happens in the simulator?

Upgrade idb-companion to 1.5.1 or newer: `brew upgrade facebook/fb/idb-companion`. The server refuses to tap when it detects that version pair. `idb-doctor` checks the state.

How do I cut context use?

Add the `--mini` flag for short descriptions and `--build-only` for 18 build tools. `rtfm` returns detail on any tool.

Is Simulator.app required?

No, it depends on Xcode: Xcode 27 replaced it with DeviceHub.app, and `simctl-boot` with `openGui` opens whichever exists.

Where is the cache stored?

In `~/.xc-mcp`, changeable with `XC_MCP_CACHE_DIR`. Hang reports and test recordings sit in subfolders whose paths are set by two other variables.

Discussion

No questions or reviews yet.

An MCP server for Xcode on macOS: the agent creates projects, builds and tests apps, installs dependencies and drives the iOS simulator

MCP serverBroad access386Repository stars

An MCP server that takes plain-language commands and drives the iOS Simulator through idb: apps, taps, logs

MCP serverExtended access346Repository stars

An MCP server for the iOS Simulator: taps, swipes, text input, accessibility tree, screenshots, video and app control

MCP serverExtended access2.2KRepository stars
Official

An MCP server and CLI from Sentry for building, running and testing Xcode iOS and macOS projects from an AI agent

MCP serverExtended access6.6KRepository stars

Claude Code plugin for iOS: eight small MCP servers and eight skills to build, test and drive the simulator.

PluginExtended access187Repository stars

A skill with scripts for building iOS apps and driving the simulator through the accessibility tree, with compact output for agents

SkillExtended access1.3KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
XC-MCP (this card)nonot required102
XcodeBuildMCP (now MobileBuildMCP)yesnot required6,565Sentry build and run tooling for Xcode projects; XC-MCP focuses on output compression and simulator automation through the accessibility tree
iOS Simulator MCP Servernonot required2,217an MCP for iOS Simulator actions; XC-MCP adds builds, tests and diagnostics

README in short

The server compresses bulky Xcode output: a summary first, the full log on request. Simulator UI is preferably read through the accessibility tree, with screenshots where the tree is unavailable. Each tool declares whether it reads or changes data.

README badge

Report a problem