Skip to main content
Glama

OpenPhone

Control a physical iPhone from macOS using USB screen capture, Bluetooth HID and AssistiveTouch. Use the local dashboard, connect an agent through MCP, or run your own relay for remote access.

OpenPhone is under development. The device controls and recording tools work on the tested phone; remote streaming, onboarding and broader recovery testing are still in progress. Validation status records the evidence.

Get started

You need macOS, Xcode command-line tools, Python 3.10+, Node 20+, an unlocked trusted USB iPhone, and Bluetooth pairing with AssistiveTouch enabled. See the device setup guide for permissions and button mappings.

git clone https://github.com/Array-Ventures/open-phone.git
cd open-phone
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
npm ci --ignore-scripts
openphone build
openphone serve

In a second terminal, activate the same environment and run openphone dashboard. Select your phone, connect, and use the live preview and controls.

openphone --help lists device, dashboard, relay, bridge, recording and build commands. Every command has its own --help.

Related MCP server: iphone-mcp

Connect an agent

The local MCP exposes 17 phone tools. Configure your MCP client with:

[mcp_servers.open_phone]
command = "node"
args = ["/absolute/path/to/open-phone/packages/mcp/src/mcp.mjs"]

The MCP uses the repository's installed .venv by default. Stop the local API before giving the local MCP ownership of the same phone. The remote MCP exposes 13 relay tools and also supports Streamable HTTP with optional OAuth. MCP guide

Project layout

src/openphone/        Python package: device, services, relay, bridge, video
packages/mcp/        MCP transports, tools, OAuth and integration tests
native/              Objective-C and Swift macOS helper sources
tests/               Python unit tests and opt-in hardware checks
docs/                Setup, architecture and validation guides
requirements/        Optional video dependency lock

Credentials, databases, recordings and compiled helpers stay outside Git.

Development

npm test
openphone build

CI runs the protocol tests and macOS native compilation. Hardware tests require a connected phone and are opt-in. Architecture · Development guide · All documentation

MIT licensed. See LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI agents to control real iPhones and simulators on macOS, allowing for UI interaction, testing, and automation.
    49 npm
    88
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to discover and interact with iOS apps through a local MCP gateway, converting remote Streamable HTTP MCP endpoints into stdio tools. Provides dynamic device discovery, tool schema introspection, and deterministic tool calling for app analysis.
    -