Poki MCP

Poki is a local macOS MCP server that hands an agent an iPhone or iOS Simulator: screen, taps, typing and app control.

  • 402 ★ on the repository
  • Last commit
MCP server

Broad access

Why this level

  • The agent controls a real iPhone: if asked, it sends messages and makes payments.
  • Screen contents, including private chats, go to the configured model.
All reasons and checks

josssphzhou/poki

Install

Manual install

git clone https://github.com/JosssphZhou/poki.git

Then `cd poki`, `./bin/setup`, `npm start` and register `node src/stdio.mjs` in the client.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent controls a real iPhone: if asked, it sends messages and makes payments.
  • Screen contents, including private chats, go to the configured model.

This is third-party code. Review the repository files before installing.

What it does

Poki runs a local service on a Mac and exposes tools for driving a real iPhone or an iOS Simulator. The agent takes screenshots, reads the element tree through Accessibility or Vision OCR, taps, scrolls, types, opens links and launches apps. By default the tool list holds only phone-task commands; `POKI_MCP_TOOLS=all` enables the full catalog. The repository also ships a standalone terminal agent, Poki Agent, with iMessage and Telegram channels and memory of repeated tasks.

Who it is for. Mobile developers and testers who run scenarios on a live iPhone through Claude Code or Codex.

Good fit when

  • An agent walks an app scenario in the simulator and compares screens.
  • A bug has to be reproduced on a physical iPhone without manual taps.
  • Screenshots and the element tree are collected for a bug report.
  • A repeating phone task goes to an agent that remembers routes.

Not a fit when

  • No Mac is available: the server runs only on macOS 15 or later with full Xcode.
  • Screen contents cannot be sent to a model.
  • A phone with private chats and payment apps would be connected without limits.

Example request

Open Chrome on the connected iPhone, search esp32 and summarize the top result, attaching a screenshot of each step.

MCP

Transport
stdio, http
Authentication
not required

Environment variables

POKI_MCP_TOOLS
The value `all` exposes the full tool catalog.
POKI_NO_UPDATE_CHECK
The value `1` disables the daily release check.

Limitations

A build needs Xcode, Rust, Node.js 24+ and ffmpeg, and the first build takes a few minutes. Physical iPhone support was verified only with the Chinese interface and works in portrait only. App container export and direct links to Settings subpages are unavailable. The license is AGPL-3.0. Sensitive actions are covered by local approvals, and `poki_mcp_status` reports the approval mode. Connection setup problems are easier to trace through `poki_mcp_status`.

How to disable. Remove the `poki-mcp` entry from client settings and stop `npm start`. Unplug the iPhone from the Mac and remove its pairing in Xcode if you no longer use it.

FAQ

Which tools does the agent see by default?

Phone-task commands such as `list_elements`, `take_screenshot`, `tap`, `type_text`, `scroll`, `launch_app`, `open_url`, `wait_for` and `batch_commands`. `POKI_MCP_TOOLS=all` enables the full catalog.

Is a separate model subscription required?

No when Poki MCP is attached to Claude Code or Codex: your own subscription is used. The standalone Poki Agent has its own model setup.

What leaves the machine?

Screen contents go to the configured model. The service listens on `127.0.0.1` by default, and the release check is disabled with `POKI_NO_UPDATE_CHECK=1`.

Is Linux supported?

The repository targets macOS. For Linux the README points to a third-party port, `poki-for-linux`, maintained outside the project.

How do I connect Poki to Claude Code or Codex?

From the project directory run `claude mcp add --scope user poki-mcp -- node "$PWD/src/stdio.mjs"` for Claude Code or `codex mcp add poki-mcp -- node "$PWD/src/stdio.mjs"` for Codex.

Discussion

No questions or reviews yet.

An open phone agent model and framework: it reads the screen and taps through Android, HarmonyOS and iOS apps from a text command

CLIBroad access26.5KRepository stars

Artemis

artemis

Official

A Google framework for driving a real Android device or an emulator from natural-language instructions: UI tests and everyday tasks, with an MCP server

CLIBroad access16.7KRepository stars

An Android emulator in Docker with an MCP server: the agent drives the device over adb, opens apps and pages, presses buttons

MCP serverExtended access16.1KRepository stars
Official

Official set of 30 skills from the Android team: Jetpack Compose, AGP 9 upgrade, R8, Perfetto profiling, Navigation 3, CameraX, Google Play policies

SkillExtended access10.4KRepository stars

An MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots

MCP serverBroad access10.3KRepository stars

XcodeGen is an Xcode project generator that shares settings across targets, keeping configuration in a text specification.

CLIExtended access8.9KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Poki (this card)nonot required402
Mobile MCPnonot required10,325mobile-mcp drives devices through a shared automation layer; Poki adds a terminal agent and routes it remembers
Appium MCPyesnot required518appium-mcp builds on Appium; Poki installs its own bridge for iPhone and simulator

README in short

The root `AGENTS.md` describes an install the agent performs itself, stopping whenever the owner must act. A physical iPhone must first be paired with the Mac over USB.

README badge

Report a problem

Foxx AIPoki
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.