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
MCP server

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.
All reasons and checks

ghost-in-the-droid/android-agent

Install

Manual install

uvx ghost-in-the-droid doctor

The 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 review

Broad 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.

An MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots

MCP serverBroad access10.3KRepository stars

An MCP server that drives an Android device over ADB: app navigation, input and automated tests

MCP serverBroad access917Repository stars

MCP server for Android through ADB and scrcpy: an agent sees the screen, taps, types text and launches apps.

MCP serverBroad access129Repository stars
Official

An MCP server exposes Android screens, element search, taps, input and screenshots to agents testing authorized applications.

MCP serverBroad access461Repository stars

Skill and CLI for controlling an Android phone via ADB and vision models: the agent opens apps, searches, orders and verifies results

SkillBroad access26Repository stars

An MCP server inside the MagicDesk Android app: an agent drives windows, terminals, files and Linux on the phone

MCP serverBroad access210Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Ghost in the Droid (this card)nonot required413
Mobile MCPnonot required10,325mobile-mcp exposes a narrow device toolset; Ghost adds replayable skills, a dashboard and a device farm
Android MCP Server: control Android through ADBnonot required811android-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.

README badge

Report a problem

Foxx AIGhost in the Droid
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.