Ghost In The Droid MCP Server

Give any LLM agent a real Android or iPhone as its body. 62 MCP tools for mobile automation.

Local serverstdioPython

What is the Ghost In The Droid MCP server?

Ghost In The Droid MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. Give any LLM agent a real Android or iPhone as its body. 62 MCP tools for mobile automation.

What you get

Website · Docs · Skill Hub · Releases

  • Android control through ADB: tap, swipe, type, clipboard, shell, intents, and stealth variants
  • iOS control through WebDriverAgent: screenshot, accessibility tree, tap, swipe, type, app launch, clipboard, browser actions
  • Live phone screen streaming: Android MJPEG/WebRTC, iOS WDA MJPEG with screenshot fallback
  • Interactive touch-to-tap on the streamed screen
  • Multi-device phone farm with per-device job queues
  • YAML-based UI element definitions per app

Configuration and credentials

You will need 7 environment variables: IOS_DEVICE_UDID, IOS_APPIUM_URL, IOS_BUNDLE_ID, IOS_MJPEG_SERVER_PORT, ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Python 3.10+ - Android: Android phone with USB debugging enabled and ADB on PATH (adb devices should list your phone) - iOS: macOS with Xcode, Appium 2 + XCUITest driver, and a trusted iPhone or booted simulator - Node.js 18+ (for the frontend dev server) ---

Setting it up

Installation goes through your MCP client rather than a global install: point it at vite on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

Choosing this one

This sits in the browser automation group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. It is maintained by ghost-in-the-droid; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Ghost In The Droid's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Before you rely on it

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the ghost in the droid mcp server does with a few real requests.

How to install the Ghost In The Droid MCP server

{
  "mcpServers": {
    "android-agent": {
      "command": "npx",
      "args": ["-y", "vite"],
      "env": {
        "IOS_DEVICE_UDID": "your-value",
        "IOS_APPIUM_URL": "your-value",
        "IOS_BUNDLE_ID": "your-value",
        "IOS_MJPEG_SERVER_PORT": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value",
        "OPENROUTER_API_KEY": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  • Python 3.10+ - Android: Android phone with USB debugging enabled and ADB on PATH (adb devices should list your phone) - iOS: macOS with Xcode, Appium 2 + XCUITest driver, and a trusted iPhone or booted simulator - Node.js 18+ (for the frontend dev server) ---
VariableDescriptionRequired
IOS_DEVICE_UDIDConfiguration value read at startup.Optional
IOS_APPIUM_URLEndpoint or connection string the server talks to.Yes
IOS_BUNDLE_IDConfiguration value read at startup.Optional
IOS_MJPEG_SERVER_PORTConfiguration value read at startup.Optional
ANTHROPIC_API_KEYCredential the server authenticates with.Yes
OPENAI_API_KEYCredential the server authenticates with.Yes
OPENROUTER_API_KEYCredential the server authenticates with.Yes

Frequently asked questions

It connects Ghost In The Droid to MCP-compatible AI assistants such as Claude and Cursor. Instead of copying data back and forth by hand, the assistant works with Ghost In The Droid directly.