xcode_buildLABSCO SUMMARY
One server for the whole iOS loop.
Build errors come back as structured fields rather than a wall of xcodebuild output, and the accessibility tree means a control can be found by name instead of by guessing pixels from a screenshot. What a change looks like on screen is checkable in the same session that compiled it.
What it is
A Swift MCP server, shipped as a single binary, covering the iOS loop end to end: build, run on the Simulator, screenshot, and interact with what is on screen.
What you get
- An Xcode project, workspace or directory built with structured errors carrying file, line, column, severity and message (xcode_build)
- The app built and launched on the iOS Simulator by bundle identifier (xcode_run)
- The Simulator screen captured as a PNG (simulator_screenshot)
- Taps at x,y coordinates with an optional hold duration for long presses, and text typed into the focused field (simulator_tap, simulator_type)
- The current screen's accessibility tree returned as JSON (simulator_describe)
- Scheme and target simulator auto-detected when you leave them out
Requirements
macOS with Xcode and the iOS Simulator. A single Swift binary, so no Node or Python runtime is involved.
Setup effort
Build from source — git clone https://github.com/kevinswint/xcode-studio-mcp.git
USE CASES
Checking a UI change actually rendered
Build and launch on the Simulator, then capture the screen.
Fixing a build failure without leaving the client
Build and read the errors with their file, line and column.
Walking a flow the way a user would
Read the accessibility tree, tap the control, type what it expects.
Filling in a form on the Simulator
Tap into each field and type, holding taps where a long press is needed.
Finding a control a screenshot cannot identify
The accessibility tree gives the element and its position as JSON.
6 tools
Listed in project docs. Your client may show a different list.
xcode_runsimulator_screenshotsimulator_tapsimulator_typesimulator_describeBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/kevinswint/xcode-studio-mcp.git
cd xcode-studio-mcp
swift build -c release(only for the UI interaction tools tap/type/describe) brew tap facebook/fb && brew install idb-companion
(only for the UI interaction tools tap/type/describe) pip3 install fb-idb
MCP Clients
Any MCP client
{
"mcpServers": {
"xcode-studio-mcp": {
"command": "<YOUR_PATH_TO_XCODE_STUDIO_MCP>/.build/release/XcodeStudioMCP"
}
}
}