Phone Harness MCP
An MCP server that hands an agent a cloud iPhone or Android emulator, with taps, swipes and app launches.
- 711 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- An agent sees the device screen and types text, including any credentials if an account sign-in happens to be open on the phone.
- The Android emulator and cloud iPhone are both billed starting right after they launch.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/phone-harness-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- An agent sees the device screen and types text, including any credentials if an account sign-in happens to be open on the phone.
- The Android emulator and cloud iPhone are both billed starting right after they launch.
This is third-party code. Review the repository files before installing.
What it does
Phone Harness MCP connects as a remote MCP server at `https://mcp.phone-harness.com/mcp` via OAuth or an API key header. After starting a device (`phone_start_device`), an agent sees the screen via screenshot, reads visible text with tap-ready coordinates through an accessibility tree on Android or text recognition on iPhone, and drives the device: tap, long press, swipe, type text, HOME and BACK buttons, launch an app by icon name or package id. Android emulators are free to start and then billed at 5 cents per phone-minute; a cloud iPhone is a flat $80/month subscription ($100 with an eSIM), 20% off billed annually. A local stdio server additionally saves a screenshot to disk on that same machine.
Who it is for. Mobile app developers and QA engineers who need a real iPhone or Android device for an agent with no Mac, cable or adb setup of their own.
Good fit when
- A specific app screen needs checking on a real iPhone, with no Mac nearby.
- A QA scenario is written out in text, and an agent should walk through it with taps and swipes on an Android emulator.
- A device is already set up with the right accounts and locale, and the next check should reuse that same `device_id` rather than a throwaway emulator.
- An MCP client (Claude, Cursor, ChatGPT, Codex, VS Code) is already in use, and mobile testing should use the same protocol with no per-client integration.
Not a fit when
- A scenario needs opening a web page by URL inside the flow: there is no tool for that.
- Paying monthly for a cloud iPhone or per-minute for an Android emulator doesn't fit the budget — billing starts from the first device start.
- ChatGPT on a Pro plan: a custom MCP server there only gets read-and-fetch tools, and driving the phone needs Business, Enterprise or Edu.
Example request
Start an Android emulator, open the settings app, and show me which permissions are enabled for the camera.MCP
- Transport
- http
- Authentication
- OAuth
Environment variables
PHONE_HARNESS_API_KEYsecret- An alternative to OAuth: a `pck_…` key, sent as an Authorization header or through an environment variable in Codex.
Limitations
There is no tool to open an arbitrary URL on the device — only launching an already-installed app. The app list and foreground app are available only where the device platform itself reports them. The Android emulator bills per minute from start, and stopping it (`phone_stop_device`) is required to avoid paying for an idle session; anything not saved on the phone is lost on stop. On ChatGPT web, custom MCP servers are available only to Business, Enterprise and Edu plans; Pro accounts get read-and-fetch tools only.
How to disable. Remove the connector or MCP server entry from the client's settings (for example Customize, Connectors in Claude, or `.cursor/mcp.json` in Cursor). Stop any active device beforehand with `phone_stop_device` so billing doesn't continue.
FAQ
How do I connect Phone Harness MCP in Claude Code?
`claude mcp add --transport http phone-harness https://mcp.phone-harness.com/mcp`, then run `/mcp` and sign in. Add `--scope user` to keep the connection for every project, not just the current one.
Can I skip OAuth?
Yes, with an `Authorization: Bearer pck_…` header instead of signing in. In Codex, the key is read from an environment variable via `bearer_token_env_var` in the config.
How much does the Android emulator cost?
Free to start, then 5 cents per phone-minute. The `minutes` parameter on `phone_start_device` sets how long the timer runs.
What's the cloud iPhone pricing?
A flat monthly subscription: $80 without an eSIM, $100 with one. Annual billing gives a 20% discount — $64 and $80 per month respectively.
Can it open a web page by URL on the device?
No, there's no tool for opening an arbitrary URL. Launching an installed app, viewing the screen, taps, swipes and typing are what's available.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server that installs on a jailbroken iPhone and gives an agent 46 tools: taps, screenshots, OCR, apps, files and logs
An MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots
An MCP server that drives an Android device over ADB: app navigation, input and automated tests
Android Remote Control MCP
android-remote-control-mcp
An Android app that turns a phone or emulator into an MCP server: accessibility services and screenshots
Appium MCP
appium-mcp
An agent opens sessions on emulators and real devices, finds elements by description and writes Java tests via the Appium server.
Android MCP Server: control Android through ADB
Android MCP Server
A Python MCP server: the agent takes screenshots of an Android device, reads clickable interface elements and runs ADB commands
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Phone Harness MCP (this card) | yes | OAuth | 711 | |
| Mobile MCP | no | not required | 10,325 | mobile-mcp connects to devices or emulators you set up yourself; Phone Harness MCP gives ready cloud iPhones and Android devices over OAuth with no adb setup |
| iphone-use | no | not required | 458 | iphone-use drives your own physical iPhone over a local connection; here the device is cloud-hosted and subscription-based, no iPhone of your own needed |
| Android MCP | no | not required | 917 | android-mcp drives a locally connected Android device; Phone Harness MCP spins up a cloud emulator with no device of your own |
README in short
The README gives separate instructions for 16 clients, from Claude and Cursor to Warp and Raycast, with ready-made deep-link buttons for several of them.