Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
H

hridaya423/phonedriver

Open-source MCP server and CLI that lets AI agents like Claude Code see and control Android and iOS phones

Before you install: no copy-paste command · license AGPL-3.0 · link reachable

First step: claude mcp add phonedriver -- npx -y phonedriver mcp

View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
Install command from the repository
claude mcp add phonedriver -- npx -y phonedriver mcp

Parsed from the README we fetched on 2026-11-10; we have not executed it.

This is the install method the repository states, not an MCP client config, so no JSON is generated.
Key names differ by client: Clients & CLI
Star count
1 ★ · hridaya423/phonedriver · read from the GitHub search API · (checked 2026-11-13 20:00:50)
Source
read directly from its GitHub page · type: open-source project
Harvest history
first seen 2026-11-11 · last seen 2026-11-14 · seen 4× · listed by 1 sources
Score
score 103 · 1 ★ · 1 sources · repo
Install
claude mcp add phonedriver -- npx -y phonedriver mcp
FAQ (answers come from our records)
How do I install it?
The repository provides this install command: claude mcp add phonedriver -- npx -y phonedriver mcp. It comes from the repository itself; we cannot guarantee it runs as-is in your client.
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository hridaya423/phonedriver;first catalogued 2026-11-11;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

Give your AI agent a phone.

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

phonedriver lets Claude Code, Codex, Cursor or any MCP client use an Android phone or an iPhone. It reads the screen as text, which took 6.9x fewer tokens than mobile-mcp on nine phone jobs, and it asks you before it taps Pay.
One real Claude Code (Opus 5.5) session on an Android emulator, ordering on dominos.co.uk. The run took 6.5 minutes and is shown at 15x; the approval prompt plays at real speed. Nothing was ordered. Full video (MP4) .
## Start
sh
claude mcp add phonedriver -- npx -y phonedriver mcp
Start an Android emulator, plug in an Android phone with USB debugging on, or boot the iOS Simulator. Then give Claude a job that only a phone can do:
> Open my app, sign up with a new account, and tell me every bug you find on the way. Give me steps to reproduce each one.
> Find the app that drains my battery and tell me how long it ran in the background today.
> Go through my app's onboarding in dark mode and in light mode, and show me every screen where the text is hard to read.
The first run downloads one binary for your machine (macOS, Linux or Windows) and caches it. phonedriver doctor checks adb, Xcode and each device and tells you what to fix. Codex, Cursor and other clients: see Other clients. Homebrew, the shell installer and real iPhones: docs/reference.md.
Not released yet. Until the first release, build from source with cargo build --release .
## What the model sees
Each screen arrives as a short numbered list. This is the Settings app on an Android emulator:
console
$ phonedriver snapshot
app com.android.settings (Settings) · keyboard hidden · settled in 0ms
@e1 button "Search Settings"
@e2 group scrollable↓
@e3 button "Google" "Services & preferences"
@e4 button "Network & internet" "Mobile, Wi‑Fi, hotspot"
@e5 button "Connected devices" "Bluetooth, pairing"
...
@e10 button "Display & touch" "Dark theme, font size, touch"
The model taps by number. phonedriver waits until the screen stops changing, then replies. After tap @e10 the Display screen opens and the reply lists it, including @e24 switch "Dark theme" off. The next tap returns only what changed:
console
$ phonedriver tap @e24
ok tapped @e24 "Dark theme" at 353,532 · settled in 2034ms
~ @e23 button "Dark theme" "Will turn on when Bedtime starts" → "Will never turn off automatically"
~ @e24 switch "Dark theme" off → on
marks a line that appeared, - one that left, ~ one that changed. The model doesn't need to poll or guess how long a screen takes to load. It takes a screenshot only when it needs to see a picture.
## Fewer tokens
Tokens are what an agent's usage limit is spent on. I ran nine jobs that only a phone can do, twice each, with Claude Sonnet 5.5 and three MCP servers. The jobs included setting Chrome's search engine, cropping a photo, pinning and archiving Messages threads, finding the app that keeps the phone awake, and testing a sign-up flow for planted bugs. A script checked the phone's own data afterwards, not the model's report.
This is my own test set. All three tools ran on the same Android emulator on 10 November 2026. phone-harness used fewer tokens than phonedriver on two of the nine jobs. Every run, the versions, the checks and what was thrown away are published in docs/bench/jobs.md. If you maintain one of these tools and think I set it up wrong, open an issue and I will rerun it.
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/hridaya423-phonedriver/)
Source
github · https://github.com/hridaya423/phonedriver
Browse by field
Open source
Traction
1 ★
added
today

More like this

All 1,671 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index