Ghost in the Droid MCP
62 MCP tools so an agent can tap, scroll and type on a real Android phone over ADB or on an iPhone.
- 413 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent taps and types on a real phone, including the ADB shell and Android intents.
- The screen may hold personal data and codes; a cloud model receives screenshots.
Install
- Works in
Manual install
uvx ghost-in-the-droid doctorThe first Quick Start command from the README, an environment check. Then `uvx ghost-in-the-droid up` starts the server and dashboard at `localhost:5055`. With pipx: `pipx install ghost-in-the-droid`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent taps and types on a real phone, including the ADB shell and Android intents.
- The screen may hold personal data and codes; a cloud model receives screenshots.
This is third-party code. Review the repository files before installing.
What it does
Ghost in the Droid drives a real Android phone over ADB and an iPhone through Appium and WebDriverAgent. An agent reads the screen, taps, swipes and types through 62 MCP tools. The Android server starts with `android-agent-mcp`. Repeating scenarios are packaged as skills: YAML element definitions plus Python actions that run without model calls. Skills install from the hub with `android-agent skill install tiktok`. Alongside MCP come a dashboard with a live screen stream, the `ghost` CLI and per-device job queues.
Who it is for. Mobile developers and testers who hand scenario runs to an agent on a real phone or a device farm.
Good fit when
- Claude Code walks through an app scenario on a connected Android and takes screenshots.
- A frequently repeated app action needs a skill that runs without spending tokens.
- Checks run in parallel on several devices with a job queue.
- The model has to run locally on Ollama or inside the phone itself.
Not a fit when
- Automation is needed in a browser only, with no physical phone.
- The phone holds personal accounts and data the agent must not see.
- iPhone work is needed without macOS and Xcode.
Example request
Connect the phone over ADB, open the Play Store app, search for the app and show the result screen without installing it.MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
`GITD_ENABLE_IOS`- Enables iPhone control through Appium and WebDriverAgent. Value `1`.
Limitations
Python 3.10 or newer and ADB on PATH are required, with USB debugging enabled on the phone. iPhone needs macOS, Xcode, Appium 2 with the XCUITest driver and WebDriverAgent signing; the mode is switched on with `GITD_ENABLE_IOS=1`. The `shell` and `launch_intent` tools work on Android only. A cloud model receives screen captures, so pick a local or on-device model for privacy. The latest commit is from August 2026.
How to disable. Remove the `android-agent` entry from the MCP configuration and stop the dashboard started by `ghost-in-the-droid up`. Turn USB debugging off on the phone. If the Portal app was installed, remove it from the device.
FAQ
Is root needed on the phone?
No. Per the README, screen reads use `uiautomator` and actions use `adb shell input`, with no root or accessibility service. The Portal app speeds up UI reads but is optional.
How do I check the environment?
Run `uvx ghost-in-the-droid doctor`. It prints a checklist for Python, ADB on PATH, devices, ports and model keys, with fix hints.
Which models can be used?
Claude Code via subscription, the Anthropic API, OpenRouter, Ollama, vLLM, or a model inside the phone through llama.cpp, MediaPipe or MLX.
What about signing in with a Claude subscription?
`android-agent login` runs sign-in through the `claude` CLI's own OAuth flow. Per the README Ghost does not store the token; `claude` owns it.
How do I install a ready-made app skill?
Run `android-agent skill install tiktok`, substituting the skill name from the hub. The skill runs without model calls.
Discussion
No questions or reviews yet.
Related
MCP serversAn 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
MCP server for Android through ADB and scrcpy: an agent sees the screen, taps, types text and launches apps.
An MCP server exposes Android screens, element search, taps, input and screenshots to agents testing authorized applications.
Skill and CLI for controlling an Android phone via ADB and vision models: the agent opens apps, searches, orders and verifies results
An MCP server inside the MagicDesk Android app: an agent drives windows, terminals, files and Linux on the phone
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Ghost in the Droid (this card) | no | not required | 413 | |
| Mobile MCP | no | not required | 10,325 | mobile-mcp exposes a narrow device toolset; Ghost adds replayable skills, a dashboard and a device farm |
| Android MCP Server: control Android through ADB | no | not required | 811 | android-mcp-server controls Android only; Ghost also drives iPhone |
README in short
The framework controls Android and iOS from one agent harness. App skills are written in YAML and Python, run without model calls, and a dashboard shows a live screen stream.