Ghost in the Droid — Claude Code MCP server: setup and overview
MCP server connecting LLM agents to physical or emulated Android and iOS devices. Gives your agent 62 mobile automation tools to inspect screens, tap, swipe, and type.
claude mcp add android-agent -- uvx ghost-in-the-droidWhat Ghost in the Droid does
Ghost in the Droid turns a mobile phone into an execution environment for coding assistants like Claude Code, Codex, or Cursor. It exposes 62 tools that inspect screen states, trigger taps, perform swipes, and input text. Android connectivity operates over ADB via USB or Wi-Fi, while iOS automation relies on Appium and WebDriverAgent.
The framework connects to cloud APIs, local Ollama or vLLM instances, and on-device models running via llama.cpp or MediaPipe. Running an emulator pool inside Docker with KVM works strictly for Android. Working with iOS targets demands macOS, Xcode, and device signing.
The server requires Python 3.10 or higher. Execution runs through the uvx runner.
What it helps with
- Control mobile applications on physical Android and iOS hardware from an agent
- Automate interface testing workflows directly on real mobile displays
- Dispatch tap, swipe, and typing inputs across a phone farm via MCP
- Capture screen states for multi-step autonomous mobile routines
Example prompts for the agent
- Open the Settings app on the connected Android phone and locate the Wi-Fi menu.
- Inspect the current phone screen and tap the account login button.
- Navigate through the onboarding flow on the attached iPhone via WebDriverAgent.
How to install Ghost in the Droid
Platform CLI
claude mcp add android-agent -- uvx ghost-in-the-droiduvx runs the command named after the package; if the README names another one, use uvx --from ghost-in-the-droid <command>
Platform CLI
codex mcp add ghost-in-the-droid -- uvx ghost-in-the-droiduvx runs the command named after the package; if the README names another one, use uvx --from ghost-in-the-droid <command>
Config file
{
"mcpServers": {
"ghost-in-the-droid": {
"command": "uvx",
"args": [
"ghost-in-the-droid"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from ghost-in-the-droid <command>
Config file
{
"servers": {
"ghost-in-the-droid": {
"type": "stdio",
"command": "uvx",
"args": [
"ghost-in-the-droid"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from ghost-in-the-droid <command>
Platform CLI
gemini mcp add ghost-in-the-droid uvx ghost-in-the-droiduvx runs the command named after the package; if the README names another one, use uvx --from ghost-in-the-droid <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Ghost in the Droid
How to install Ghost in the Droid in Claude Code?
Run the command claude mcp add ghost-in-the-droid -- uvx ghost-in-the-droid in your terminal. This downloads and runs the server package through uvx.
What does Ghost in the Droid do?
It provides an MCP server interface with 62 tools for mobile automation. It gives AI models the ability to inspect screens, tap interface elements, swipe, and type text on Android and iOS devices.
Can you run Ghost in the Droid on emulators?
Yes, emulators work alongside physical hardware. Android supports Docker pools with KVM virtualization, while iOS automation requires macOS simulators managed via Xcode.