Browse documentation

Use Phone Use

Connect an MCP client

Expose Phone Use tools to Claude Code, Codex, or another MCP-compatible client.

Register the server

bashphone-use
claude mcp add --scope project phone-use -- bunx phone-use mcp

Choose a device

ValueBehavior
launchCreate and boot a dedicated simulator; delete it on exit
connectAttach to the first booted simulator
Simulator UDIDAttach to that simulator

Drive several phones

One agent can drive several phones through one server, for example to send a message on one phone and read it on another. Name each phone with --devices or PHONE_USE_DEVICES.

bashphone-use
phone-use mcp --devices a=<simulator-udid>,b=<simulator-udid>
phone-use mcp --devices ios=launch,pixel=android:emulator-5554
phone-use mcp --devices a=cloud:<sandbox-id>,b=cloud:<sandbox-id>
  • A device is a simulator UDID, launch, connect, android, android:<serial>, or cloud:<sandbox-id>.
  • Every tool except note takes an optional phone argument. Leaving it out uses the first phone.
  • Each result starts with [phone <name>], and calls to different phones can run at the same time.
  • The note scratchpad is shared, so a value read on one phone can be typed on another.
  • Prefer simulators that are already booted: launch boots one per phone at startup, which can take longer than an MCP client waits.

Live viewer

Starting the MCP server also starts the browser viewer at http://localhost:4936.

Tool selection

  • Use ask, goto, search, or toggle when the intent is known.
  • Use a saved skill for an established multi-step workflow.
  • Use observe, tap, type, and scroll for unfamiliar interfaces.
  • Use coordinates only when no reliable semantic target exists.