For developers · macOS
Let your agent use your phone.
Wisp drives an iPhone or iPad over Wi-Fi from your Mac, and hands that control to any MCP client. It drives Android phones, simulators and the Mac itself with the same tools. Nothing leaves your Mac.
macOS 26 on Apple silicon · Xcode installed · free
One set of tools, every screen you have
An agent connects, reads the screen as text, one element per line, and taps, types and scrolls by name. The same seventeen tools work everywhere.
iPhone and iPad
Over Wi-Fi with the cable out, or over the cable when it is in. Several devices at once, each with its own agent.
iOS Simulator
Only Xcode needed. No pairing, no profile, no team.
Android
A phone or emulator through adb, with the same tool names and the same errors.
This Mac
Apps, windows, menus and browser tabs through the accessibility tree.
Set up once
There is nothing to leave running. Your agent starts Wisp when it wants the phone, and Wisp exits when the agent is done.
Install
Open the DMG, drag Wisp to Applications, and open it once. It lives in the menu bar.
Pair your phone, once, over a cable
Trust the Mac, then turn on Developer Mode in Settings → Privacy & Security. Unplug afterwards: Wi-Fi is enough from then on.
Put the runner on it
Wisp builds and signs the open source WebDriverAgent runner with your own development team and installs it from the menu bar. Your account, your device.
Connect your agent
Choose Connect an agent in the menu bar to copy the config, or add it by hand:
{ "mcpServers": { "wisp": { "command": "/Applications/Wisp.app/Contents/Resources/wisp/wisp-mcp" } } }
Seventeen tools, and not more
Every tool costs the agent on every turn, so the set is small. Known sequences go through batch in one call.
connect· attach to a devicedisconnect· end the session, free the devicelist_devices· what is paired and reachablelist_apps· installed or running appsobserve· the screen, as textscreenshot· the screen, as an imagetap· tap, hold, double-tap, menustype· type into a fieldscroll· scroll, or until something appearsswipe· pages, carousels, dismissingdrag· sliders, reordering, mapspress· hardware buttons and key chordsalert· read, accept or dismissopen_app· bring an app to the frontopen_url· links and URL schemeswait_for· an element, or a settled screenbatch· a known sequence in one call
Everything stays on this Mac
No account, no cloud, no telemetry, no analytics, no crash reporting, no update check.
- The MCP server speaks stdio. It never opens a listening socket, so nothing off your Mac can reach it.
- The runner is never exposed to your network. WebDriverAgent listens without authentication, so Wisp never uses the phone's Wi-Fi address. It relays through
127.0.0.1and Apple's own encrypted tunnel to the device. - Screens stay local. Screenshots and screen dumps are written to disk on your Mac and are never uploaded.
- Wisp never enters a passcode unless you store one yourself, for your own device.
What you need
- A Mac with Apple silicon, macOS 26 and Xcode.
- An iPhone or iPad on iOS 17 or later, paired with the Mac, with Developer Mode on, on the same Wi-Fi. Many guest networks block device-to-device traffic.
- An Apple developer team to sign the runner. A free personal team works, but its signing expires every seven days.
- An MCP client that runs local stdio servers.