Testing
Let your coding agent test the app it just built.
xcrs is a free, open-source MCP server that gives Claude Code, Cursor, and any other MCP client direct control of Xcode simulators and real Apple hardware — tap, type, swipe, screenshot, and read the accessibility tree — for iOS, iPadOS, tvOS, watchOS, visionOS, and macOS end-to-end tests.
cargo install xcrs — Apache-2.0, free forever.
ControlKit
The native runner behind xcrs.
ControlKit is the open-source XCTest-based Swift package that runs on the simulator or device and exposes taps, text input, screenshots, and the accessibility tree over a local JSON-RPC server. xcrs is the MCP server that calls it.
Why teams reach for it
Verification that's a tool call away, not a separate platform.
Coding agents can write and refactor an app faster than a human can click through it by hand. xcrs closes the verification gap for Apple platforms specifically, in the same MCP session the agent is already using to write code.
Reads the real accessibility tree
ControlKit drives Apple's own XCTest and accessibility APIs, so the element your agent reads back is the one it taps — no vision model guessing coordinates from a screenshot.
Every Apple platform, not just iOS
iOS, iPadOS, tvOS, watchOS, visionOS, and macOS — on simulators and on real hardware paired with your Mac.
Runs on your Mac
No hosted device farm, no screen recordings uploaded anywhere, no per-seat pricing. Nothing leaves your machine unless you choose to send it somewhere.
xcrs vs. cloud-based AI QA platforms
Most AI QA tools are cloud SaaS. xcrs takes a narrower, different approach.
Platforms like QA.tech connect a vision model to a hosted device farm over MCP. That works, and it isn't limited to Apple platforms. xcrs runs locally and drives the UI through Apple's own accessibility APIs instead.
Pick xcrs if
- You're building specifically for Apple platforms.
- You want your coding agent testing UI without leaving the MCP session it's already in.
- You'd rather not pay per seat or sit through a demo call to get started.
- You don't want screen recordings leaving your Mac.
A cloud platform still fits if
- You're testing across web, Android, and iOS from one dashboard.
- You want a hosted device farm you don't have to run yourself.
- You need a team dashboard and reporting out of the box.
FAQ
Common questions
Is xcrs free and open source?
Yes. xcrs is Apache-2.0 licensed and published on crates.io. Install it with `cargo install xcrs`.
Which Apple platforms does it support?
iOS, iPadOS, tvOS, watchOS, visionOS, and macOS — on simulators and on physical hardware paired with your Mac.
Does it work with Claude Code and Cursor?
Yes. xcrs is a standard MCP server (`xcrs --mcp`, or `smb --mcp` through the smbCloud CLI), so it works with any MCP-compatible client.
How is xcrs different from cloud-based, vision-driven QA tools like QA.tech?
xcrs drives the UI through Apple's own accessibility APIs and XCTest, run locally, instead of a hosted vision model inferring taps from screenshots. No screen recordings leave your machine, no per-seat pricing, and native support for the Apple-only platforms most general-purpose QA tools don't reach.
Get started
Full tool reference and setup steps live in the docs.
Install, wire up a ControlKit runner, and point your MCP client at it — the complete walkthrough and tool schemas are on the docs site.