Phonebox (Android for AI agents)

Hosted Android MCP server: give Claude Code, Codex or Cursor a cloud Android phone to read the screen, tap, type, install APKs and park. No ADB or emulator.

Hosted MCP Server

npx add-mcp 'https://phonebox.dev/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Phonebox Android MCP server

A hosted Android MCP server for Claude Code, Codex, Cursor and any MCP client, from Phonebox, the agent-first cloud phone. Your agent gets a real Android phone in the cloud. It can read the screen, tap, type, install your APK, hand off to a human, and park the phone when it's done. You don't need ADB, Android Studio or an emulator.

claude mcp add --transport http phonebox https://phonebox.dev/mcp \
  --header "Authorization: Bearer $PHONEBOX_API_KEY"
  • Endpoint: https://phonebox.dev/mcp (Streamable HTTP, bearer API key)
  • Price: $0.06 per phone-minute, billed per second, 1-minute minimum. Parked phones are free and keep their apps and sign-ins.
  • Start free: $2 of credit, no card → phonebox.dev

This repo holds the configs and examples. The server itself is hosted by Phonebox, so there's nothing to run.

Why agent-first

Most cloud phones were built for social-media dashboards or QA test suites and added an API later. Phonebox was built for the agent: your agent signs you up from the terminal, reads the screen as text, gets errors with a next step, and never has a write retried behind its back. Idle phones park themselves for free.

Why hosted instead of an ADB MCP server?

Local ADB MCP serverPhonebox hosted MCP
Where the phone runsAn emulator or USB phone on your machinePhonebox's cloud
SetupAndroid SDK, ADB, a system imageOne URL and an API key
Works from CI, sandboxes and remote dev boxesOnly with nested virtualization or a deviceYes
State between sessionsWhatever your emulator keepsApps, files and sign-ins kept while parked
Human handoffSomeone at the machineA live view link in any browser

Get an API key

The fastest way is to paste this into your coding agent. It signs you up from the terminal, and you never paste a key into the chat:

Read https://phonebox.dev/setup.md and set me up with Phonebox from here: get me signed in and ready, then find out what I want to use phones for and help me with that.

Or create a key in the console and export PHONEBOX_API_KEY=pbx_….

Connect your client

Claude Code — run the command at the top, or commit this repo's .mcp.json. It reads the key from each person's environment:

{
  "mcpServers": {
    "phonebox": {
      "type": "http",
      "url": "https://phonebox.dev/mcp",
      "headers": { "Authorization": "Bearer ${PHONEBOX_API_KEY}" }
    }
  }
}

Cursor: add examples/cursor-mcp.json to ~/.cursor/mcp.json or .cursor/mcp.json.

Codex: add examples/codex-config.toml to ~/.codex/config.toml.

Any other client: point it at https://phonebox.dev/mcp with an Authorization: Bearer pbx_… header. The server is stateless Streamable HTTP and doesn't use OAuth.

Tools

ToolWhat it does
create_phoneCreates a cloud Android phone and waits until it's ready
observeReads the screen as a numbered text list, plus a 720px screenshot
actRuns up to 20 actions in order: tap, type, swipe, scroll, open an app, wait for an element
install_appInstalls from the app library or from your own uploaded APK
create_app_upload / complete_app_uploadUploads your APK with one curl command
live_view_urlA link for a person to watch and control the phone
start_phone / park_phoneResumes a parked phone, or parks it to stop billing
list_phones / get_phone / list_apps / reboot_phoneFind phones, wait for them, list apps, restart a stuck phone

What the agent reads from observe:

app com.android.launcher3
screen 1080x2400
[1] EditText "Search apps" #search clickable editable (540,250)
[2] TextView "Chrome" #icon clickable (200,1900)
[3] TextView "Settings" #icon clickable (500,1900)

Examples

What it isn't

Android only (no iOS), and there are no phone numbers, SMS or calls. Phonebox gives your agent the device, not telephony.

Learn more