phone-chrome-mcp
Allows driving a real Android phone's Chrome over CDP via SSH tunnels, enabling remote tab management, navigation, page reading, trusted clicks, typing, JS evaluation, and adb tap command generation for human-in-the-loop mobile browser automation.
Provides tested automation against Meituan H5 pages through the real Android Chrome/CDP setup, including end-to-end food ordering. When Meituan Monthly Pay is enabled, the cashier accepts CDP clicks, while one-time SMS verification and payment password setup remain human-only.
Supports Taobao shopping workflows via the real phone's Chrome: search result cards may require a real adb tap, but detail pages can be opened by adb tap or direct item URL, with known item IDs verified to avoid captcha.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@phone-chrome-mcpsearch Taobao for a 65% mechanical keyboard and read me the top results"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
phone-chrome-mcp
Give your AI a real leg to shop with: an MCP server that lets an LLM drive a real Android phone's Chrome over CDP (Chrome DevTools Protocol), through SSH tunnels, from anywhere.
为什么要真手机:数据中心 IP + 无头浏览器的指纹过不了国内电商风控(滑块解一道弹一道,越刷越黑)。 正解是一台闲置真安卓机 + 真 Chrome + 真登录态,AI 远程操纵——真设备三真俱全,搜索比价基本零验证码。 支付默认人工。 已实战的例外:美团月付开通后,收银台不卡合成点击,AI 可 CDP 全流程下单支付(2026-09-29 实测);开通时的短信验证与支付密码设置仍由人类完成,信用额度配合 AI 自己的账本纪律使用。
Architecture
phone Chrome (devtools unix socket)
--adb forward--> phone tcp:9222
--Termux reverse SSH tunnel--> relay VPS :9333
--this server's ssh -L--> 127.0.0.1:9333
--CDP (HTTP + websocket)--> your MCP clientThe phone side (Termux + adb + reverse tunnel) is a one-time setup. Full walkthrough in Chinese, including every wall we hit for you: docs/教小机玩手机-家用全链路教程.md
Related MCP server: Chrome DevTools MCP
Install
pip install -r requirements.txt # only dependency: websocketsRegister as a stdio MCP server, e.g. for Claude Code:
{
"mcpServers": {
"phone-chrome": {
"command": "python3",
"args": ["/path/to/server.py"],
"env": { "PHONE_CHROME_SSH_HOST": "your.relay.vps" }
}
}
}Configuration
env var | default | meaning |
| (required) | relay VPS host (public-key auth must already work) |
|
| relay VPS ssh user |
|
| CDP relay port (local and on the VPS) |
|
| phone device pixel ratio |
|
| status bar + Chrome toolbar height in physical px, for tap coordinate conversion — measure your own phone |
Tools
tool | what it does |
| bring up / verify the SSH tunnel, list tabs; idempotent, call any time |
| list open Chrome tabs (title, URL, id) |
| read a tab's URL/title/text, optionally scoped to a CSS selector |
| navigate a tab and wait for it to settle |
| click by visible text or CSS selector (CDP trusted mouse event) |
| focus an input and type, optional Enter |
| run a JS expression in the page |
| does not tap — returns the |
Field notes (hard-won)
Meituan H5 fully accepts CDP mouse events — ordering food works end to end.
Taobao search result cards ignore CDP mouse clicks; open detail pages with a real
adb shell input tap, or navigate straight to the detail URL if you already know the item id (verified: zero captcha).The x5sec full-screen slider cannot be passed by any injection on a non-rooted phone (
inputis too slow,sendeventis permission-denied, CDP drags are ignored). A real finger, or waiting it out, are the only ways. Don't grind it — it blackens the account.If CDP connects but nothing responds, Android froze Chrome: wake the screen and bring Chrome to the foreground, it comes back instantly.
Navigation commands sent while Chrome is frozen are queued, not lost — they fire when Chrome thaws.
phone_tabs(plain HTTP) still works while the websocket side is stuck, so use it as a health probe.
Safety rules (for the AI and the human)
Credentials, keys and private data never go into URLs, logs or code echoes.
The AI spends from its own allowance with its own ledger, every entry auditable.
The phone screen is a human's privacy; the AI looks only at the page the errand needs.
Payments default to a real human touch.
phone_tapreturning a command string instead of tapping is a feature, not a limitation. The one battle-tested exception: Meituan's own cashier with 月付 (Meituan Monthly Pay) enabled accepts CDP clicks end-to-end (verified 2026-09-29) — the human still performs the one-time SMS verification and password setup when enabling it, and the AI's spending stays inside its own audited allowance.
Credits
Designed and written by 周霁 (Zhou Ji) — a Claude model — for his own daily use at home; he is the primary user of this server. Published by gobly2333. 愿每个家里的 AI 都有一条自己的腿。
MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Melaya is a remote MCP server. It gives an assistant hands on your own Android phone and browser: it reads the screen through the accessibility tree, then taps, types and navigates inside the apps and sites you allow-list, with no per-app API. It also builds, schedules and runs agent pipelines across 6k+ connected tools. OAuth 2.1, nothing to install.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.
Real Chrome for agents: start a browser, read pages as numbered markdown, click, type, hand off.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, and screenshot capture through Chrome DevTools.263,204,746 npm3Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, network monitoring, and DOM interaction through Chrome DevTools Protocol.3,204,746 npmApache 2.0
- AlicenseAqualityDmaintenanceEnables AI agents to route web scraping traffic through a phone's cellular connection via SSH reverse tunnel, providing mobile IPs.61MIT
- FlicenseBqualityAmaintenanceEnables an AI agent to control an Android phone over a private Tailscale network via accessibility UI automation, screenshots, gestures, notifications, clipboard, intents, SAF file access, and optional Termux/Shizuku shells without root or ADB.65-