Labsco
MCP SERVER

Xcode-Studio-MCP

by kevinswint

Builds an Xcode project, launches it on the Simulator, and taps and types through the running app.

Mobile & App Store Release
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.