DroidPilot
БесплатноНе проверенDrive an Android phone over ADB and expose it to AI agents via MCP, enabling natural language-driven interaction for native app testing.
Описание
Drive an Android phone over ADB and expose it to AI agents via MCP, enabling natural language-driven interaction for native app testing.
README
Drive an Android phone over ADB + UIAutomator and expose it to an AI agent over MCP — Playwright-style, for native-app user testing.
The idea: while you build an Android app with Claude Code on your computer, that same Claude can drive your phone to run the user tests — tap, type, read the screen, and assert outcomes — by calling DroidPilot's tools over MCP. DroidPilot is the hands and eyes; Claude is the brain.
Claude Code (your computer, the test agent)
│ MCP (stdio)
▼
DroidPilot MCP server ──► adb / UIAutomator ──► Android phone (USB)
tap · type · swipe · screenshot · dump UI · wait · assert
Requirements
- Python 3.10+
- adb (Android platform-tools) on PATH or under
ANDROID_HOME/the default SDK - A phone with USB debugging enabled and authorized (unavoidable for controlling taps — unlike screen mirroring, driving the device needs adb)
Install
pip install -e . # from a clone
# or: pip install git+https://github.com/LioMatthys/droidpilot
Use it three ways
1. With Claude Code (the point) — MCP
Register the server once:
claude mcp add droidpilot -- droidpilot-mcp
# (equivalently: claude mcp add droidpilot -- python -m droidpilot.mcp_server)
Then just ask Claude Code, e.g.:
Plug-in check: my phone is connected. Test that Beam (
life.overture.beam) shows a 6-digit code after I start sharing. Launch it, start sharing, accept the capture prompt, and confirm a code appears — screenshot the result.
Claude will call screen / screenshot to see the phone, tap_text / type_text to
act, and assert_text to verify — running the test like a human would.
2. As a CLI (manual / smoke testing)
droidpilot devices
droidpilot launch life.overture.beam
droidpilot screen # list on-screen elements
droidpilot tap-text "Start sharing"
droidpilot screenshot out.png
droidpilot assert-text "Code"
3. As a Python library (scripted tests)
from droidpilot import Device
dev = Device(); dev.connect()
dev.launch_app("life.overture.beam")
dev.wait_for_text("Beam", timeout=15)
dev.tap_text("Start sharing")
dev.assert_text("Code")
dev.screenshot("beam.png")
See examples/test_beam_flow.py.
MCP tools
| Tool | What it does |
|---|---|
list_devices |
connected devices + state |
launch_app(package) / stop_app(package) |
start/stop an app |
screen() |
compact text list of on-screen elements (label, tap point, id) |
screenshot() |
PNG of the current screen (visual inspection) |
tap(x,y) / tap_text(text) |
tap by coordinates or by element text |
type_text(text) |
type into the focused field |
press_key(key) |
back / home / enter / … or a raw KEYCODE_* |
swipe(direction) |
up / down / left / right |
wait_for_text(text, timeout) |
wait for an element to appear |
assert_text(text) |
pass/fail check that text is on screen |
screen_size() |
WIDTHxHEIGHT |
screen() (cheap text) + screenshot() (image) give the agent both a structured and a
visual view; it usually picks targets from screen() and uses tap_text.
Limits (v0.1)
- One device at a time (pass a serial to target a specific one).
- System dialogs are localized — "Start now" vs "Démarrer maintenant". The agent reads the screen, so it adapts; scripted tests should match your device locale.
- No video recording yet; screenshots only.
type_textescapes spaces/specials foradb shell input; exotic Unicode may not type.
Why not Appium/Maestro?
Both are great, but heavier (a server + drivers, or YAML flows). DroidPilot is a thin, agent-shaped surface: a handful of tools an LLM can call directly, built on the same ADB/UIAutomator primitives Google ships. Use Appium/Maestro for big scripted suites; use DroidPilot when you want Claude to test the app for you.
Установка DroidPilot
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/LioMatthys/droidpilotFAQ
DroidPilot MCP бесплатный?
Да, DroidPilot MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для DroidPilot?
Нет, DroidPilot работает без API-ключей и переменных окружения.
DroidPilot — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить DroidPilot в Claude Desktop, Claude Code или Cursor?
Открой DroidPilot на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Notion
Read and write pages in your workspace
автор: NotionLinear
Issues, cycles, triage — from Claude
автор: LinearGoogle Drive
Search and read your Drive files
автор: Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
автор: mindsdbCompare DroidPilot with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории productivity
